2017-11-22 7 views
0

기계 학습에 대해 배우기 위해 Mnist 데이터 세트로 작업하고 있습니다. 현재로서는 Mnist 데이터 세트의 첫 번째 숫자를 표시하려고합니다. 이미지로, 그리고 나는 문제가 발생했습니다.Mnist 데이터의 이미지 Python - 이미지를 표시 할 때의 오류

크기가 784x10000 인 행렬이 있습니다. 여기서 각 열은 데이터 세트의 숫자입니다. 나는 Mnist 데이터 세트가 텍스트 파일의 형태로 만들어 졌기 때문에 스스로 매트릭스를 만들었는데, 그 자체로 나에게 많은 문제를 일으켰지 만 그것은 그 자체에 대한 질문이다.

아래의 MN_train 매트릭스는 나의 대형 784x10000 매트릭스입니다. 그래서 아래에서하려고하는 것은 28x28 매트릭스를 채워서 이미지를 표시하는 것입니다.

두 개 이상의 요소를 배열의 진리 값이 모호 : 나 이미지를 표시 할 때

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.image as mpimg 

grey = np.zeros(shape=(28,28)) 
k = 0 

for l in range(28): 
    for p in range(28): 
     grey[p,l]=MN_train[k,0] 
     k = k + 1 
print grey 
plt.show(grey) 

는하지만, 나는 다음과 같은 오류가 발생합니다. a.any() 또는 a.all()을 사용하십시오.

숫자 5와 같지 않은 이미지 플롯이 이어집니다.

내가 간과 한 것이 있습니까, 아니면 MN_train 행렬을 구성하기 위해 텍스트 파일을 조작 한 결과 오류가 발생 했습니까?

답변

1

오류는 배열을 show에 입력했기 때문에 발생합니다. show은 하나의 부울 인수 hold=True 또는 False 만 허용합니다.
이미지 플롯을 만들려면 imshow을 사용해야합니다.

plt.imshow(grey) 
plt.show() # <- no argument here 

루프는 다소 비효율적입니다. 입력 열 배열을 바꿀 수 있습니다.

전체 코드는 우리의 @ImportanceOfBeingErnest 것을 가리키는 주셔서 감사합니다

import numpy as np 
import matplotlib.pyplot as plt 

MN_train = np.loadtxt(...) 

grey = MN_train[:,0].reshape((28,28)) 

plt.imshow(grey) 
plt.show() 
+0

처럼 보일 것입니다! 이제 텍스트 파일을 조작 할 때 오류가 발생했다는 것을 분명히 알 수 있습니다. haha ​​ 다음으로 돌아 가기. –