深度学习——caffe安装与代码阅读第一步

来源:互联网 发布:人工智能伏羲觉醒2 编辑:程序博客网 时间:2024/05/16 19:29
按照《深度学习——21天实战caffe》内容编写

使用前,一些书中未提到的错误。
1、安装hdf5后依然报错
安装的时候按照P28的部分在ubuntu系统上进行安装,但是总是报hdf5的错误,及时已经安装了hdf5,最终发现需要修改config文件才可以找到hdf5的相关源代码;具体的详细更改和安装:http://www.linuxidc.com/Linux/2016-09/135034.htm,按照文中内容更改就可以了。
2、报错
======》
AR -o .build_release/lib/libcaffe.a 
LD -o .build_release/lib/libcaffe.so.1.0.0
《======
http://www.tuxi.com.cn/viewcsdn-39205-392051023.html
3、训练时出现GPU使用错误
http://www.caffecn.cn/?/question/1199


源代码阅读,这里都是在windows环境下阅读代码并解释内容,运行测试用例都是在ubuntu环境下运行。两者相互独立。
可以从github上下载caffe的源代码,代码结构如下图:

其中cmake是make编译的文件夹;data是测试用的数据,手写数字mnist数据就存储在这个文件夹下面;docker用于迁移,容器;docs是文档说明;examples为测试例子;include包含头文件;matlab为用于matlab的接口文件;models为caffe内部使用的模型类;python为用于python的接口类;scripts为脚本文件类;src就是源文件代码啦;tools为工具类;
如果要阅读源代码的的话主要是阅读以下三个文件夹:include、src、tools。
对于阅读代码的技巧,在书中提到了可以从src/caffe/proto/caffe.proto开始,可以了解基本数据结构和内存对象等等。了解数据结构的变化:如何从源文件读取到内存对象,以及如何将内存对象保存为磁盘文件,这些操作都是基于protobuffer的。
先从include文件入手,阅读头文件,了解大概后再去看对应的cpp文件。最后可以看看tools中的内容。整体而言caffe的组织结构很明确,虽然文件数量多,但是结构层次清晰,可以很快的找到对应的文件。
在舒总的第七天的内容中,主要讲解了激活函数的代码实现,自己阅读后感觉代码很清晰,并且内容简洁。书中一共讲了三种激活函数:sigmoid、tanh、ReLU。其中主要是用到了ReLU函数。

代码的实现也是相当的简洁:

可以看到对于函数的计算,只需要一层for循环就可以搞定啦!决定和sumo一起来搞。从源代码读起来!