python - 如何在python中检查形状不兼容
问题描述
我是 python 新手。我正在学习lstm。每当我尝试应用拟合模型时,我都会收到此错误ValueError: Shapes (2, 3) and (2, 173, 3) are incompatible
这是重现错误的代码
epochs = 60
batch_size = 2
lstm_units = 100
dense_units = 50
datafile_Xtrain = '.../train_H.csv'
dfTrX = read_csv(datafile_Xtrain, header=0)
valuesTrX = dfTrX.values
num_observationsTrX = valuesTrX.shape[0]
num_timestampsTrX = valuesTrX.shape[1]
train_X = valuesTrX.reshape((num_observationsTrX, num_timestampsTrX, 1))
# -- Input Y training -----
datafile_Ytrain = '.../H.csv'
dfTrY = read_csv(datafile_Ytrain, header=0)
dfTrY.fillna(0)
valuesTrY = dfTrY.values
num_observationsTrY = valuesTrY.shape[0]
num_classesTrY = valuesTrY.shape[1]
train_Y = valuesTrY.reshape((num_observationsTrY, num_classesTrY))
model = Sequential()
model.add(LSTM(lstm_units, input_shape=(num_timestampsTrX,1), return_sequences=True))
model.add(Dense(dense_units, activation='relu'))
model.add(Dense(num_classesTrY , activation='softmax'))
model.compile(loss=tf.keras.losses.categorical_crossentropy, optimizer='adam', metrics=['accuracy'])
model.fit(train_X, train_Y ,epochs=epochs, batch_size=batch_size, verbose=0, validation_split=0.1,shuffle=False)
print('Model fit successfully')```
如果有帮助,我的变量资源管理器的屏幕截图:
解决方案
如果您不想返回序列,例如(2, 173, 3)
,而是一个 2D 数组,例如(2, 3)
,就像在分类任务中一样,您需要设置
return_sequences=False
在您的 LSTM 层中。
推荐阅读
- javascript - 如何使用 javascript 使表格的标题具有垂直的、有角度的文本?
- r - 如何在 R 中绘制特定的行和列
- javascript - 如何在材料表 React 的警报或控制台中获取查找值?
- python - Python - Pandas:获取列中特定值的行索引
- python - 为什么使用 time.sleep 时会出现“none”?
- java - 使用 Selenium 集线器和 Firefox 远程驱动程序无法将元素滚动到视图中
- python - “错误:selenium.common.exceptions.NoSuchElementException:消息
- c - 互斥锁可以在临界区锁定多少个变量?
- salesforce - 开发 Salesforce Commerce Cloud 墨盒装载订单
- sql-server - 如何增加 bcp 批处理负载?