【发布时间】:2021-07-04 05:46:57
【问题描述】:
我正在尝试使用 RNN 预测 18 个多类概率向量(14 个专有类)的序列,将 11 维数字向量作为输入。输入的数值向量在整个序列预测过程中是相同的。
为此,我在tensorflow中定义了这个模型:
model = keras.models.Sequential([
keras.layers.SimpleRNN(20, return_sequences=True, input_shape=[1, 11]),
keras.layers.SimpleRNN(20, return_sequences=True),
keras.layers.SimpleRNN(14, return_sequences=True, activation="softmax",
kernel_initializer="glorot_uniform")])
model.compile(loss="CategoricalCrossentropy",
optimizer="nadam")
当我要求拟合模型时
history = model.fit(X_train, y_train, epochs=10, batch_size=32,
validation_data=(X_valid, y_valid))
我收到以下错误:
ValueError: Shapes (None, 18, 14) and (None, 1, 14) are incompatible
相比之下,如果我使用“mse”作为损失函数,则不会返回错误(尽管结果很差)。
作为参考,X_train.shape 是 (18000, 1, 11),而 y_train.shape 是 (18000, 18, 14)。
你能帮我解决这个错误吗?
非常感谢您的帮助,
【问题讨论】:
标签: python tensorflow keras recurrent-neural-network loss-function