近来整理资料,发现刚接触caffe时写的一些笔记,现将笔记整理出来,以便以后查看。
caffe是一个开源的深度学习框架,可读性高,它允许利用自己的CPU或者GPU训练网络,不需要自己编写程序,只需要通过配置文件来指定网络。
caffe实现了前馈卷积神经网络架构(CNN),在一个n层的神经网络中,通过调整其中的参数,使任何一层的输入和输出都是相等的,任何一层都是输入的另一种表示。深度学习是一种特征学习方法,把原始数据通过一些简单的非线性的模型转化为更高层次、更抽象的表达,高层次的表达能强化输入数据的区分能力,同事削弱不相关因素。
caffe都是一些模块组成,模块包括4个部分:Blob(caffe的数据表示,在layer上流动),layer(不仅可以表示神经网络层,也可以表示输入输出层),Net(神经网络结构,将layer层叠关联起来),slover(协调神经网络的训练和测试,定义一些参数)。
Blob 四维连续数组,通常表示为(n, k, w, h)是基础的数据结构,可表示输入输出数据,也可表示参数数据
Layer 网络基本单元,每一层类型定义了3种计算: 1. 初始化网络参数。2. 前向传播的实现。 3. 后向传播。
Net 无回路有向图,有一个初始化函数,主要有两个作用: 1. 创建blobs和layers。2. 调用layers的setup函数来初始化layers。还有两个函数 Forward和Backward,分别调用layers的 forward 和 backward