深度学习
梦里梦见梦不见的497
在读硕士,主要从事医学影像与人工智能方向,记录平时所学
展开
-
绘制loss和acc图
绘制损失图:导入loss的npz文件。原创 2024-05-12 22:08:51 · 68 阅读 · 0 评论 -
根据标签最大层面ROI提取原始图像区域(二)
有两个文件,一个是nii的原始图像文件,一个是nii的标签文件。我们要实现的是:在标签文件上选出最大层面,然后把最大层面的ROI映射到原始图像区域,在原始图像上提裁剪出ROI区域,这次裁剪的方法和上期的不同,上次是将ROI的整个边界区域提取出来,插值到224*224。这次是在标签上找到勾画ROI的最多的那一层,找到这个ROI区域的中心点在整个图像的坐标,然后根据这个坐标在映射到原始图像上,向四周延申出224*224大小的图像。这就不能保证勾画的边界。今天要实现的任务还是提取肿瘤的感兴趣区域。原创 2024-05-12 00:32:19 · 371 阅读 · 0 评论 -
nii格式mask映射为新的mask
在DCE图像上勾画的ROI转换为nii格式形成的mask,形状和DCE的原始图像一致,用于特征提取,形状不一致不能特征提取;这个脚本根据DCE勾画的mask,和T2的图像,生成T2的mask,形状和T2一致,用于特征提取;DCE图像和T2图像的形状不一致,所以mask不能用于T2的特征提取;原创 2024-05-05 22:40:17 · 163 阅读 · 0 评论 -
将图像特征和CSV中的特征保存到h5文件中
这个脚本的任务是:从mask中提取最大的ROI,然后映射到DCE原图中,获取原图最大ROI的上一层及下一层,共三层。然后去除掉周围的0像素,再利用双线性插值到224*224大小的图像。再映射到T2序列的原图中,得到224*224大小的图像。还要获取CSV中这个患者的特征。将图像信息及CSV中的特征一块保存到h5文件中。以便在网络中进行融合。原创 2024-05-05 11:33:16 · 201 阅读 · 0 评论 -
单通道合并为三通道输入resnet网络
我们在做多序列任务时,一个患者会有多个序列的图像,每个序列的图像都是1通道的灰度图像,我们可以把一个患者的多有序列合并为多通道输入网络,这里举个3序列的例子。原创 2024-05-05 11:22:16 · 257 阅读 · 0 评论 -
迁移学习修改最后把一层类别数
【代码】迁移学习修改最后把一层类别数。原创 2024-04-28 11:33:42 · 256 阅读 · 0 评论 -
block = nn.Sequential()的用法
使用add_module往sequential中添加元素。原创 2024-04-27 21:40:28 · 78 阅读 · 0 评论 -
根据标签最大层面ROI提取原始图像区域
我们要实现的是:在标签文件上选出最大层面,然后把最大层面的ROI映射到原始图像区域,在原始图像上提裁剪出ROI区域,然后根据这个ROI,在其上面一层和下面一层,共裁剪出三张原始图像。说明第23张图像是ROI层面最大的图像,(准确应该是第24张,因为从0开始)筛选出标签图像中不为0的像素值最多的那张图像,就是层面最大的图像。根据最大层面的ROI,映射到对应的原始图像中,以及上一层和下一层。有两个文件,一个是nii的原始图像文件,一个是nii的标签文件。将原始图像和标签图像的像素值提取出来。原创 2024-04-27 14:19:12 · 470 阅读 · 0 评论 -
pyradiomics批量提取特征
我们有两个文件,一个是原始图像的nii文件,一个是标签图像的nii文件。然后实例化函数:也可以不传入参数,可以传入一些参数进行设置。保存到csv文件中,不保存行列名。一些具体参数的设置参考。原创 2024-04-27 01:15:34 · 313 阅读 · 0 评论 -
提取出图像的感兴趣区域
仔细观察发现,应该是标注的时候有一个点标注为了1。这时候,我们将原始图像×标签图像,就是标注图像的区域,那么就在原始图像上提取出标注图像的位置。我们将这张只有感兴趣的图像,用来深度学习,就会大大减少遭受的干扰,从而更好的收敛。这时候我们如果运用上一篇博文的代码,去除周围的0像素,那么处理后的图像。我们将标注好的标签保存为了.tif格式,进行可视化后为。可见我们标注图像的数值只有0和1,前景为1,背景为0.使用图像数值统计代码进行数值统计标注的图像数值。将图像的数值统计后进行条形图展示。原创 2024-04-21 22:28:41 · 527 阅读 · 3 评论 -
去除图像周围的0像素,调整大小
在做分割任务时,经常需要处理图像,如果图像周围有一圈0像素,需要去除掉,重新调整大小。原创 2024-04-21 21:16:28 · 352 阅读 · 0 评论 -
channel_shuffle代码实现
结构图,先将输入的图像进行通道拆分为组GConv1,每个GConv1再拆分Feature,每个GConv1的Feature进行合并GConv2,输出Output。输入图像x,拆分为groups个组,每隔组的通道数为channels_per_group。再将1和2的维度进行调换 ,就实现了Feature到GConv2。原创 2024-04-21 11:32:12 · 372 阅读 · 0 评论 -
修改resnet50网络的结构层
【代码】修改resnet50网络的结构层。原创 2024-03-31 22:04:54 · 119 阅读 · 0 评论 -
Grad_CAM图
导入我们训练好的模型参数和模型。注意我们这里导入的是一维的灰度图像。就可以画出Grade_CAM图。我们要将网络学习到的特征进行可视化。我们的utils文件。原创 2024-03-14 02:41:26 · 531 阅读 · 0 评论 -
将特征融合到一个网络里
在输入的时候,我们可以将三张图片合成为3通道输入,然后在三个通道上,分别用神经网络进行卷积,然后将卷积的图像,在全连接层,进行concat,然后进全连接层输出分类数目。输入的图像为(B,N,H,W),chunk为合成的几维数据,这里是将三张图像融合,所以是三维。这里只是融合1通道的医学图像,如果为3通道的彩色图像,需要先将图片的维度合并,然后将输入的维度进行3个3个拆分后卷积拼接,等用到的时候再改代码吧。我们如何将多张图片的特征融合到一块,这里提供了一种处理通道为1的医学图像方法。原创 2024-03-13 02:45:26 · 419 阅读 · 0 评论 -
注意力机制的代码实现
注意力机制有空间注意力、通道注意力以及两者的结合。这个博主讲了具体的原理和代码实现博客地址:神经网络学习小记录64——Pytorch 图像处理中注意力机制的解析与代码详解_注意力机制 bubbliiiing-CSDN博客视频地址:注意力机制工作原理详解_哔哩哔哩_bilibili原创 2024-03-11 19:49:20 · 198 阅读 · 0 评论 -
迁移学习 修改预训练参数的网络模型
在迁移学习中,要使用预训练权重。在训练好的网络权重中,使用的是1000类的分类任务。而我们自己的分类任务中没有1000类,需要修改网络。如果将MobileNetV2(num_classes=5),我们的网络在最后输出是5类,与1训练好的1000类不符。这时候就要将训练参数中的最后输出1000类的那层删除掉。然后将参数冻结,只训练最后一层参数。原创 2024-03-11 01:51:43 · 376 阅读 · 0 评论 -
如何查看resnet网络的中间输出特征和卷积核的参数
这里在convert1后和layer1后添加到一个列表中,然后输出。后面的就不进行卷积操作了。查看中间层的特征,需要在定义Model时,在forward时,将中间要显示的层输出。然后就可以在预测的时候输出中间层。原创 2024-03-10 11:36:26 · 241 阅读 · 0 评论 -
混淆矩阵的代码实现
当然这里还需要Model文件。我用了MobileNetV2模型。然后我们就可以在预测中进行输出结果了。原创 2024-03-10 11:15:23 · 543 阅读 · 0 评论 -
datasets.ImageFolder如何处理通道为1的灰度图像
也就说无论你的图片是什么类型,它都会给你转成RGB图像,所以在卷积层一的输入特征矩阵channel=3并不是你以为的channel=1所以才会报错。你如果想入读gray类型的话,你需要在datasets.ImageFolder方法中传入自定的loader不让它转成RGB图像。如果输入的是灰度1通道的数据,将model.py中的channel的3修改为1,就会报错。除了以上定义loader的做法外,也可以在transforms添加transforms.Grayscale(1)也可以达到效果。原创 2024-03-08 23:18:58 · 491 阅读 · 0 评论 -
Vision Transformer代码实现
Transformer原创 2024-03-02 10:40:08 · 147 阅读 · 0 评论 -
将一个文件夹下的文件每隔两个复制一个到一个新的文件夹中
先要把一个文件下的文件都遍历一遍,然后把路径保存到一个列表中,然后每隔两个取出一个定义一个新的列表,这个列表里的元素就是要复制的文件。原创 2024-01-14 14:55:17 · 530 阅读 · 0 评论 -
检查图片的格式
F:\乳腺MR\MR基因预测\T1\ZHANG_GUI_XIAN-220802315 包含 22 个文件F:\乳腺MR\MR基因预测\T2\LUO_SU_LING-230415255 包含 20 个文件一共有 526 个文件夹下有36个文件一共有 2 个文件夹下不是有36个文件。原创 2024-01-07 12:33:07 · 394 阅读 · 0 评论 -
将图片用神经网络提取特征,再与csv中的其他特征进行融合
将图片用神经网络提取的特征和csv文件中的特征进行融合,主要就是要保证读取的图片名字和csv中的名字一致,这样才能保证一致性。这样就可以了,代码中做的是一个二分类,所以全连接之后用线性层输出为2,使用的损失函数为。我用vgg16提取特征,然后再与csv中的其他特征进行融合。torch.nn.BCELoss() ,最后开始训练模型。原创 2023-12-17 01:00:08 · 503 阅读 · 1 评论 -
单序列与多序列的测试test
【代码】单序列与多序列的测试test。原创 2023-12-13 19:00:54 · 411 阅读 · 1 评论 -
单序列和多序列模型的训练train
【代码】多序列模型的训练train。原创 2023-12-12 22:52:40 · 345 阅读 · 0 评论 -
csv文件的保存和加载
【代码】csv文件的保存和加载。原创 2023-12-12 22:47:26 · 408 阅读 · 0 评论 -
python保存和加载.npz 文件
【代码】python保存和加载.npz 文件。原创 2023-12-12 22:16:31 · 921 阅读 · 0 评论 -
python安装相关包的一些命令:镜像和freeze
【代码】python安装相关包的一些命令:镜像和freeze。原创 2023-12-12 21:23:15 · 367 阅读 · 0 评论 -
数据预处理prepare_data
单序列和多序列数据预处理的代码原创 2023-12-12 19:42:26 · 341 阅读 · 0 评论 -
使用pytorch修改resnet18网络
修改ResNet-18网络(使用预训练),输入通道为1,输出为2,并返回前连接层的特征数和最后的输出原创 2023-12-12 19:10:32 · 1316 阅读 · 0 评论 -
pytorch修改resnet50
修改resnet50网络原创 2023-12-12 19:32:48 · 983 阅读 · 0 评论 -
将二维数组变成三维(C,H,W)格式,输入pytorch中
二维数组不能传入到pytorch中,需要变成三维(C,H,W)格式,输入pytorch中原创 2023-12-03 01:37:13 · 443 阅读 · 1 评论 -
jupyter运行pycharm中的配置文件conf
我们经常会把一些改动的参数写入到一个配置文件中,然后导入即可。但是在jupyternotebook中却不行,需要使用函数实现原创 2023-12-02 01:23:00 · 356 阅读 · 0 评论 -
在jupyter中怎么配置参数args,运行.py中的args
在.py文件中配置的args,怎么在jupyternotebook中使用原创 2023-12-02 00:43:18 · 668 阅读 · 0 评论 -
如何查看h5py文件的数据
查看h5py文件的数据原创 2023-12-01 23:10:02 · 571 阅读 · 1 评论 -
怎么查看自己修改的模型是否正确(resnet50为例)
修改模型并检查模型是否可用原创 2023-12-01 18:55:06 · 399 阅读 · 1 评论