(17)语义分割(3)_pytorch用resnet50实现的FCN

本文详细介绍了如何使用PyTorch基于ResNet50构建FCN网络进行语义分割,重点讨论了网络结构、ResNet50与FCN的对应关系,并解释了网络输出层的设计,包括双线性插值还原原图大小的技巧。同时,文章提到了`__call__`函数在Python类中的应用。
部署运行你感兴趣的模型镜像

1、主要参考

(1)博主的地址,推荐

Pytorch官方实现的FCN网络结构_哔哩哔哩_bilibili

 (2)博主的github

GitHub - WZMIAOMIAO/deep-learning-for-image-processing: deep learning for image processing including classification and object-detection etc.

(3)另外参考

【深度学习】resnet-50网络结构_何顾长安的博客-优快云博客_resnet50网络

2、主要原理 

2. 1 FCN基于resnet实现的网络结构

注意:layer3和layer4使用了膨胀卷积 

2.2 对应Resnet50的结构

(1)网络结构图

 (2)网络实现图

 2.3 Resnet50和FCN两者的对应关系

(1)两者层次的对应关系

(2)回顾一下resnet50的layer1和layer2

1)resnet50的layer1

      resnet-50的bottleneck如下,layer1共有3个bottleneck,第2个和第3个block的输入channel为256,注意下图残差结构的升维连接

      也就是resnet50的layer1中的bottleneck重复了下图3次,其中第一次的网络输入是56*56*64,后两次网络的输入是56*56*256。

 2)resnet50的layer2

      resnet-50的layer2第1个bottleneck:identity的卷积核大小应为3x3,为了保证residual前后的shape一致,能够相加,进行了下采样,如下图所示。注意下图残差连接过程中的升维和尺寸缩小,所以s=2(下图有误)

      resnet-50的layer2第2,3,4个bottleneck都如下图所示,注意下图残差结构的直接连接,没有改变维度

 总结,resnet50的layer2的第一个bottleneck先下采样了一次,接下来用了3个一样的bottleneck。

  (3)FCN的layer4和layer5中改变的bottleneck如下:

其中Bottleneck1的残差连接也是等深度的,不有扩充维度s=1

 

2.4 网络输出层

(1)基于resnet50的FCN网络有2个输出层,其中FCN1从layer4引出,如下所示

      注意:最后还原原图大小采用了双线性插值的方法       

(2)其中FCN2从layer3引出训练的时候用到,作用是:防止误差梯度没有办法传递到网络浅层;测试的时候不用;当然训练的时候也可以不用,如下图所示

3. python中__call__函数的使用

参考了

Python class中的__call__()方法_I天辉I的博客-优快云博客

具体定义:python中,如果在创建class的时候写了call()方法, 那么该class实例化出实例后, 实例名()就是调用call()方法。


class Animal(object):
 
    __call__(self, words):
        print "Hello: ", words
 
if __name__ == "__main__":
    cat = Animal()
    cat("I am cat!")
 
>>> Hello: I am cat!

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值