网络结构简述--以Caffe为例

一、深度学习网络简介

       深度学习网络(Net)是一个组合模型,它是由相互连接的层(Layers)组合而成。Caffe就是一种组建深度学习网络的工具,它按照一定的策略,一层一层的搭建出自己的模型。Caffe将所有的信息数据定义为Blobs,从而进行便利的操作和通讯。Blob是Caffe框架中一种标准的数组,一种统一的内存接口,它描述了信息是如何存储的,以及如何在层之间通讯的。

       本文初步介绍Blob、Layer、Net的基本概念。在之后系列的博客中详细介绍它们具体的实现及相关参数说明。

 

二、Blob

        Blobs封装了运行时的数据信息,提供了CPU和GPU的信息同步。从数学的角度看,Blob就是一个N维数组。它是Caffe中的数据操作基本单位。对于图片数据来说,Blob可以表示为(N*C*H*W)这样的一个4D数组。其中N表示图片的数量,C表示图片的通道数,H和W分别表示图片的高度和宽度。Blob也可以表示非图片数据。

       在模型中设定的参数,也是用Blob来表示和运算的,它的维度会根据参数的类型不同而不同。比如:在一个卷积层中,输入一张3通道图片,有96个卷积核,每个核大小为11*11,因此这个Blob是 96*3*11*11。而在一个全连接层中,假设输入1024个通道图片,输出1000个数据,则Blob为1000*1024.

 

三、Layer

       层是网络模型的组成要素和计算的基本单位,层的类型比较多,如Data、Convolution、Pooling、ReLu、Softmax-loss、Accuracy等。一个层的定义大致如下图:

       从 bottom 进行数据的输入,计算后,通过 top 进行输出。图中的黄色多边形表示输入输出的数据,蓝色矩形表示层。

       每一种类型的层都定义了三种关键的计算:setup,forward 和 backward。setup :层的建立和初始化,以及在整个模型中的连接初始化;forward :从 bottom 得到输入数据,进行计算,并将计算结果送到 top,进行输出; backward :从层的输出端 top 得到数据的梯度,计算当前的梯度,并将计算结果送到 bottom,向前传递。

 

四、Net

       如同积木一般,一个Net 由多个 Layer 组合而成。现以一个简单的2层神经网络的模型(若加上 Loss 层就变成三层)为例。拓扑结构如图示:

         第一层:name 为 mnist, type为Data,没有输入(Bottom),只有两个输出(Top),一个为data,一个为 label

         第二层:name 为 ip, type 为 InnerProduct,输入数据 data ,输出数据 ip

         第三层:name 为 loss,type 为 SoftmaxWithLoss,有两个输入,一个为 ip,一个为 label,有一个输出 loss(未画出)

         则对应配置文件 prototxt :第一行模型取名为ModelName,然后是三个Layer的定义,参数都比较简单,只列出必须参数,具体参数将在后续的文章介绍。

name:"ModelName"
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、付费专栏及课程。

余额充值