web-dev-qa-db-ja.com

Kerasエラー:1つの配列が表示されるはずです

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'))

しかし、私は同じエラーが発生しています

16
MysticForce

エラーは、何らかの理由でXが_numpy.array_に変換されなかったという事実に起因しています。これで、あなたのXは行のリストとして扱われ、これがエラーメッセージの背後にある理由です(多くの行要素を持つリストの代わりに1つの入力を期待しました)。変換:

_X = numpy.array(X)
Y = numpy.array(Y)
_

何かがうまくいかない可能性があるため、データのロードプロセスをチェックします。

更新:

コメントで述べたように、_input_shape_は_input_dim_に変更する必要があります。

更新2:

_input_shape_を保持するには、input_shape=(200,)に変更する必要があります。

20
Marcin Możejko

私は追加して私のものを修正しました

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配列に変換する必要があるため、実行が遅くなる可能性が高く、システムにとって多くの作業になる可能性があります。

3
rocksyne