2 回答
TA贡献1853条经验 获得超6个赞
MaxPooling1D需要一个三维张量为它的输入与形状:(batch_size, steps, features)。根据您的代码,X_train_t并X_test_t有 1 个步骤 ( *.shape[0], 1, 12)。当 Pooling 将其窗口移动 6 步 ( pool_size=(6)) 时,它不能。结果它抛出了这样的异常。
建议:尝试改变你的输入形状
最小示例:这是一种可能的解决方案Conv1D:
model = Sequential()
model.add(Embedding(input_dim=1000, output_dim=128, input_shape=(12,))
model.add(Convolution1D(filters=2, kernel_size=100, padding='same', activation=tf.nn.relu))
model.add(MaxPooling1D(pool_size=6))
model.add(GlobalAveragePooling1D())
model.add(Dense(2))
TA贡献1784条经验 获得超7个赞
我添加了一个 Dense 层和 Reshape 层来解决这个问题。
model = Sequential()
model.add(Conv1D(12,1, activation='relu', input_shape=(1,12)))
model.add(Dense(32*3))
model.add(Reshape((3,32)))
model.add(MaxPooling1D(pool_size = (3)))
model.add(LSTM(32))
model.add(Dense(1))
添加回答
举报