深度学习学习日记4.14 数据增强 Unet网络部分

数据增强
在这里插入图片描述
transforms.Compose([:这表示创建一个转换组合将多个数据转换操作串联在一起
transforms.RandomHorizontalFlip():这个操作是随机水平翻转图像,以增加数据的多样性。它以一定的概率随机地水平翻转输入的图像。
transforms.Resize(image_size):这个操作用于将图像调整为指定的大小。image_size 是所需的输出图像大小,可以是一个整数或一个 (height, width) 元组。
transforms.CenterCrop(image_size):这个操作用于从图像的中心裁剪出指定大小的区域。同样,image_size 可以是一个整数或一个 (height, width) 元组。
transforms.ToTensor():这个操作将图像转换为 PyTorch 张量格式。它会将 PIL 图像或 ndarray 转换为张量,并对像素值进行归一化到 [0, 1] 的范围内。
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]):这个操作用于对图像进行标准化。它对张量的每个通道进行归一化处理,使得每个通道的均值为 0.485、0.456、0.406,标准差为 0.229、0.224、0.225。
Unet下采样:两层的卷积+relu+maxpooling
1.继承nn.model
2.初始化参数,输入channel,输出channel
nn.sequential序列 中写 卷积,relu(inplce=True节省计算资源),卷积,Relu
最大池化层,缩减为1/2 长宽都减小一般
3.前向传播:需要有参数是否做maxpooling
在这里插入图片描述
在这里插入图片描述
Unet上采样:卷积、卷积 反卷积 不需要设置outchannel
1.继承nn.model
2.初始化参数,只需要输入通道数
nn.sequential序列中写 卷积(输入是输出的2倍(有contact操作))relu ,卷积,relu
反卷积的nn.sequential 输出通道数减半,保证图片的长宽是原来的2倍和relu函数
在这里插入图片描述
在这里插入图片描述
3.前向传播,卷积卷积 ,反卷积
Unet的整体结构:
encoder:先池化后卷积
decoder:卷积卷积反卷积
需要把前面卷积的数据进行融合
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#网络
class Downsample(nn.Module):def __init__(self, in_channels, out_channels):super(Downsample, self).__init__()self.conv_relu = nn.Sequential(nn.Conv2d(in_channels, out_channels, kernel_size=3, padding=1),nn.ReLU(inplace=True),nn.Conv2d(out_channels, out_channels, kernel_size=3, padding=1),nn.ReLU(inplace=True))self.pool = nn.MaxPool2d(kernel_size=2)def forward(self, x, is_pool=True):if is_pool:x = self.pool(x)x = self.conv_relu(x)return x
class Upsample(nn.Module):def __init__(self, channels):super(Upsample, self).__init__()self.conv_relu = nn.Sequential(nn.Conv2d(2*channels, channels, kernel_size=3, padding=1),nn.ReLU(inplace=True),nn.Conv2d(channels, channels,  kernel_size=3, padding=1),nn.ReLU(inplace=True))self.upconv_relu = nn.Sequential(nn.ConvTranspose2d(channels, channels//2, kernel_size=3,stride=2,padding=1,output_padding=1),nn.ReLU(inplace=True))def forward(self, x):x = self.conv_relu(x)x = self.upconv_relu(x)return x
class Net(nn.Module):def __init__(self):super(Net, self).__init__()self.down1 = Downsample(3, 64)self.down2 = Downsample(64, 128)self.down3 = Downsample(128, 256)self.down4 = Downsample(256, 512)self.down5 = Downsample(512, 1024)self.up = nn.Sequential(nn.ConvTranspose2d(1024, 512, kernel_size=3,stride=2,padding=1,output_padding=1),nn.ReLU(inplace=True))self.up1 = Upsample(512)self.up2 = Upsample(256)self.up3 = Upsample(128)self.conv_2 = Downsample(128, 64)self.last = nn.Conv2d(64, 2, kernel_size=1)def forward(self, x):x1 = self.down1(x, is_pool=False)x2 = self.down2(x1)x3 = self.down3(x2)x4 = self.down4(x3)x5 = self.down5(x4)x5 = self.up(x5)x5 = torch.cat([x4, x5], dim=1)           # 32*32*1024x5 = self.up1(x5)                         # 64*64*256)x5 = torch.cat([x3, x5], dim=1)           # 64*64*512  x5 = self.up2(x5)                         # 128*128*128x5 = torch.cat([x2, x5], dim=1)           # 128*128*256x5 = self.up3(x5)                         # 256*256*64x5 = torch.cat([x1, x5], dim=1)           # 256*256*128x5 = self.conv_2(x5, is_pool=False)       # 256*256*64x5 = self.last(x5)                        # 256*256*3return x5
#测试模型
device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
model=Net().to(device)
# x = torch.rand([8,3,256,256])
# x=x.to(device)
# y=model(x)
# y.shape

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/618427.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【云计算】云数据中心网络(二):弹性公网 IP

云数据中心网络(二):弹性公网 IP 1.什么是弹性公网 IP2.弹性公网 IP 的类型2.1 多线 EIP2.2 任播 EIP2.3 单线静态 EIP2.4 精品 EIP2.5 识别不同类型的 IP 的地址 3.弹性公网 IP 功能3.1 自带公网 IP 地址上云3.2 尽力找回公网 IP 地址3.3 连…

发布 Chrome/Edge浏览器extension扩展到应用商店

Chrom Extension发布流程 创建和发布自定义 Chrome 应用和扩展程序:https://support.google.com/chrome/a/answer/2714278?hlzh-Hans 在 Chrome 应用商店中发布:https://developer.chrome.com/docs/webstore/publish?hlzh-cn 注册开发者帐号&#…

有真的副业推荐吗?

#有真的副业推荐吗# 我做副业项目的时候,认识了一位带娃宝妈,讲一下她空闲时间做副业赚钱的故事吧。在一个温馨的小家庭里,李婷是一位全职宝妈,她的主要任务是照顾和陪伴自己可爱的宝宝。然而,随着宝宝逐渐长大&#x…

【vs2019】window10环境变量设置

【vs2019】window10环境变量设置 【先赞后看养成习惯】求关注点赞收藏😊 安装VS2019时建议默认安装地址,最好不要改动,不然容易出问题 以下是安装完VS2019后环境变量的设置情况,C:\Program Files (x86)\Microsoft Visual Studi…

稀碎从零算法笔记Day48-LeetCode:三角形最小路径和

题型:DP、二维DP、矩阵 链接:120. 三角形最小路径和 - 力扣(LeetCode) 来源:LeetCode 题目描述 给定一个三角形 triangle ,找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。相邻的…

L3 【哈工大_操作系统】操作系统启动

本节要点: 1、理解 OS 启动过程发生了什么,理解 OS 与 硬件 与 应用 之间的关系 2、本节讲解了 setup 模块 和 system 模块实现的功能 1、计算机上电时,操作系统在硬盘(磁盘)上,为了“取指执行”&#xff0…

44.HarmonyOS鸿蒙系统 App(ArkUI)栅格布局介绍

栅格布局是一种通用的辅助定位工具,对移动设备的界面设计有较好的借鉴作用。主要优势包括: 提供可循的规律:栅格布局可以为布局提供规律性的结构,解决多尺寸多设备的动态布局问题。通过将页面划分为等宽的列数和行数,…

扣子Coze插件教程:如何使用Coze IDE创建插件

🧙‍♂️ 诸位好,吾乃斜杠君,编程界之翘楚,代码之大师。算法如流水,逻辑如棋局。 📜 吾之笔记,内含诸般技术之秘诀。吾欲以此笔记,传授编程之道,助汝解技术难题。 &#…

探索Sora:OpenAI的革新性视频生成技术

探索Sora:OpenAI的革新性视频生成技术 在数字时代的浪潮中,人工智能(AI)逐渐渗透到我们生活的方方面面,不断推动着科技与创意的边界。近日,OpenAI发布了一款名为Sora的新工具,它利用数据驱动的物…

系统架构最佳实践 -- CRM会员客户关系管理系统架构的设计

在现代商业中,企业与客户之间的关系至关重要。为了更好地管理和维护客户关系,许多企业采用CRM(Customer Relationship Management)系统。本篇博客将介绍CRM会员客户关系管理系统的架构设计及实践,探讨其核心组成和关键…

2024年DTC的回顾与思考

刚结束了2024的数据库技术嘉年华 这是我从2017年开始就参加的技术大会。中途因为疫情的耽误。正常来说我是连续的。知道我的朋友都知道我习惯炫耀一下。 按照惯例,此时此刻群友都在写大会回顾。只是有几个不讲武德的人已经发送了。下面有主观和客观的分析。 主观上…

第四十八周:文献阅读

目录 摘要 Abstract 文献阅读:时间序列预测的傅里叶图卷积网络 现有问题 提出方法 方法论 傅里叶级数 图信号的傅里叶变换 论文方法:F-GCN(傅立叶图卷积网络) 数据构建 傅立叶嵌入模块 时空ChebyNet层 框架伪代码 研…