2 回答
TA贡献1777条经验 获得超10个赞
你有这个错误是因为你的内核和步幅对于你的输入来说太大了,一个常见的开始是使用形状(3, 3)和步幅的内核(1, 1)。
尝试阅读如何计算卷积,让您直观了解如何设置正确的内核/步幅大小:http ://cs231n.github.io/convolutional-networks/
此外,您有一个输入channel first,因此您将第一个 conv 设置为channel first,这很好,但是您对所有卷积都执行此操作,因为默认情况下 keras 卷积将使用channel last.
例如,这是有效的:
input_shape = (4, 30, 180)
model = Sequential()
model.add(Conv2D(32, (8, 8), strides=(4, 4), activation='relu', input_shape=(4, 30, 180), data_format='channels_first'))
model.add(Activation('relu'))
model.add(Conv2D(64, (4, 4), strides=(1, 1), data_format='channels_first'))
model.add(Activation('relu'))
model.add(Conv2D(64, (3, 3), strides=(1, 1), data_format='channels_first'))
model.add(Activation('relu'))
model.add(Flatten())
model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dense(2))
model.add(Activation('linear'))
添加回答
举报