Python 凯拉斯:有可能只在裁剪2D的一侧进行裁剪吗?

Python 凯拉斯:有可能只在裁剪2D的一侧进行裁剪吗?,python,keras,conv-neural-network,crop,Python,Keras,Conv Neural Network,Crop,我正在尝试使用MNIST实现一个用于Intel NCS2的自定义模型 我需要将第三层的尺寸从11x11x32更改为10x10x32,以便下一层的输出为偶数 我使用Crop2D,但它总是裁剪至少两行像素,但我只需要它来裁剪一行 我已经尝试过只设置一对裁剪值,但没有效果 model = models.Sequential() model.add(layers.Conv2D(16, 3, activation='relu', input_shape=(28, 28, 1))) model.add(la

我正在尝试使用MNIST实现一个用于Intel NCS2的自定义模型

我需要将第三层的尺寸从11x11x32更改为10x10x32,以便下一层的输出为偶数

我使用Crop2D,但它总是裁剪至少两行像素,但我只需要它来裁剪一行

我已经尝试过只设置一对裁剪值,但没有效果

model = models.Sequential()
model.add(layers.Conv2D(16, 3, activation='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPool2D())
model.add(layers.Conv2D(32, 3, activation='relu'))
model.add(layers.Cropping2D(cropping=((1, 1), (1, 1))))
model.add(layers.MaxPool2D())
model.add(layers.Conv2D(64, 3, activation='relu'))
model.add(layers.MaxPool2D())
model.add(layers.Flatten())
model.add(layers.Dense(256, activation='relu'))
model.add(layers.Dropout(0.5))
model.add(layers.Dense(10, activation='softmax'))
我期望输出为10x10x32,但输出为9x9x32


有可能做到这一点吗?

从这里的文档()看来,您可以使用正在传递的裁剪元组输入要裁剪的行数/列数,以及是否是从上/下左/右,例如:“如果两个整数元组的元组:解释为((上裁剪,下裁剪),(左裁剪,右裁剪))”如果您只想裁剪图像的右侧,例如,通过
croping=((0,0),(0,1))

从这里的文档()看起来您可以输入要裁剪的行数/列数,以及是否使用正在传递的
croping
元组从左上/右下,例如:“If tuple of 2 tuple of 2 int:解释为((顶部裁剪,底部裁剪),(左侧裁剪,右侧裁剪))“如果您只想裁剪图像的右侧,例如,通过
croping=((0,0),(0,1))
@Heath请将此作为答案发布,这样我们可以投赞成票,并且可以接受。