zoukankan      html  css  js  c++  java
  • caffe网络模型各层详解(一)

    一:数据层及参数

    caffe层次有许多类型,比如Data,Covolution,Pooling,层次之间的数据流动是以blobs的方式进行

    首先,我们介绍数据层:

    数据层是每个模型的最底层,是模型的入口,通常数据的 预处理(如去均值,放大缩小,裁剪和镜像等)也在这一层设置参数实现。

    数据来源一般来自高效的数据库(levelDb和LMDB),也可以来自内存,如果注重效率,可以来自磁盘的hdf5文件和图片格式文件。

    层次实例如下:

     1 layer{
     2     name:"cifar"
     3     type: "Data"
     4     top: "data"
     5     top: "label"
     6     include{
     7         phase:TRAIN
     8     }
     9     transform_param{
    10         mean_file: "examples/cifar10/mean.binaryproto"
    11     }
    12     data_param{
    13         source: "examples/cifar10/cifar10_train_lmdb"
    14         batch_size: 100
    15         backend:LMDB
    16     }
    17 }

     层次参数解释:

    name : 表示该层的名称,可以随意取

    type : 层类型,如果是Data,表示数据来源于LevelDB或者LMDB。一般采用这两种数据

    top/bottom: 每一层用bottom来表述输入数据,top表述输出数据。如果只有top没有bottom,则此层只有输出没有输入,反之亦然。如果有多个top或bottom,表述有多个blobs数据的输入和输出。

    data/label:在数据层中,至少有一个命名为data的top。如果两个top,一般命名为label,(data,label)配对是分类模型所必须的。

    include:一般训练和测试的测试的时候,模型的层不一样。include用以区分是train还是test,如果没有include表述该层既做训练也做测试。

    Transformations:数据的预处理,可以对数据进行变换,scale为0.00390625,实际上是1/255,既数据的归一化。

    1 transform_param{
    2     scale = 0.00390625
    3     mane_file_size: "examples/cifar10/mean.binaryproto"
    4     //用一个配置文件来进行去均值操作
    5     mirror:1 //1表示开启镜像,0表示关闭,也可以用true和false表示
    6     //剪裁一个277*277的图块,在训练阶段随机裁剪,在测试阶段从中间剪裁
    7     crop_size: 227                
    8 }
  • 相关阅读:
    FMDB增删查改
    https相关内容
    支付宝、微信支付参考博客
    下标脚本(Swift)
    函数(swift)
    控制流(swift)
    UIView Methods
    oc js 交互
    我和Lua并非一见钟情,我们期待着日久生情(相遇篇)
    与Python Falling In Love_Python跨台阶(面向对象)
  • 原文地址:https://www.cnblogs.com/LaplaceAkuir/p/6252864.html
Copyright © 2011-2022 走看看