如何确保 Caffe 分割网络输出大小与输入大小相同?

How to ensure Caffe segmentation network output size is the same as input?

我正在使用 U-net 架构训练分割模型。输入图片大小为250x250.

目前,我手动调整了一些卷积层的填充以确保模型输出具有相同的大小,即 250x250。

但是当我输入不同尺寸的图像时,例如 500x500 的图像,输出尺寸为 506x506。

如何确保所有尺寸的输出尺寸都与输入尺寸相同?

您可以使用 "Crop" 层强制输出形状相同。
对于 U-net,我建议在每次上采样之后使用裁剪层,而不仅仅是在最后,以避免累积填充错误。

关于"padding errors":
假设你有一个形状为 100x100 的输入,如果是 2,你将它向下采样 3 次,你最终会得到 13x13 的特征图。
现在,如果你每次上采样 x2 三次

13x13 --> 26x26 --> 52x52 --> 104x104

您有 "additional" 4 个像素是由于 padding/rounding 而添加的(在您的问题中有 6 个)。
但是,如果您 "Crop" 在每次上采样后

13x13 --> 26x26 \crop 25x25 --> 50x50 --> 100x100

您会看到只有在第一次上采样后才会出现不平凡的裁剪,并且在该级别只有 1 个像素错误,而不是 4 个。