将3D阵列输入到顺序模型Keras(Python)

时间:2017-05-10 17:37:50

标签: python neural-network keras

我有三维训练输入(8,50,3)。 我试图将其作为Keras中顺序模型的输入传递。查看文档我发现这应该有效:

model = Sequential()
model.add(Dense(100, activation='relu', input_shape=(50,3)))
model.add(Dense(100,init="uniform", activation='sigmoid'))
model.add(Dense(50,init="uniform", activation='relu'))
model.add(Dense(output_dim=1))
model.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])

当我尝试训练这个模型时:

model.fit(train,labelTrain,epochs=1,batch_size=1,verbose=1)

我收到以下错误:

Error when checking model target: expected dense_148 to have 3 dimensions, but got array with shape (8, 1)

这意味着什么?

另外,我的第一个目标是传递一个3D阵列,其中中间尺寸没有固定的尺寸,但我发现它不可能后放弃了。可以吗?

1 个答案:

答案 0 :(得分:1)

Target表示这是预期的结果。问题出在labelTrain,而不是输入中。

Dense图层必须有多个神经元。你不传递输出形状,你传递神经元的数量,输出是自动的(无,神经元)

你的最后一层应该是:

model.add(Dense(1, activation='I recomend an activation here'))