【发布时间】:2017-07-24 13:51:39
【问题描述】:
当我尝试在 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'))
但我遇到了同样的错误
【问题讨论】:
-
尝试使用关键字
input_dim:input_dim=200,它定义了输入节点的数量。那么样本的数量是可变的。使用input_shape,您必须指定完整的形状,即样本数 (input_shape=(len(X), 200))。 -
model.fit(numpy.array(X), Y,nb_epoch=100,verbose=1)怎么样,由于某种原因,您的X似乎不是一个 numpy 数组。 -
尝试将
np.array(X)而非np.array列表传递给model.fit。 -
没错。如果您提供完整的代码会更好 - 带有
X和Y定义。尝试打印出type(X)。 -
谢谢大家 .. 它似乎与 input_dim=200 一起工作,通过 np.array(X)。
标签: python machine-learning neural-network deep-learning keras