我想为具有 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
如何解决尺寸问题?
单位参数 intf.keras.layers.Dense()
是输出空间的维度。
由于您在最后一个密集层中使用了 6 个单元,因此模型将处理输入并返回一个 shape 的张量,(None, 6)
并将其与 shape 的标签进行比较(None, 118)
,这将是不兼容的。
尝试将最后一个密集层中的单元数更改为 118 以获得兼容的模型。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句