【发布时间】:2019-05-11 23:57:02
【问题描述】:
此 CNN 适用于 40x40x2 图像,但现在我想更改为 13x78x2 并得到以下错误。我应该对我的 CNN 架构进行哪些更改?
Negative dimension size caused by subtracting 3 from 2 for 'conv2d_13/convolution' (op: 'Conv2D') with input shapes: [?,2,35,64], [3,3,64,64].
我的代码:
data_w = 40 #CHANGE TO 13
data_h = 40 #CHANGE TO 78
n_classes = 2
n_filters_1 = 32
n_filters_2 = 64
d_filter = 3
p_drop_1 = 0.25
p_drop_2 = 0.50
model = Sequential()
model.add(Convolution2D(n_filters_1, d_filter, d_filter, border_mode='valid', input_shape=(data_w, data_h,2)))
model.add(Activation('relu'))
model.add(Convolution2D(n_filters_1, d_filter, d_filter))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(p_drop_1))
model.add(Convolution2D(n_filters_2, d_filter, d_filter, border_mode='valid'))
model.add(Activation('relu'))
model.add(Convolution2D(n_filters_2, d_filter, d_filter))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(p_drop_1))
## Used to flat the input (1, 10, 2, 2) -> (1, 40)
model.add(Flatten())
# Full Connected layer
model.add(Dense(256))
model.add(Activation('relu'))
# Drop layer
model.add(Dropout(p_drop_2))
# Output Full Connected layer
model.add(Dense(n_classes))
model.add(Activation('softmax'))
【问题讨论】:
标签: python machine-learning keras deep-learning conv-neural-network