【Caffe笔记】一.Caffe模型解释

     前言:

        此系列文章是作者看CaffeCN官方教程中译本过程中做下的笔记,方便自己以后翻阅及有需要的人翻阅。

        官方文档中译本下载地址:http://caffecn.cn/?/page/tutorial


    Caffe使用blobs结构来存储,交换,处理网络中正向和反向迭代的数据(data)和导数信息(diff)。blob是Caffe中的标准数组结构。Layer是Caffe模型和计算的基本单元。Net是一系列layers和其连接的集合。Sloveing单独配置,用以解耦模型的建立与优化的过程。


1.blobs

    blob是Caffe中处理和传递实际数据的数据封装包。从数学意义上讲,blob是按C风格连续存储的N维数组。

    对于批量图像数据来说,blob常规的数据维度是图像数量N*通道数K*图像高度H*图像宽度W,以行为主进行存储,以致于最右面的维度更新最快。

    Number(N)是每个批次处理的数据量。Channel(K)是特征维度,对于RGB图像来说,K=3。


2.Layer

    Layer是Caffe模型的本质内容和执行计算的基本单元,其可进行很多运算,如convolve,pool,inner product,rectified-linear,sigmoid,元素级的数据交换,normalize,load data,softmax,hinge等。可在Caffe的Layer catalogue中查看所有操作,其囊括了绝大部分目前最前沿的深度学习任务所需的层类型。

    一个layer通过bottom接受数据,通过top输出数据。

    

    每一个layer都定义了三种重要的运算,setup(初始化),forward(前向传播),backward(反向传播)。

        setup:模型初始化时充值layers及其相互间的连接。

        forward:从bottom层接受数据,进行计算后输送到top层。

        backward:对于给定的top层输出的梯度,计算其相对于输入的梯度,并传递到bottom层。


3.Net

    Net通过合成各层的输出来计算这个函数,并通过合成各层的反向传播过程来计算来自损失函数的梯度。

    准确地说,Net是由一系列层组成的有向无环(DAG)计算图。典型的Net由data layer开始,终止于loss layer。

    Net使用的是一种文本建模语言来定义的(protocol buffer),学习好的模型会被序列化地存储在二进制文件protocol buffer.caffemodel中。

    简单的Net定义如下:

name: "LogReg"
layer {
    name: "mnist"
    type: "Data"
    top: "data"
    top: "label"
    data_param {
        source: "input_leveldb"
        batch_size: 64
    }
}
layer {
    name: "ip"
    type: "InnerProduct"
    bottom: "data"
    top: "ip"
    inner_product_param {
        num_output: 2
    }
}
layer {
    name: "loss"
    type: "SoftmaxWithLoss"
    bottom: "ip"
    bottom: "label"
    top: "loss"
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值