U-net代码实现CPU版本——深度学习初学可在自己笔记本上尝试

U-net

研一上课程比较多,这次寒假在家时间有点长,尝试复现一些代码,也为大家提供一些参考

意义:

利用少量数据集进行训练测试,为医学图像分割做出很大贡献

代码地址:U-net-without-GPU

代码源自这个博客,进行了少量修改(侵删) U-net在自己电脑上运行踩坑

  1. 配置及其环境

我是直接用的一下软件版本号,参考着用能有效避免走弯路

机器配置:八代i5 + 东芝固态硬盘 + 8G内存

环境:windows10 + python3.6 + tensorflow2.0

软件:anaconda3 5.1.0 64-bit + pycharm2019.2.4

安装参考这个链接,版本号更新一下就行Anaconda详细安装及使用教程(带图文)

  1. 介绍

该结构包含一个用于捕捉语义的收缩路径和一个用于精准定位的对称扩展路径。该网络只使用少量数据,就可以训练出一个端对端(图像入,图像出)网络。

优点:

1、网络具有局部感知能力

2、用于训练的样本数量远大于训练图像的数量

缺点:

1、对于每个patch(以像素为中心的区域)都要运行一次检测,所以速度很慢,并且由于patch的重叠,所以有很多运行都是多余的

2、必须在局部标记准确性和语义的确定之间进行权衡,大的patch需要更多的池化层,但是池化层降低了局部标记的准确性,而小的patch无法获得充分的语义信息

  1. 结构
    U-net代码实现CPU版本——深度学习初学可在自己笔记本上尝试_第1张图片
  2. 代码注释
    U-net代码实现CPU版本——深度学习初学可在自己笔记本上尝试_第2张图片
    U-net代码实现CPU版本——深度学习初学可在自己笔记本上尝试_第3张图片
  3. 感想

通过实际的代码,感受到了上采样、上池化、反池化、反卷积这些向上的操作实际区别都是在最大程度依托框架本身特性还原像素周围特
性,而下采样、最大池化、平均池化则是在不同阶段提取“主要特征”。
下次更新U-net将尝试将数据集换成实验室数据,并对算法参数进行适当改进。

你可能感兴趣的:(U-net代码实现CPU版本——深度学习初学可在自己笔记本上尝试)