KerasでMLPモデルをトレーニングしようとすると、次のエラーが表示されました(kerasバージョン1.2.2
)
モデル入力をチェックする際のエラー:モデルに渡すNumpy配列のリストは、モデルが期待したサイズではありません。 1つの配列が表示されるはずですが、代わりに12859配列の次のリストが表示されます。
これはモデルの概要です
____________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
====================================================================================================
dense_1 (Dense) (None, 20) 4020 dense_input_1[0][0]
____________________________________________________________________________________________________
dense_2 (Dense) (None, 2) 42 dense_1[0][0]
====================================================================================================
Total params: 4,062
Trainable params: 4,062
Non-trainable params: 0
____________________________________________________________________________________________________
None
これはモデルの最初の行です
model.add(Dense(20, input_shape=(200,), init='lecun_uniform', activation='tanh'))
トレーニングの場合:
model.fit(X,Y,nb_Epoch=100,verbose=1)
xは要素のリストであり、各要素は200個の値のリストです。
編集:
私も試しました
model.add(Dense(20, input_shape=(12859,200), init='lecun_uniform', activation='tanh'))
しかし、私は同じエラーが発生しています
エラーは、何らかの理由でX
が_numpy.array
_に変換されなかったという事実に起因しています。これで、あなたのX
は行のリストとして扱われ、これがエラーメッセージの背後にある理由です(多くの行要素を持つリストの代わりに1つの入力を期待しました)。変換:
_X = numpy.array(X)
Y = numpy.array(Y)
_
何かがうまくいかない可能性があるため、データのロードプロセスをチェックします。
更新:
コメントで述べたように、_input_shape
_は_input_dim
_に変更する必要があります。
更新2:
_input_shape
_を保持するには、input_shape=(200,)
に変更する必要があります。
私は追加して私のものを修正しました
np.array
train_X、train_Y、valid_X、valid_Yへ。例えば、
model.fit(np.array(train_X),np.array(train_Y),
batch_size=32,nb_Epoch=20,
validation_data=(np.array(valid_X),np.array(valid_Y)),
callbacks=[early_stop])
here から助けを得ました。この方法は、すべてのデータ機能をnumpy配列に変換する必要があるため、実行が遅くなる可能性が高く、システムにとって多くの作業になる可能性があります。