• caffe模型参数解释


    作者:wjmishuai

    出处: http://blog.csdn.net/wjmishuai/article/details/50890214

      1. 原始数据是28*28  
      2. 1:数据层:  
      3. layer {  
      4.   name: "mnist"//数据层的名字是mnist  
      5.   type: "Data"//这个层的类型是data  
      6.   top: "data"//产生两个blob,一个是data blob  
      7.   top: "label"//一个是lable blob  
      8.   include {  
      9.     phase: TRAIN  
      10.   }  
      11.   transform_param {  
      12.     scale: 0.00390625//像素归一化  
      13.   }  
      14.   data_param {  
      15.     source: "examples/mnist/mnist_train_lmdb"  
      16.     batch_size: 64  
      17.     backend: LMDB  
      18.   }  
      19. }  
      20. 2:卷积层  
      21. layer {  
      22.   name: "conv1"  
      23.   type: "Convolution"  
      24.   bottom: "data"//获取上一层的data blob  
      25.   top: "conv1"//产生conv1层  
      26.   param {  
      27.     lr_mult: 1//学习率。表示 weight的学习率和slover.pro中的学习率是一致的。  
      28.   }  
      29.   param {  
      30.     lr_mult: 2//表示 bias的学习率是slover.pro中的学习率的2倍。  这样设置会导致更快的收敛  
      31.   }  
      32.   convolution_param {  
      33.     num_output: 20//cov1层将产生输出20个通道  
      34.     kernel_size: 5//卷积核大小是5*5  
      35.     stride: 1//步长是1  
      36.     weight_filler {//权重填充器,使用xavier算法填充weight。根据输入和输出神经元的数量自动确定初始化的规模。  
      37.       type: "xavier"  
      38.     }  
      39.     bias_filler {//偏置填充器,使用constant算法填充bias。是一个常数,默认是0  
      40.       type: "constant"  
      41.     }  
      42.   }  
      43. }  
      44. 3:池化层(避免数据过拟合)  
      45. layer {  
      46.   name: "pool1"  
      47.   type: "Pooling"  
      48.   bottom: "conv1"  
      49.   top: "pool1"  
      50.   pooling_param {  
      51.     pool: MAX//使用MAX进行池化  
      52.     kernel_size: 2//卷积核大小是2*2  
      53.     stride: 2//步长是2  
      54.   }  
      55. }  
      56.   
      57. 4:全连接层  
      58. layer {  
      59.   name: "ip1"  
      60.   type: "InnerProduct"  
      61.   bottom: "pool2"  
      62.   top: "ip1"  
      63.   param {  
      64.     lr_mult: 1  
      65.   }  
      66.   param {  
      67.     lr_mult: 2  
      68.   }  
      69.   inner_product_param {  
      70.     num_output: 500//产生500维的输出数据  
      71.     weight_filler {  
      72.       type: "xavier"  
      73.     }  
      74.     bias_filler {  
      75.       type: "constant"  
      76.     }  
      77.   }  
      78. }  
      79.   
      80. 5:ReLU层(紧跟在全连接层后,目的是节省内存)  
      81. layer {  
      82.   name: "relu1"  
      83.   type: "ReLU"  
      84.   bottom: "ip1"  
      85.   top: "ip1"  
      86. }  
      87.   
      88. ReLU层后紧跟一个InnerProduct层  
      89. layer {  
      90.   name: "ip2"  
      91.   type: "InnerProduct"  
      92.   bottom: "ip1"  
      93.   top: "ip2"  
      94.   param {  
      95.     lr_mult: 1  
      96.   }  
      97.   param {  
      98.     lr_mult: 2  
      99.   }  
      100.   inner_product_param {  
      101.     num_output: 10//因为有10类,所以输出10  
      102.     weight_filler {  
      103.       type: "xavier"  
      104.     }  
      105.     bias_filler {  
      106.       type: "constant"  
      107.     }  
      108.   }  
      109. }  
      110.   
      111. 6:Loss层//不产生任何输出,只是用来计算损失函数的值,用来初始化ip2的gradient   
      112. layer {  
      113.   name: "loss"  
      114.   type: "SoftmaxWithLoss"  
      115.   bottom: "ip2"//需要两个blob,一个是ip2,作为预测用  
      116.   bottom: "label"//来自数据层,作为标签  
      117.   top: "loss"  
      118. }  

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

     

    type: 层类型,如果是Data,表示数据来源于LevelDB或LMDB。根据数据的来源不同,数据层的类型也不同(后面会详细阐述)。一般在练习的时候,我们都是采 用的LevelDB或LMDB数据,因此层类型设置为Data。

     

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

     

    data 与 label: 在数据层中,至少有一个命名为data的top。如果有第二个top,一般命名为label。 这种(data,label)配对是分类模型所必需的。

     

    include: 一般训练的时候和测试的时候,模型的层是不一样的。该层(layer)是属于训练阶段的层,还是属于测试阶段的层,需要用include来指定。如果没有include参数,则表示该层既在训练模型中,又在测试模型中。

    Transformations: 数据的预处理,可以将数据变换到定义的范围内。如设置scale为0.00390625,实际上就是1/255, 即将输入数据由0-255归一化到0-1之间

  • 相关阅读:
    5.19 省选模拟赛 T1 小B的棋盘 双指针 性质
    5.15 省选模拟赛 容斥 生成函数 dp
    5.15 省选模拟赛 T1 点分治 FFT
    5.15 牛客挑战赛40 B 小V的序列 关于随机均摊分析 二进制
    luogu P4929 【模板】舞蹈链 DLX
    CF 878E Numbers on the blackboard 并查集 离线 贪心
    5.10 省选模拟赛 拍卖 博弈 dp
    5.12 省选模拟赛 T2 贪心 dp 搜索 差分
    5.10 省选模拟赛 tree 树形dp 逆元
    luogu P6088 [JSOI2015]字符串树 可持久化trie 线段树合并 树链剖分 trie树
  • 原文地址:https://www.cnblogs.com/guohaoyu110/p/7492115.html
Copyright © 2020-2023  润新知