【发布时间】:2021-07-11 04:39:36
【问题描述】:
我正在尝试使用 Keras LSTM 进行二进制分类。
我的输入数据是 2340 条记录 * 254 个特征。
输出为 1*2340。
下面是我的代码。
X_res = np.array(X_res)
X_res = np.reshape(X_res,([1,2340,254]))
y_res = np.array(y_res)
y_res = np.reshape(y_res,([1,2340]))
y_test = np.array(y_test)
y_test = np.reshape(y_test,([1,314]))
model = keras.Sequential()
model.add(keras.layers.LSTM(32 ,input_dim = 254,return_sequences=True))
model.add(keras.layers.LSTM(100))
model.add(keras.layers.Dense(100, activation='sigmoid'))
model.add(keras.layers.Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=[tf.keras.metrics.Recall()])
model.fit(X_res, y_res, epochs= 5)
但是我无法克服错误:
ValueError:logits 和标签必须具有相同的形状((None, 1) vs (None, 2340))
【问题讨论】:
-
你的输出层必须是 Dense(2340, ...)
-
感谢工作!但我预测的 Y 的形状是 (1,2340),与 Y_train 相同。如何根据我的 X_test 使其成为正确的形状
标签: python keras classification lstm keras-layer