ValueError:形状(无,188、1)和(无,无,无,无)的形状必须具有相同的等级

时间:2020-02-21 00:19:57

标签: python tensorflow machine-learning keras neural-network

我正在建立一个CNN-LSTM网络,并且在我TimeDistributed CNN层之前它一直工作良好。由于尺寸差异,程序现在正在输出ValueError,我似乎无法通过调整输入尺寸来解决。我怀疑该错误可能是由于CNN输出大小和LSTM预期输入之间的差异,但我将输出展平了,所以我真的不知道。

X_train = X_train.reshape(1772, 300, 188, 1)
X_test = X_test.reshape(586, 300, 188, 1)

y_train = np.array(y_train)
y_test = np.array(y_test)
y_train = to_categorical(y_train)
y_test = to_categorical(y_test)


model = Sequential()
model.add(TimeDistributed(Conv2D(64, kernel_size=(12, 12), activation='relu', input_shape=(1772, 300, 188, 1))))
model.add(TimeDistributed(Conv2D(128, (6, 6), activation='relu')))
model.add(TimeDistributed(MaxPooling2D(pool_size=(4, 4))))
model.add(TimeDistributed(Flatten()))
model.add(LSTM(64))
model.add(Dense(4, activation='softmax'))

1 个答案:

答案 0 :(得分:0)

问题在于,通过添加包装的TimeDistributed,您需要添加一个Timestep维度。

这里您的输入有4个暗淡的(batch_size, height, width, channels),但您的图层是:

model.add(TimeDistributed(Conv2D(64, kernel_size=(12, 12), activation='relu', input_shape=(1772, 300, 188, 1))))

期望输入5为暗淡的(batch_size, timestep, height, width, channels)

因此,您需要在输入中添加其他昏暗效果!

相关问题