Matcovnet安装回顾 ——FCN 源码实现
说说原因
目前我在使用深度学习语义分割的方法来进行SAR遥感数据的地类分类,考虑到语义分割基本思路是从FCN 'Fully Convolutional Networks for Semantic Segmentation' 的基本框架上延伸下去的,因此为了更好的理解后续的语义分割框架,我便选择了从FCN 源码开始学习。
从2019.1.15号开始便断断续续的开始了解这个网络,由于我的编程基础很弱,在一系列的深度学习框架中我最后选择了matlab中的MatCovent作为的实验平台,是因为matlab编程界面交互性强,一直是学校师生的首选工具,在理解这个代码中我可以较为清晰的进行追踪理解。
这是我的第一篇随笔,我想通过这篇文章来开始记录我的进步旅程,现在我们开始吧。
1.网络资源
从一开始,我很惧怕深度学习的相关程序,一方面是我是跨专业学生毫无编程基础面对了基于tensorflow框架下的代码,直接让我望而生畏,二是对未知的东西我心里难免恐惧。因此在一开始我很小心的我在网络中搜索大量关于Matcovnet的安装资料了(vs编译一度让我很崩溃),我筛选了对我帮助很大的这部分关于Matcovnet 相关的安装说明,希望对你们也有所帮助,现在罗列如下 :
2.安装所需环境
我的电脑配置是,matlab2018b + vs2017comunity + CUDA10.0 (cudnn 可以不用安装也可以进行加速) + matconvnet-1.0-beta25.tar.gz + GTX 1070显卡。
通过上面的参考链接我们基本会将安装进行下去,以 FCN 网络的完整运行为例,来具体实现matcovnet 的编译和最后FCN 的源码完美运行,首先我们需要在GitHub上下载 FCN官方源代码。然后解压 matconvnet-1.0-beta25.tar.gz,将matcovnet文件放入 FCN 源码文件中。通过运行FCN源码来彻底验证matcovnet 框架是否安装正确。
具体步骤可以参考以上的安装链接来一步步实现,但也不限于这些资料,这里我重点强调安装中的问题、、、
- 执行 mex-setup 命令会让你选择 c++编译器版本,选择vs2015(vs2017会报错不知道为什么)
- 先配置好 CPU版本 然后再配置 GPU版本,运行vl-testnn来检测编译是否成功,GPU的检测需要时间很长耐心等待,CUDA编译好后可以不需要编译CUDNN ,也可以进行GPU的加速运算(我在编译GPU CUDA版本时有几个多个没有通过,编译完CUDNN后未通过上升到了70多个,不知道为什么,但不影响后续的FCN程序的运行)。
- 环境配置好后,根据FCN 代码设置好 opt.结构体中的文件路径,顺便直接下载FCN需要的数据集压缩包(voc11 和 berkeley),并解压到定义的文件中,这样会跳过大段的 数据下载,解压,整理的相关程序,会省去很多麻烦。
- 重点参考P-chao 的安装说明来调顺FCN 的 fcn-train.m / fcn_test.m,两大主函数。
- 如果只是理解FCN 在matcovnet 中的实现过程,可以不用配置GPU 版本(因为在配置中出现问题后会很麻烦),但要通过matcovnet进行试验出结果的话,那就必须配置了,因为GPU的CUDA加速是 CPU运行速度的 75 倍。
- 毫不夸张的说我为了配置matcovnet gpu 版本换了电脑。github 中实现各种深度网络中python代码占了很大一部分而且语言也比较高级网络实现起来比较方便。因此如果在配置及其不顺利的情况下可以考虑别的框架进项实现。
3.待续
由于时间紧张,我暂时先写在这里,后续我会将FCN的具体安装细节以图文并茂的形式进行说明。并且会在下一篇文章中将 FCN 的代码,站在个人的理解上进行比较粗浅的解释。希望能帮助到各位刚步入学习FCN的同学,由于个人能力有限难免有所错误,欢迎各位网友进行指正。