保留全卷积网络的分辨率

时间:2019-12-20 13:03:05

标签: conv-neural-network pytorch

我是ML和Pytorch的新手,并且遇到以下问题:

我正在寻找Pytorch中的完全卷积网络体系结构,以便输入将是RGB图像(HxWxC或480x640x3),而输出将是单通道图像(HxW或480x640)。换句话说,我正在寻找一个可以保持输入分辨率(HxW)并松开通道尺寸的网络。我遇到的所有网络(ResNet,Densenet等)都以完全连接的层(没有任何上采样或去卷积)结束。这是有问题的,原因有两个:

  1. 我只能选择输入大小(HxWxC)。
  2. 与我期望获得的输出(单通道图像HxW)无关。

我想念什么?为什么还要有FC层?为什么特征提取后没有上采样或一些反卷积层?是否有任何适合我要求的内置torchvision.model?在哪里可以找到这样的pytorch架构?正如我所说,我是这个领域的新手,所以我真的不喜欢从头开始构建这样的网络的想法。

谢谢。

2 个答案:

答案 0 :(得分:0)

您可能遇到了用于分类的网络。因此,它们最终形成一个池和一个完全连接的层,以产生固定数量的分类输出。

看看Unet https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/

注意:原始的unet实现使用很多技巧。 您可以简单地向下采样然后对称地向上采样来完成工作。

答案 1 :(得分:0)

您的任务属于密集分类任务,例如分割。在这些任务中,我们使用完全卷积网络(原始论文请参见here)。在FCN中,您没有任何完全连接的图层,因为在应用完全连接的图层时,您会丢失密集预测所需的空间信息。还可以看看U-Net paper。所有最新的体系结构都使用某种扩展的编码器/解码器体系结构,例如通过金字塔池模块进行扩展。

pytorch模型动物园here中有一些实现。还在Github上搜索其他网络的pytorch实现。