2017-10-12 20 views
0

私はpythonケラスを使ってcnnモデルを作成しています。Pythonの形状が大きすぎて行列にならない

私はcnn mnistの例に従い、自分のコードに変更します。 これは私が

# Read MNIST data 
(X_Train, y_Train), (X_Test, y_Test) = mnist.load_data() 
# Translation of data 
X_Train40 = X_Train.reshape(X_Train.shape[0], 28, 28, 1).astype('float32') 
X_Test40 = X_Test.reshape(X_Test.shape[0], 28, 28, 1).astype('float32') 

私のデータは30222行およびCSVの6列を持っていた例です。

各データは1ブロックの情報に対して3×6サイズの10074データです。

たとえば、行列の1〜3rowは1ブロックの情報です。

次に、データのフォーマットを変更しました。

X_Train40 = X_Train.reshape(10074, 3, 6, 1) 
X_Test40 = X_Test.reshape(4319, 3, 6, 1) 

このエラーが発生します。

--------------------------------------------------------------------------- 
ValueError        Traceback (most recent call last) 
<ipython-input-133-4f23172d450a> in <module>() 
----> 1 X_Train40 = X_Train.reshape(10074, 3, 6, 1) 
     2 X_Test40 = X_Test.reshape(4319, 3, 6, 1) 

~\Anaconda3\lib\site-packages\numpy\matrixlib\defmatrix.py in __array_finalize__(self, obj) 
    269     return 
    270    elif (ndim > 2): 
--> 271     raise ValueError("shape too large to be a matrix.") 
    272   else: 
    273    newshape = self.shape 

ValueError: shape too large to be a matrix. 
+0

何 - 'Pythonの形状をする大に行列は意味するのか? – Divakar

+1

'np.matrix'を使っていますか?もしそうなら、 'np.array(X_Train).reshape(10074、3、6、1)'を試してください。 –

+0

@JulioDanielReyesありがとう!それは仕事です! – user8764302

答えて

1

だけで推測するが、データはcsvファイルから来ているので、それを2次元でする制限を持っている、np.matrixに変換しました。

内部numpyのは、あなたがこのようなndarrayに変換する必要がありますので、より高い次元に再構築するために、マトリックスの寸法を維持しようとします:

X_Train = np.array(X_Train) 
X_Test = np.array(X_Test) 
X_Train40 = X_Train.reshape(10074, 3, 6, 1) 
X_Test40 = X_Test.reshape(4319, 3, 6, 1) 
関連する問題