具有不同输入的全卷积网络
Posted
技术标签:
【中文标题】具有不同输入的全卷积网络【英文标题】:Fully Convolution Networks with Varied inputs 【发布时间】:2016-11-09 12:31:41 【问题描述】:我有一个全卷积神经网络,U-Net,可以在下面阅读。
https://arxiv.org/pdf/1505.04597.pdf
我想用它对图像进行像素分类。我的训练图像有两种尺寸:512x512 和 768x768。我在初始步骤中在前者中使用大小为 (256,256,256,256) 的反射填充,在后者中使用 (384,384,384,384)。我在卷积之前进行连续填充,以获得输入大小的输出。
但由于我的填充取决于图像/输入的大小,我无法构建通用模型(我使用的是 Torch)。
在这种情况下如何填充?
我是深度学习的新手,任何帮助都会很棒。谢谢。
【问题讨论】:
【参考方案1】:您的模型将只接受第一层大小的图像。在将它们转发到网络之前,您必须对它们进行预处理。为此,您可以使用:
image.scale(img, width, height, 'bilinear')
img
是要缩放的图像,width
和 height
是模型第一层的大小(如果我没记错的话是 572*572),'bilinear'
是它的算法将用于缩放图像。
请记住,可能需要提取图像的平均值或将其更改为 BGR(取决于模型的训练方式)。
【讨论】:
这也是我的理解。但是我对这两个帖子感到矛盾。如这些帖子中建议的那样,您如何在测试期间输入不同尺寸的图像? ***.com/a/39054829/8100895***.com/a/57346952/8100895【参考方案2】:首先要做的是将所有图像处理为相同大小。 CONV 层输入要求所有图像都具有指定的尺寸。
Caffe 允许您在 prototxt 文件中进行reshape;在 Torch 中,我认为有一个类似的命令可以放在 createModel 的前面,但我不记得命令名称了。如果没有,那么您需要在模型流程之外进行。
【讨论】:
以上是关于具有不同输入的全卷积网络的主要内容,如果未能解决你的问题,请参考以下文章