Keras 上 LSTM 序列模型的维度问题

weiming

我想为具有 128 个时间步长的序列数据训练一个简单的 LSTM 模型,该模型具有 118 个多类的 6 个特征。

数据集的维度如下图所示:

X_train, X_test shape: (batch, timesteps, num_features) = (batch, 128, 6)
y_train, y_test shape: (batch, 118)

其中标签由具有 118 个类的 one-hot 编码表示。

model = keras.Sequential([
    tf.keras.layers.LSTM(units = 32, kernel_initializer = 
    tf.initializers.zeros()),
    tf.keras.layers.Dense(units = 6)
])

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, y_train, validation_data = (X_test, y_test), epochs=20, verbose=0)

执行上面的代码后出现如下错误:

ValueError: Shapes (None, 118) and (None, 6) are incompatible

如何解决尺寸问题?

阿拉文 G.

单位参数 intf.keras.layers.Dense()是输出空间的维度

由于您在最后一个密集层中使用了 6 个单元,因此模型将处理输入并返回一个 shape 的张量,(None, 6)并将其与 shape 的标签进行比较(None, 118),这将是不兼容的。

尝试将最后一个密集层中的单元数更改为 118 以获得兼容的模型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章