折腾了很久,在研究了传统机器学习理论与应用后,着手进入到深度学习领域。虽然说,深度学习还是来源于人工智能的一个学派:连接学派,而且很高大尚的是,名字起的好,居然叫深度学习,和一般的学习不一样。但是这个名字也确实接地气,的确进行了深度的学习,对客观的事物进行了深度的表征,这样就使得传统的模型也可以发挥更好的价值。关于深度学习的部分,还有很多想说的,但是工欲善其事,必先利其器,今天首先来说,如何搭建深度学习框架caffe,其实官网和其他博客都有介绍,而且都贴了图,都很详细,但是呢,总感觉,每个人面对的问题不一样,角度也不一样,往往在解决自己的问题是,要不断的查资料,看文档,google提问,这样一来,折腾了很久。
对于我来说,感觉在哪个平台写代码,调程序,都差不多,关键是思想要了解,方法要掌握。但是,在搭建环境的时候,当然是Linux下方便,许多包,一键安装,多方便,照着教程走一遍,就差不多了,但是如果当前系统是windows,那么只能装个虚拟机,然后虚拟机装个Linux,然后接着刚才说的,把系统里面的环境配置好,然后装了matlab,python,开始跑代码,调代码。但是总觉的怪怪的,于是在把Linux上的caffe,tensorflow编译了一遍,跑了跑,决定还是在windows再编一遍。其实,对于python,用mxne或者tensorflow就可以了,但是对于matlab的话,想想,还是用caffe。这样,最终的目标,就定位在windows系统下,编译无GPU(其实也有GPU,也安装了CuDNN toolkits,但是GPU不支持计算,只是能安装,具体能不能跑,还的编译一下GPU版本的caffe来试一试)。
这里具体介绍一下,我怎么做得,虽然都是用文字写的,但是里面大概记录关键点,我遇到的问题,以及推荐资料:
尝试了很多,https://github.com/BVLC/caffe 官网提供了完整版本,后来有支持了windows版本,https://github.com/BVLC/caffe/tree/windows, 进入这个界面,发现官方很人性化,提供了编译好的版本,而且种类充足,但是大多只是python,但是没有matlab,于是还是决定自己编译一下。
照着官网上走了一下,其实我是看的视频:https://www.youtube.com/watch?v=AN2uXGRvw9E, 需要翻墙,其实发现,有些时候,当看文档,觉得解决不了你的问题时,可以看看视频,说不定会有效果。看了半天,发现,视频里面caffe的版本比现在老,需要手动改好几个地方,然后比对我下载下来的版本,发现,改的地方非常少,就是需要改一下.../caffe/scripts/build_win.cmd,配置一下python的版本,路径,设置一下是否是否只是用CPU,然后是否编译matlab,具体怎么设置,打开文件,照着视频里说的,做一下就可以了。然后视频里,讲了更改其他地方,后来发现不需要,因为应该在caffe后面的版本改过了。
改完了,就在caffe目录下,运行scripts\build_win.cmd,这个可以自动下载编译caffe所需要的所有第三方库,十分的方便,但是有一个问题,就是会把第三方依赖库,放到C盘的用户目录下:C:\Users\Username\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries,这样,这个build_win.cmd不仅下载依赖库,还帮你编译caffe,完全自动化。这样,当结束时,一定要记住,将上面目录下的libraries这个目录,全部拷贝到caffe\libraries下,这样才可以。
然后就是,进入到matlab中,然后设置一下依赖库的路径:执行下面两行代码在matlab中,
p = getenv('PATH')
setenv('PATH', ['E:\cv_lab\caffe\build\libraries\bin;E:\cv_lab\caffe\build\libraries\lib;E:\cv_lab\caffe\build\libraries\x64\vc14\bin;', p])
然后就可以运行demo下的小猫分类程序。
整个过程其实很简单,但是有些地方配置还是需要小心,一个方法就是多配置几遍,自然知道哪些需要配置,哪些不需要配置。
当你发现看不懂我上面说的时,那说明你没好好看,其实十分简单,看看视频,把我说的几个关键点搞定,整个windows下caffe matlab的编译就搞定了。
在额外说一句,其实,如果真的要学习深度学习,还是踏踏实实地,不要只知道装各种包。
我接下来,会持续分享关于机器学习和深度学习,自己遇到的问题,已经如何提升自己在这方面的能力,尽可能的说一些有用的。但有些不严谨的,还需要多多包涵。
在机器学习道路上,还很漫长,路漫漫其修远兮,吾将上下而求索。