我试图用 numpy 在 python 中从头开始实现 Resnet。虽然个别层工作完美。我目前被困在 conv2_3 和 conv3_1 层之间,其中带有 1x1、128 过滤器的 conv3_1 层以 2 的步幅对 56x56 到 28x28 的输入进行下采样。我目前正在构建 152 第一层
我无法弄清楚的部分是当我应用这个表达式时
output_width = (input_width - filter_width + (2 * pad) ) / stride + 1
在这种情况下,结果是 (56-1+(2*0)) / 2 + 1 = 28.5 大于所需尺寸。我觉得唯一的出路是裁剪我不确定的输入图像(激活图),因为这可能会导致图像信息的耗尽。知道 tensorflow、caffe、torch 等其他库是如何做到这一点的吗?