resnet和unet的连接的区别

        之前了解resnet和unet都有跳跃连接,就想了解它们之间的区别。可能是我太笨,其实一般人看到论文基本就知道区别是什么了,如果也有同学了解到这俩模型但是也不知道它们的区别恰好也想知道它们的区别,可以往下读,文章内容不多,欢迎各位大佬批评指正。

unet论文链接[1505.04597] U-Net: Convolutional Networks for Biomedical Image Segmentation (arxiv.org)

resnet论文链接[1512.03385] Deep Residual Learning for Image Recognition (arxiv.org)

        下图是unet的结构图,其中,中间的灰色的线就是它的跳跃连接。它的连接时维度与维度之间的,就拿第一条最长的那个灰色的线来说 ,指过去之前那个蓝色块是64维的,它指过去之后与上采样的64维加一块变成128维。其中我了解到的代码,只说连接部分,unet这部分是用torch.cat作为连接的。torch.cat不了解的同学可以参考https://blog.csdn.net/xinjieyuan/article/details/105208352讲的很详细。

        然后是resnet,resnet与unet的跳跃链接不能说是完全不同,只能说是毫不相关。最下面的图是resnet的模块图。显然resnet也有根线从x连接到+号那。但是它不属于维度相加,它就是单纯的两个tensor相加。 如下图

说白了就是逐个相加。我没说明白的话可以看一下代码。如下。把x赋给identity后对x进行卷积,bn,relu啥的然后后面out+=identity就说白了加的不就是之前的x嘛。

forward(self, x):
identity = x

out = self.conv1(x)
out = self.bn1(out)
out = self.relu(out)

out = self.conv2(out)
out = self.bn2(out)
out = self.relu(out)

out = self.conv3(out)
out = self.bn3(out)

if self.downsample is not None:
identity = self.downsample(x)

out += identity
out = self.relu(out)

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值