当前位置: 首页 > article >正文

【纯小白论文代码带读】医学图像分割MASDF-Net(问题产生及解决)

论文链接:https://www.semanticscholar.org/paper/MASDF-Net%3A-A-Multi-Attention-Codec-Network-with-and-Fu-Deng/6ab609eb93dfd12596032174ca9603712f5c050a        

代码链接:https://github.com/Rayicer/TransFuse

初见面代码:

Q:这几个数据集分别是干嘛的?GroundTruth的数据集是干嘛的?训练集,验证集,测试集区别是什么,分别是干什么的?

A:这几个数据集分别是训练集(Training),验证集(Validation),测试集(Test),

其中训练集是用来训练模型的,

验证集是用于模型选择和超参数调整的数据集,用于研究人员评估模型配置的性能,并选择最佳的模型(参数)。

测试集:是用来最终评估模型性能的数据集。里面的图片具有代表性,独特性,全面,随机的,独立于前两个数据集。

三者可以类比为学生从学习知识到高考。  训练集就是做练习题,验证集就是做月考,查漏补缺,测试集就是高考,最终评估。

#训练集-》训练模型(类似做练习题);验证集-》调整模型,评估性能(类似月考);测试集-》最终评估模型(类似高考)

三者都有GroundTruth,相当于就是作业的参考答案,用于矫正,评估。

Q:三个都是数据集,那可以调换吗?

A:不可以调换,因为不同的数据集具有不同的特点,就像单元练习题,月考题,高考题能一样吗。

Q:文件夹外的这几个文件分别是干啥的,应该运行那个,怎么运行?

A:第一个process.py是数据(预)处理文件:也就是把图片转化成数据数组,这样计算机才能处理。具体怎么处理可以见代码内容。大致就是:黑白的就是不同像素点,按顺序存储0,1.彩色的就是RGB的三个值(到时候会建立三个通道,不同通道代表不同的颜色值)。

第二个是test_isic.py是测试模型的代码

train_isic.py是训练模型的代码。

---------------------------进入process.py----------------

Q: process.py文件里有个set_size,这是干嘛的,里面的数字各有什么含义?

set_size = [2000, 150, 600]

A:set_size 是一个列表,它指定了每个数据集(训练集、验证集、测试集)中图像的数量。分别代表训练集中的图像数量,验证集中的图像数量,测试集中的图像数量

  1. 2000:训练集中的图像数量。
  2. 150:验证集中的图像数量。
  3. 600:测试集中的图像数量

Q:他这里save_name是干嘛的 ?

save_name = ['train', 'val', 'test']

A:#预处理后的文件前缀名,后缀名是.npy。相当于就是保存处理后的数据的文件的文件名。

Q:他这个height和witdth又是干什么的欸?

A:heightwidth 变量用于指定处理后图像的尺寸。这些变量定义了图像在预处理步骤中将被调整到的高度和宽度。在深度学习模型中,通常需要固定尺寸的输入图像,因此预处理步骤中常常包括调整图像尺寸的操作。

process.py 脚本中,heightwidth 用于 cv2.resize 函数,该函数将加载的每个图像调整到指定的尺寸:

img = cv2.resize(img, (width, height))

确保了所有处理后的图像都有相同的维度,可以被模型正确处理。同样的方法也适用于掩码图像,以确保图像和其对应的掩码在空间尺寸上是匹配的。

Q:这里我怎么知道像素应该是多少呢?换句话说,这个数值可以任意调整吗?有什么影响不?是有一个标准的答案,还是说像参数一样可以随意调的?

A:一般是不能任意调的,一般就根据原图片像素尺寸来,这样避免信息丢失,或过大。不合适的像素尺寸会影响到模型准确率和泛化能力。

Q:


这个像素一般会调不?或者说一般啥情况会调这个,调的话是宽高同倍增减吗?

A:

Q:imgs = np.uint8(np.zeros([length, height, width, 3]))这一句是在干什么,什么意思?

A:这里是初始化矩阵,创建个0矩阵,这里的3表示就是三个通道。

np.zeros([length, height, width, 3]) 创建了一个形状为 [length, height, width, 3] 的数组,其中 length 是图像数量,heightwidth 分别是图像的高度和宽度,3 表示图像的通道数(对于彩色图像,通常是3个通道:红色、绿色和蓝色)。

  1. 数据类型指定np.uint8 指定了数组的数据类型为无符号的8位整数。这是图像处理中常用的数据类型,因为图像的像素值通常是0到255之间的整数。

Q:for i in os.listdir(path):这是在干嘛?

A:os.listdir(path)这个函数是获取该路径下的文件或文件夹的名称(包括后缀名)。也就是说i的值就是一个字符串。

Q:if len(i.split('_'))==2:这一句啥意思?

A:

  1. 分割字符串i.split('_') 使用下划线 _ 作为分隔符来分割字符串 isplit 函数将字符串分割成一个列表,其中每个元素都是原字符串中由下划线分隔开的部分。

  2. 当分割后的列表元素为2的时候,说明就是我们要处理的图片文件。

....2024.09.19未完待续。。。


http://www.kler.cn/a/311254.html

相关文章:

  • 准确--FastDFS快速单节点部署
  • goframe开发一个企业网站 rabbitmq队例15
  • 【大数据学习 | kafka高级部分】kafka中的选举机制
  • 【缓存策略】你知道 Cache Aside(缓存旁路)这个缓存策略吗
  • 深入解析Hadoop:大数据处理的基石
  • 【单例模式】饿汉式与懒汉式以及线程安全
  • 毕业论文写作会用到的AI软件!一定不能错过的18个网站!(务必收藏)
  • 【IP网址正则表达式匹配】java,IPv4网址正则表达式匹配
  • Python学习——【2.1】if语句相关语法
  • Java数据结构 (泛型第二节) 泛型擦除机制/泛型的限制/上界下界
  • linux---压缩打包
  • Axure RP 9最新安装程序及汉化包下载(支持Win、Mac版,附下载安装教程)
  • C++ —— 关于vector
  • 春招审核新思路:Spring Boot技术应用
  • c++:tinyxml2如何存储二叉树
  • Gradio 自定义组件
  • 小琳AI课堂:强化学习初阶
  • jupyter notebook添加环境/添加内核
  • Java 连接 MySQL 数据库查询示例
  • 计算机三级网络技术总结(五)
  • 【iOS】KVC
  • 小琳AI课堂:大语言模型如何符合伦理限制
  • 【深海王国】初中生也能玩的建模与3D打印?SolidWorks带你走进3D打印的神奇之旅(2)
  • LeetCode: 2576. 求出最多标记的下标 排序+双指针,时间复杂度O(n*logn)
  • 基于224G的超高速以太网端口1.6Tbps 1600G真的来了~
  • 动手学习RAG: 迟交互模型colbert微调实践 bge-m3