我正在尝试使用keras库训练模型,但出现值错误

时间:2020-03-26 13:51:01

标签: python keras neural-network lstm

model = tf.keras.Sequential()
model.add(layers.Embedding(input_dim=2954, output_dim=64))
model.add(layers.LSTM(128))
model.add(layers.Dense(10))
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
model.summary()

ValueError:传递了形状为(1,2954)的目标数组以进行输出 用作损耗categorical_crossentropy的形状(无,10)。这个 损失期望目标与输出具有相同的形状。

1 个答案:

答案 0 :(得分:0)

检查您的目标/标签。由于您正在使用categorical_crossentropy作为损失函数,因此目标应进行一次热编码。该错误说明,目标数组的形状为(batch_size, 10),而不是(1, 2954)

P.S。。最后一个Dense层应具有softmax激活功能:

model.add(layers.Dense(10, activation='softmax'))