• 3D-SKIPDENSESEG医学图像分割


    在这里插入图片描述
    蓝色三角、黄色三角、红色三角相对应。
    得到第三个feature map,绿色反卷积会恢复到原来的尺寸
    Dense block,通道增加了
    Transition,池化
    在这里插入图片描述
    用正则表达式把里面的h5文件匹配一下吧
    os.path.join()把两个部分的路径拼一下
    root_path —data_train
    *.h5,不管名字是什么,只要后缀是h5,就把它匹配一下
    glob,遍历所有.h5文件
    得到data_train里面的八个subject
    在这里插入图片描述
    mode,数据集处理的是训练集or测试集or验证集,用一个标志位键区别一下。传进来的是train,就知道对training dataset进行一个处理
    在这里插入图片描述
    数据扩充,尽量保持原始数据
    前提是训练数据,验证集不能扩充,验证集扩充,准确率就没有意义了
    在这里插入图片描述
    有可能传进来的,是对测试集和验证集处理
    在这里插入图片描述
    知道长度了,给我一个索引,返回一个训练样本
    在这里插入图片描述
    要转成64 * 64 * 64固定大小的patch
    在这里插入图片描述
    得到这样的数据
    在这里插入图片描述

    需要64 64 64,还需要什么,还需要一个batch_size,batch_size个patch,去掉一个维度
    在这里插入图片描述
    去掉第二个维度,其余不变
    在这里插入图片描述
    为什么记录长宽高,我们要从不固定大小的脑图像中裁patch
    在这里插入图片描述
    裁的开始位置是有讲究的
    在这里插入图片描述
    T1和T2两个特征,data_x不需要去维度了
    在这里插入图片描述
    cx是C的起始位置,cy是H的起始位置,cz是W的起始位置。0,1,2维度
    在这里插入图片描述
    为什么要随机裁,不从0开始
    每一轮迭代的过程中,都希望从样本中取一个数据,每次从样本里取一个patch,如果每次从0开始取的话,就不能遍历脑图像的所有区域了。所以通过随机值的方式随机地取一个patch,如果训练轮数足够多的话,理论上是可以把闹图像的所有区域遍历到。
    在这里插入图片描述

    裁的开始位置是cx,结束位置,这个维度的
    在这里插入图片描述
    不直接传一个数字,往往我们需要64 48 32,所以体现这样写的用意了
    在这里插入图片描述
    为什么是0,限制返回的结果是一个,一条索引返回一个数据
    batch_size的维度一定要相同,
    在这里插入图片描述
    验证集取中心位置,每一个iteration都是这个位置,验证集才有价值。如果每轮patch都在变的话,验证就失去价值了
    在这里插入图片描述
    模块注册
    Sequential、ModuleList 自动注册
    add_module 手动注册
    在这里插入图片描述
    在这里插入图片描述
    调用父类的forward函数,就可以把这个流程跑一遍,是因为我们已经手动地把这些模块自动注册了
    在这里插入图片描述
    遍历每一个模块,如果是卷积操作的话,用正态分布这种初始化方式
    在这里插入图片描述
    为什么用ModuleList,它的索引是可以利用上的,第一轮循环的时候,i = 0的时候,放到upsampling list就是第一个元素,i = 1的时候,第二个元素,非常方便,通过它的索引去取,并且,取到的时候可以还原kernel_size的大小
    在这里插入图片描述
    在这里插入图片描述
    通道从2到32
    在这里插入图片描述

  • 相关阅读:
    Mybaits延迟加载实现原理
    makefile之define和eval的简单介绍
    CSS实现文字跑马灯效果
    高云FPGA系列教程(6):ARM定时器使用
    数据库事务——事务隔离级别
    windows server安装mysql后公司区域网连接
    CentOS7.9 SVN部署安装以及多目录权限配置
    go协程的栈
    WPF列表性能提高技术
    Android APK瘦身实践:二次瘦身如何再减少大小?(4M—2.9M)
  • 原文地址:https://blog.csdn.net/weixin_40222848/article/details/128060357