具有可变输入的全卷积网络
Fully Convolution Networks with Varied inputs
我有一个全卷积神经网络U-Net,可以看下面
我想用它对图像进行像素级分类。我有两种尺寸的训练图像:512x512 和 768x768。我在初始步骤的前者中使用大小为 (256,256,256,256) 的反射填充,在后者中使用大小为 (384,384,384,384) 的反射填充。我在卷积之前进行连续填充,以获得输入大小的输出。
但是由于我的填充取决于 image/input 的大小,所以我无法构建通用模型(我使用的是 Torch)。
在这种情况下如何填充?
我是深度学习的新手,任何帮助都会很棒。谢谢
首先要做的是将所有图像处理为相同大小。 CONV 层输入要求所有图像都具有指定的尺寸。
Caffe 允许您在 prototxt 文件中进行 reshape;在 Torch 中,我 认为 有一个类似的命令可以放在 createModel 的前面,但我不记得命令名称了。如果没有,那么您需要在模型流程之外进行。
您的模型将只接受第一层大小的图像。在将它们转发到网络之前,您必须对所有这些进行预处理。为此,您可以使用:
image.scale(img, width, height, 'bilinear')
img
将是要缩放的图像,width
和 height
模型第一层的大小(如果我没记错的话是 572*572) , 'bilinear'
是它将用来缩放图像的算法。
请记住,可能需要提取图像的平均值或将其更改为 BGR(取决于模型的训练方式)。
我有一个全卷积神经网络U-Net,可以看下面
我想用它对图像进行像素级分类。我有两种尺寸的训练图像:512x512 和 768x768。我在初始步骤的前者中使用大小为 (256,256,256,256) 的反射填充,在后者中使用大小为 (384,384,384,384) 的反射填充。我在卷积之前进行连续填充,以获得输入大小的输出。
但是由于我的填充取决于 image/input 的大小,所以我无法构建通用模型(我使用的是 Torch)。
在这种情况下如何填充?
我是深度学习的新手,任何帮助都会很棒。谢谢
首先要做的是将所有图像处理为相同大小。 CONV 层输入要求所有图像都具有指定的尺寸。
Caffe 允许您在 prototxt 文件中进行 reshape;在 Torch 中,我 认为 有一个类似的命令可以放在 createModel 的前面,但我不记得命令名称了。如果没有,那么您需要在模型流程之外进行。
您的模型将只接受第一层大小的图像。在将它们转发到网络之前,您必须对所有这些进行预处理。为此,您可以使用:
image.scale(img, width, height, 'bilinear')
img
将是要缩放的图像,width
和 height
模型第一层的大小(如果我没记错的话是 572*572) , 'bilinear'
是它将用来缩放图像的算法。
请记住,可能需要提取图像的平均值或将其更改为 BGR(取决于模型的训练方式)。