大家好
最近遇到一個錯誤:
ValueError: Negative dimension size caused by subtracting 3 from 1 for 'conv3d_1/convolution' (op: 'Conv3D') with input shapes: [?,1,20,20,20], [3,3,3,20,128].
在 keras 中的 Conv3D 預設使用的input 是 (影像寬, 影像高, 影像深, 1)
那個1 其實是指 RGB通道
例如資料的 data[第X張][X位置][Y位置][Z位置][RGB 的順序]
但是有時候我們的資料是 (1, 20, 20, 20)
不是 (20, 20, 20, 1)
那該怎麼設定呢?
可以用 data_format 的 channels_first
sample_shape = (1, 20, 20, 20) model = keras.models.Sequential() model.add(Conv3D(128, kernel_size=(3, 3, 3), activation='relu',data_format='channels_first', kernel_initializer='he_uniform', input_shape=sample_shape)) model.add(MaxPooling3D(pool_size=(2, 2, 2))) model.add(Conv3D(256, kernel_size=(3, 3, 3), activation='relu', kernel_initializer='he_uniform')) model.add(MaxPooling3D(pool_size=(2, 2, 2)))
給大家參考囉
留言板
歡迎留下建議與分享!希望一起交流!感恩!