火车输入形状:(13974,100,6,5)
火车输出形状:(13974,1,1)
测试输入形状:(3494,100,6,5)
测试输出形状:(3494,1,1)
我正在开发以下模型。 2D CNN LSTM。
model = Sequential()
model.add(TimeDistributed(Conv2D(1, (1,1), activation='relu',
input_shape=(6,5,1))))
model.add(TimeDistributed(MaxPooling2D(pool_size=(6, 5))))
model.add(TimeDistributed(Flatten()))
model.add(LSTM(units=300, return_sequences= False, input_shape=(100,1)))
model.add(Dense(1))
当我尝试符合以下条件时
model.fit(train_input,train_output,epochs=50,batch_size=60)
它给我一个错误。
ValueError:步幅的长度应为1、1或3,但为2
请更正我的模型。我将6,5幅图像转换为一个单位,并从100个时间戳中预测了101个时间戳。
您的问题还不清楚,但是我相信您有100张大小为6 x 5的图像的序列。最好在您的用例中合并Conv3D
,而且也不必到处都有TimeDistributed
。这仅是您的用例的说明,您可能必须添加Conv
和MaxPool
的更多层,并尝试使用其他超参数以获得良好的拟合。
# Add the channel dimension in input
train_input = np.expand_dims(train_input, -1)
# Remove the extra dimension in output
train_output = np.reshape(train_output, (-1, 1))
model = Sequential()
model.add(Conv3D(1, (1,1,1), activation='relu', input_shape=(100, 6,5, 1)))
model.add(MaxPooling3D(pool_size=(6, 5, 1)))
model.add(Reshape((16, 5)))
model.add(LSTM(units=300, return_sequences= False))
model.add(Dense(1))