IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Unet 细胞分割 -> 正文阅读

[人工智能]Unet 细胞分割

pytorch训练网络需要注意的细节(以及模板)

笔记:https://www.zybuluo.com/CQUyh/note/2234948
标签(空格分隔): Pytorch
以细胞分割图为例(Unet和Convnext)

1.model的搭建

这个不多说,是独立的模块,只需要注意输出输出是什么,输入通道和输出通道;一个小技巧,使用monai的框架,十分方便,但是注意load_weights时读取方式。

2.整个代码架构

model、dataset作为存放模型的文件,其中每一个epcoh(训练和测试)单独写在utils,这是工具文件夹。而整体的代码写在跟目录的train.py

image_1fuj0q8jag5se801lhs1iv4bn7m.png-27.2kB

train.py:

①路径以及文件读取

②transform和dataset、dataloader

③定义模型,损失函数,优化器

④定义for训练,epcoh的for循环,最大层

main函数里面设置参数

image_1fvff083q1pfv1usf1dp6ms91va09.png-109.4kB
image_1fuj11ad511721ta51b521f8msnh1g.png-100.5kB

3.dataset(自定义)细节

①Transform

数据归一化一定要有(常用的参数),不然模型不收敛,对于简单的unet,收敛很慢很慢,对于复杂的,都不会变化。有没有决定你的模型好坏。(神经网络不收敛的原因:https://blog.csdn.net/weixin_39586997/article/details/118699735)

②一般步骤

ToTensor和Normlization:只有训练图片需要ToTensor(作用进行归一化,全部变到0-1),标签不需要进行任何transform,to_tensor都不需要可能(分情况,看像素值和one-hot)。标签具体需不需要其实看你标签本来的像素,像细胞图,像素点为0和255,需要进行norm到0和1,这样才是标准的,只是说我们默认标签值为0,1,2,3,4。

③PIL读取图像

因为torchvision支持PIL,经过ToTensor后得到[1,512,512],这里不需要扩充维度,因为dataloader会根据batchsize在读取时生成为[n,c,d,w,(h)]

③自定义dataset

这里使用PIL读取,因为transform支持PIL读取,它读取出来是一个类,然后是(3,256,256),CV读取是矩阵(256,256,3),需要转置一下,并且注意这里不需要返回加上n,因为dataloader读取的时候会根据batchsize来设置n的大小。

④常用函数

torch.Tensor是转化为float32,不要用torch.tensor; torch.transpose(data,dim1,dim2),根据维度来转置 ; torch.unsqueeze(data,dim=0)扩展一个维度。实现[d,w]->[1,d,w]

image_1fuj1i5qki2ss1a232117o1t6t1t.png-111.4kB

4.one-hot编码

①什么时候需要计算one-hot

首先是损失函数,之前总结过,哪些损失需要标签是one-hot,不需要one-hot,这个自己判断。然后就算计算dice是否需要one-hot(多分类一般都需要,保证pred和label一致channel)

②如何实现one-hot(亲测有效,多分类、二分类都可以,测试:one-hot ->argmax来imshow一下)

③细节:在one-hot那里对数据有要求,首先面前这个函数是正确的,以及用的v6的loss和dice计算不管几分类都是使用的通用模型。One-hot对细胞图,要求像素值小于分类数值,因此标准化为0,1;对于3d的数据,本来就是0,1,2,3,4,你还去ToTensor的话,就变成0.00XX,而one-hot那里要求数据转为long(),格式,会导致数据直接变为0,像素点全为0的后果。

image_1fuj1vf4l1hvd2co1pig7rh19va2a.png-25.5kB

5.Dice计算方法

非常牛逼的计算方法,是几分类,就返回[背景,前景1,前景2,、、、]需要注意的是,里面选择sigmoid还是softmax,这个根据标签来选择,是否把背景看做一类,这个之前也总结过的。我习惯用softmax。

image_1fuj228tts748hn1n5ggrm1guo34.png-134.3kB

6.推理

只提醒一个细节,推理的数据集必须跟训练时经过一样的norm,因为要符合一样的数据分布,不然没效果,推理出来跟个屎一样。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 23:22:47  更:2022-04-01 23:24:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 12:51:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码