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 }
  • 相关阅读:
    STM32 HAL库学习笔记
    嵌入式Linux学习笔记
    AVR_Interrupt
    shutdown命令用法
    ULINK2 USB电脑无法识别(连接电脑后,设备管理器显示未知设备)
    MDK中编译程序后Program Size详解
    Keil(MDK-ARM)系列教程(三)_工程目标选项配置(Ⅰ)
    第48章 MDK的编译过程及文件类型全解
    Do not access Object.prototype method ‘hasOwnProperty’ from target object no-prototype-builtins
    让vscode按照eslint进行格式化
  • 原文地址:https://www.cnblogs.com/LaplaceAkuir/p/6252864.html
Copyright © 2011-2022 走看看