AI学习_无监督学习(编解码器)_图像分割_Unet/U2net
无监督学习
让模型对输入的数据进行特征提取,从而实现无标签(无监督学习)
本质是编码,解码的过程。让模型在卷积编码(下采样)、卷积解码(上采样)的过程中。自我总结特征
目前常用于图像分割
(ps:图像分割又分为三种:普通分割、 语义分割、实例分割。此处的无监督学习现用于普通分割)
编码解码器的结构,就是无监督神经网络,每层结构类似(顺序不能变):
卷积 +
BtachNormal +
ReLU+
Pool(未定)+
Dropout
(同时这一结构也是后期大部分卷积网络的基本结构)
代码实现:
nn.Conv2d(16, 32, 3, 1, padding=1, padding_mode="reflect", bias=False), # 普通卷积层,这里选择"3卷积核/1步长/1padding"的模板,不改变输入内容的尺寸,只进行特征提取
#注意: bias=False,是因为BatchNorm2d相当于进行了bias的操作(只不过是做乘法),所以手动去掉bias
nn.BatchNorm2d(32),
# 常规的Relu,
# 也可以换为LeakyReLU。但就要加上nn.Dropout(0.2)去掉一些多余的数据
nn.ReLU(),
# !!!最大池化/平均池化 的输入值都是“池化区大小”,别调太大!!!
nn.MaxPool2d(3),
由于编码(下采样)会丢失数据,所以需要在解码(上采样)里补充特征
如果编码(下采样)时压缩率过高,损失太高,解码(上采样)可能会失败
通道混洗(Group编组)
在不增加计算量的情况下,使通道充分融合
简而言之,即改形状(reshape)后转置/换轴(transpose),再改回来。实现打乱顺序,重新排序
注意:实现混洗的基础是,“上一个卷积层进行了分组”
layer1 = nn.Conv2d(12, 12, 3, 1, padding=1, groups=6) # 深度可分离卷积
out = layer1(x)
print(out.shape) # 1, 12, 32, 32
# 通道混洗(reshape)
out = out.reshape(1, 3, 4, 32, 32)
# 换轴
out = torch.permute(out, (0, 2, 1, 3, 4))
print(out.shape) # 1, 4, 3, 32, 32
# 再换回来
out = out.reshape(1, 12, 32, 32)
print(out.shape) # 1, 12, 32, 32
UNET(U型网络)
一种全卷积神经网络,用于图像分割
UNET本身就是编解码过程,下采样+上采样就是编解码。整体的结构类似↘↗
注意:LeakyReLU(在>0处有输出的relu)添加不少参数,需要Dropout出更多参数
注意:11的卷积核没有特征提取,还是推荐用33的
注意:构造序列器写起来简单,但不灵活(没办法加参数之类的)
注意:做数据集训练的过程,即为特征提取的过程
U2NET(复合型U型网络)
一种复合型的U型网络
主要用于显著目标检测(RSU)。可以自动识别输入图片中最大的物体
每一层都有
性能比UNET更强一些
一些小知识
batchSize:学生机可以设置4~8,建议4
VOC训练集-数据33260,训练集-标签2913
VOC数据集缺点:噪声大、背景复杂、标签不细致(效果不好)
优点:免费!样本多3w
训练集/对标签的要求
训练集必须:数据+标签
测试集可以不要标签,直接看效果就行
如何开启附加线程
batchSize旁边加一个num_workers=True开启附加线程
获取列表/元祖/矩阵中最大值的方法
argmax(获取列表/元祖最大值的索引)
宝可梦属性分类项目的实现思路
残差卷积+全连接,实现18分类,905数据
AI学习_无监督学习(编解码器)_图像分割_Unet/U2net相关推荐
- 监督学习无监督学习_无监督学习简介
监督学习无监督学习 To begin with, we should know that machine primarily consists of four major domain. 首先,我们应 ...
- 有监督学习和无监督学习举例_对比自监督学习
作者:Ankesh Anand 编译:ronghuaiyang 原文链接: 对比自监督学习mp.weixin.qq.com 导读 利用数据本身为算法提供监督. 对比自监督学习技术是一种很有前途的方法 ...
- AI之强化学习、无监督学习、半监督学习和对抗学习
1.强化学习 文章目录 1.强化学习 1.1 强化学习原理 1.2 强化学习与监督学习 2.无监督学习 3.半监督学习 4.对抗学习 强化学习(英语:Reinforcement Learning,简称 ...
- 深度学习与无人车导论_深度学习导论
深度学习与无人车导论 改变游戏规则 图片的信誉归功于: https : //www.digitalocean.com/ 深度学习 已经成为许多新应用程序的主要驱动力,是时候真正了解为什么会这样了. 我 ...
- 《神经网络与深度学习》-无监督学习
无监督学习 1. 无监督特征学习 1.1 主成分分析 1.2 稀疏编码 1.2.1 训练方法 1.2.2 稀疏编码的优点 1.3 自编码器 1.4 稀疏自编码器 1.5 堆叠自编码器 1.6 降噪自编 ...
- 强化学习——day30 无监督学习算法
无监督学习算法 Sarsa 算法 从知道什么是好的,到如何做好行动 SARSA 使用SARSA的在线策略控制 伪代码 SARSA示例 Q学习(离线学习策略) 离线策略学习 Q学习 使用Q学习的离线策略 ...
- AI | 一次无监督学习的尝试(皮肤分类)
作者:邵可佳 笔者一直对颜值评测领域问题感兴趣,而该领域的公开数据集有限,很难取得大规模的高质量标注数据,如何设计一套无需标注数据的颜值评测模型,一直是困扰笔者很久的问题. 而近期,笔者使用无监督技术 ...
- 有监督学习和无监督学习举例_监督学习入门学习笔记
以下内容引用:An Introduction to Machine Learning with Python by Andreas C. Müller and Sarah Guido (O'Reill ...
- AI学习[随堂笔记1109]_交叉熵损失函数_方差损失函数_基础
交叉熵损失函数 一种用于分类问题1的损失函数2,原理为:将模型输出的概率,与标准答案3的值对比. 和正确答案越接近,则计算结果:交叉熵越低,模型质量越好 和错误答案越接近,则交叉熵越大,模型质量越差 ...
最新文章
- Python游戏开发,pygame模块,Python实现打砖块小游戏
- 「基于GNN的图分类研究」最新2022综述
- mysql 启动个关闭命定_mysql利用phpmyadmin实现数据库同步更新
- [转] UML类图的几种关系总结
- 类与接口(二)java的四种内部类详解
- gradle编译打包过程 之 ProcessAndroidResources的源码分析
- JSP关于用户安全退出的问题
- java流的序列化_Java中的对象流和序列化介绍
- bash shell函数中返回任意值的四种方法
- rsyslogd以及日志轮替logrotate的梳理
- python定时启动代码_python每天定时运行某程序代码
- 号外号外~~OSS监控服务上线啦!!
- 开关电源中的电感电容
- matlab 多项式排序,MATLAB多项式
- (原创)虚拟机下Ubuntu共享主机文件(Ubuntu、VMware、共享)
- 十进制转换为三进制实例
- 计算机信息技术与幼儿教育论文,信息技术应用于幼儿教育论文
- 【渝粤教育】 广东开放大学21秋期末考试民事诉讼法学10680k2
- (MB) MRM域中的物理格式
- Python《成功破解简单的 动态加载 的爬虫》
热门文章
- 带管理口的mellanox交换机开启端口一分二特性
- Unity3D Shader编程】之四 热带雨林篇: 剔除、深度测试、Alpha测试以及基本雾效合辑
- 计算机网络(九):文件传输协议FTP
- Git命令大全或者使用Git命令操作也是Git命令总结
- 618比较不错的运动好物有哪些?实用性的运动好物推荐
- 基于视觉与板球系统的智能垃圾桶
- android-xBuild apk差分与合成,zip差分与合成,lua打包,apk打包,png/jpg图片压缩
- 使用jieba分析小说太古神王中,男主更爱谁?去文章中找答案吧!
- 元素入栈顺序确定,共有多少种出栈顺序?----Python
- Spring Cloud Alibaba参考文档