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'))
添加回答
舉報