如何在没有负尺寸的情况下实现 Conv2D 和 maxpooling2d
How to implement Conv2D and maxpooling2d without having a negative dimensions size
我正在尝试将 Conv2D 和 Maxpooling 添加到我的头部模型中,但我似乎无法这样做
headModel = baseModel.output
headModel = (Conv2D(448,(3,3),input_shape=data.shape[1:]))(headModel)
headModel = (MaxPooling2D(pool_size=(7,7)))(headModel)
headModel = Flatten(name="flatten")(headModel)
headModel = Dense(128, activation="relu")(headModel)
headModel = Dropout(0.5)(headModel)
headModel = Dense(2, activation="softmax")(headModel)
Maxpooling2D 在我添加 conv2D 之前工作得很好,但是一旦我这样做,我就会收到以下错误
Negative dimension size caused by subtracting 7 from 5 for '{{node max_pooling2d_6/MaxPool}} = MaxPoolT=DT_FLOAT, data_format="NHWC", explicit_paddings=[], ksize=[1, 7, 7, 1], padding="VALID", strides=[1, 7, 7, 1]' with input shapes: [?,5,5,448].
During handling of the above exception, another exception occurred:
ValueError Traceback (most recent call last)
理想情况下,我希望有 2 个 Maxpooling 层和 2 个 Conv2D 层,所以我可以有类似的东西
CNN Architecture
谢谢
You can set padding='same'
which will add a zero padding to the
feature maps, thus preserving the dimensions of the feature maps.
当您尝试在无法进一步减少的特征图上执行卷积或最大池时,会出现异常(如问题中所述)。例如,特征图的大小是 ( 2 , 2 , 32 )
那么你不能在其上执行内核大小为 3 的卷积(填充=valid
)。
我正在尝试将 Conv2D 和 Maxpooling 添加到我的头部模型中,但我似乎无法这样做
headModel = baseModel.output
headModel = (Conv2D(448,(3,3),input_shape=data.shape[1:]))(headModel)
headModel = (MaxPooling2D(pool_size=(7,7)))(headModel)
headModel = Flatten(name="flatten")(headModel)
headModel = Dense(128, activation="relu")(headModel)
headModel = Dropout(0.5)(headModel)
headModel = Dense(2, activation="softmax")(headModel)
Maxpooling2D 在我添加 conv2D 之前工作得很好,但是一旦我这样做,我就会收到以下错误
Negative dimension size caused by subtracting 7 from 5 for '{{node max_pooling2d_6/MaxPool}} = MaxPoolT=DT_FLOAT, data_format="NHWC", explicit_paddings=[], ksize=[1, 7, 7, 1], padding="VALID", strides=[1, 7, 7, 1]' with input shapes: [?,5,5,448]. During handling of the above exception, another exception occurred: ValueError Traceback (most recent call last)
理想情况下,我希望有 2 个 Maxpooling 层和 2 个 Conv2D 层,所以我可以有类似的东西 CNN Architecture
谢谢
You can set
padding='same'
which will add a zero padding to the feature maps, thus preserving the dimensions of the feature maps.
当您尝试在无法进一步减少的特征图上执行卷积或最大池时,会出现异常(如问题中所述)。例如,特征图的大小是 ( 2 , 2 , 32 )
那么你不能在其上执行内核大小为 3 的卷积(填充=valid
)。