我有三维训练输入(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阵列,其中中间尺寸没有固定的尺寸,但我发现它不可能后放弃了。可以吗?
答案 0 :(得分:1)
Target
表示这是预期的结果。问题出在labelTrain
,而不是输入中。
Dense
图层必须有多个神经元。你不传递输出形状,你传递神经元的数量,输出是自动的(无,神经元)
你的最后一层应该是:
model.add(Dense(1, activation='I recomend an activation here'))