U-Net网络模型(简单改进版)

这一段时间做项目用到了U-Net网络模型,但是原始的U-Net网络还有很大的改良空间,随手加了点东西:

每次的下采样的过程中加入了通道注意力和空间注意力(大概就是这样)

代码跑出来后,效果比原来的U-Net大概提升了一个点左右,证明是有效的,改动很少,放出代码:

class ChannelAttentionModule(nn.Module):def __init__(self, channel, ratio=16):super(ChannelAttentionModule, self).__init__()self.avg_pool = nn.AdaptiveAvgPool2d(1)self.max_pool = nn.AdaptiveMaxPool2d(1)self.shared_MLP = nn.Sequential(nn.Conv2d(channel, channel // ratio, 1, bias=False),nn.ReLU(),nn.Conv2d(channel // ratio, channel, 1, bias=False))self.sigmoid = nn.Sigmoid()def forward(self, x):avgout = self.shared_MLP(self.avg_pool(x))maxout = self.shared_MLP(self.max_pool(x))return self.sigmoid(avgout + maxout)class SpatialAttentionModule(nn.Module):def __init__(self):super(SpatialAttentionModule, self).__init__()self.conv2d = nn.Conv2d(in_channels=2, out_channels=1, kernel_size=7, stride=1, padding=3)self.sigmoid = nn.Sigmoid()def forward(self, x):avgout = torch.mean(x, dim=1, keepdim=True)maxout, _ = torch.max(x, dim=1, keepdim=True)out = torch.cat([avgout, maxout], dim=1)out = self.sigmoid(self.conv2d(out))return outclass CBAM(nn.Module):def __init__(self, channel):super(CBAM, self).__init__()self.channel_attention = ChannelAttentionModule(channel)self.spatial_attention = SpatialAttentionModule()def forward(self, x):out = self.channel_attention(x) * xout = self.spatial_attention(out) * outreturn out
class conv_block(nn.Module):def __init__(self,ch_in,ch_out):super(conv_block,self).__init__()self.conv = nn.Sequential(nn.Conv2d(ch_in, ch_out, kernel_size=3,stride=1,padding=1,bias=True),nn.BatchNorm2d(ch_out),nn.ReLU(inplace=True),nn.Conv2d(ch_out, ch_out, kernel_size=3,stride=1,padding=1,bias=True),nn.BatchNorm2d(ch_out),nn.ReLU(inplace=True))def forward(self,x):x = self.conv(x)return xclass up_conv(nn.Module):def __init__(self,ch_in,ch_out):super(up_conv,self).__init__()self.up = nn.Sequential(nn.Upsample(scale_factor=2),nn.Conv2d(ch_in,ch_out,kernel_size=3,stride=1,padding=1,bias=True),nn.BatchNorm2d(ch_out),nn.ReLU(inplace=True))def forward(self,x):x = self.up(x)return xclass U_Net_v1(nn.Module):   #添加了空间注意力和通道注意力def __init__(self,img_ch=3,output_ch=2):super(U_Net_v1,self).__init__()self.Maxpool = nn.MaxPool2d(kernel_size=2,stride=2)self.Conv1 = conv_block(ch_in=img_ch,ch_out=64) #64self.Conv2 = conv_block(ch_in=64,ch_out=128)  #64 128self.Conv3 = conv_block(ch_in=128,ch_out=256) #128 256self.Conv4 = conv_block(ch_in=256,ch_out=512) #256 512self.Conv5 = conv_block(ch_in=512,ch_out=1024) #512 1024self.cbam1 = CBAM(channel=64)self.cbam2 = CBAM(channel=128)self.cbam3 = CBAM(channel=256)self.cbam4 = CBAM(channel=512)self.Up5 = up_conv(ch_in=1024,ch_out=512)  #1024 512self.Up_conv5 = conv_block(ch_in=1024, ch_out=512)  self.Up4 = up_conv(ch_in=512,ch_out=256)  #512 256self.Up_conv4 = conv_block(ch_in=512, ch_out=256)  self.Up3 = up_conv(ch_in=256,ch_out=128)  #256 128self.Up_conv3 = conv_block(ch_in=256, ch_out=128) self.Up2 = up_conv(ch_in=128,ch_out=64) #128 64self.Up_conv2 = conv_block(ch_in=128, ch_out=64)  self.Conv_1x1 = nn.Conv2d(64,output_ch,kernel_size=1,stride=1,padding=0)  #64def forward(self,x):# encoding pathx1 = self.Conv1(x)x1 = self.cbam1(x1) + x1x2 = self.Maxpool(x1)x2 = self.Conv2(x2)x2 = self.cbam2(x2) + x2x3 = self.Maxpool(x2)x3 = self.Conv3(x3)x3 = self.cbam3(x3) + x3x4 = self.Maxpool(x3)x4 = self.Conv4(x4)x4 = self.cbam4(x4) + x4x5 = self.Maxpool(x4)x5 = self.Conv5(x5)# decoding + concat pathd5 = self.Up5(x5)d5 = torch.cat((x4,d5),dim=1)d5 = self.Up_conv5(d5)d4 = self.Up4(d5)d4 = torch.cat((x3,d4),dim=1)d4 = self.Up_conv4(d4)d3 = self.Up3(d4)d3 = torch.cat((x2,d3),dim=1)d3 = self.Up_conv3(d3)d2 = self.Up2(d3)d2 = torch.cat((x1,d2),dim=1)d2 = self.Up_conv2(d2)d1 = self.Conv_1x1(d2)return d1

U-Net网络模型(添加通道与空间注意力机制)代码---亲测提高精度相关推荐

  1. CVPR 2022 | 华南理工提出VISTA:双跨视角空间注意力机制实现3D目标检测SOTA,即插即用...

    来源:机器之心 本文提出了 VISTA,一种新颖的即插即用多视角融合策略,用于准确的 3D 对象检测.为了使 VISTA 能够关注特定目标而不是一般点,研究者提出限制学习的注意力权重的方差.将分类和回 ...

  2. CVPR 2022 | 华南理工提出VISTA:双跨视角空间注意力机制实现3D目标检测SOTA

    ©作者 | 邓圣衡.梁智灏.孙林.贾奎 来源 | 机器之心 本文提出了 VISTA,一种新颖的即插即用多视角融合策略,用于准确的 3D 对象检测.为了使 VISTA 能够关注特定目标而不是一般点,研究 ...

  3. 【python】注意力机制代码

    every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?type=b ...

  4. Vue 项目中实现的微信、微博、QQ空间分享功能(亲测有效)

    需求:文章添加分享功能(包括微信.微博.QQ空间) 如下图所示: 点击图标分别跳转到如下界面:(实现效果如下) 话不多说直接代码(可以封装成组件) <template><div cl ...

  5. iphone 扩容测试软件,六个扩大iPhone储存空间的方法,亲测有效!

    原标题:六个扩大iPhone储存空间的方法,亲测有效! 对于热爱摄影的iPhone用户来说,最担心的不是iPhone的拍照功能,而是它的储存空间.好不容易拍了一组十分满意的照片,却因为剩余内存太少而无 ...

  6. 空间注意力机制和通道注意力机制详解

    Attention机制在近几年来在图像,自然语言处理等领域中都取得了重要的突破,被证明有益于提高模型的性能. Attention机制本身也是符合人脑和人眼的感知机制,这次我们主要以计算机视觉领域为例, ...

  7. 【Transformer系列(2)】注意力机制、自注意力机制、多头注意力机制、通道注意力机制、空间注意力机制超详细讲解

    前言 注意力机制一直是一个比较热的话题,其实在很早之前就提出了,我们在学习图像分类时在SENet就见到过(直通车:经典神经网络论文超详细解读(七)--SENet(注意力机制)学习笔记(翻译+精读+代码 ...

  8. 空间注意力机制sam_Attention注意力机制介绍

    什么是Attention机制 Attention机制通俗的讲就是把注意力集中放在重要的点上,而忽略其他不重要的因素.其中重要程度的判断取决于应用场景,拿个现实生活中的例子,比如1000个人眼中有100 ...

  9. 空间注意力机制sam_一种基于注意力机制的神经网络的人体动作识别方法与流程...

    本发明属于计算机视觉领域,具体来说是一种基于注意力机制的神经网络的人体动作识别的方法. 背景技术: 人体动作识别,具有着非常广阔的应用前景,如人机交互,视频监控.视频理解等方面.按目前的主流方法,可主 ...

  10. 空间注意力机制sam_自己挖坑自己填,谷歌大改Transformer注意力,速度、内存利用率都提上去了...

    考虑到 Transformer 对于机器学习最近一段时间的影响,这样一个研究就显得异常引人注目了. 机器之心报道,机器之心编辑部. Transformer 有着巨大的内存和算力需求,因为它构造了一个注 ...

最新文章

  1. 程序包管理rpm、yum与简单编译安装程序
  2. ubuntu VMware
  3. codeforces Cable Connection
  4. Kotlin plugin should be enabled before ‘kotlin-android-extensions‘
  5. 软件构架则是软件之上的 飞鸽传书 软件
  6. ECMAScript 6:更好的 Unicode 支持
  7. 如何将 Redis 的内存优化?
  8. Atitit 动态按钮图片背景颜色与文字组合解决方案
  9. Makima修正Hermite插值
  10. 5款免费好用的Gif录屏神器
  11. 平衡小车——编码器原理及其使用
  12. (全过程)如何制作论坛网站,怎样免费制作论坛,制作论坛教程
  13. 为postgreSQL添加man帮助
  14. 波及Win 11,让安全员自动放弃的零日漏洞,微软这次麻烦了
  15. 1. 拼多多什么软件可以看到大数据?拼多多大数据分析软件有哪些?
  16. 谈谈JS二进制:File、Blob、FileReader、ArrayBuffer、Base64
  17. 使用pgloader迁移MySQL至openGauss
  18. 谷歌大脑团队新尝试 用奇异向量典型相关分析解释深度神经网络
  19. .config文件和Menuconfig以及Makefile参考学习
  20. 苹果CEO乔布斯在斯坦福大学的演讲稿[中英]

热门文章

  1. 辛普森法 matlab,MATLAB辛普森法则
  2. 计算机网络位置拒绝访问,Win10无法访问D盘提示位置不可用 拒绝访问的解法
  3. 软考高级的信息系统项目管理师零基础好考吗?
  4. C++ OpenCV遍历并处理一个文件夹中的所有图片
  5. linux视频播放器安装程序,新手求助自带视频播放器安装问题
  6. 2017博鳌新型城镇化发展大会,机智云斩获2017中国智慧城市生态圈杰出企业、智慧城市创新应用双料大奖
  7. UnitySDK新接入记录
  8. asp企业建站系统 最新推出的 免费下载
  9. 如何升级win10.
  10. 轻松编写您自己的拖拉机算法,进行算法大战