如何添加比例参数

时间:2018-03-16 17:37:48

标签: python caffe

我有以下想要添加的caffe图层:

package google.datastore.admin.v1;

我需要用Python创建它。我该怎么做?

layer {
  name: "s"
  type: "Scale"
  bottom: "o"
  top: "o"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 1
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}

我试试这个并且它会出错caffeNet.tops[gScaleName] = L.Scale(caffeNet.tops[gConvName], param=[dict(lr_mult=0, decay_mult=0), dict(lr_mult=1, decay_mult=0)], scale_param=[dict(bias_term=True), dict(bias_filler=dict(value=0)), dict(filler=dict(value=0))] ) 。我该如何添加它?

1 个答案:

答案 0 :(得分:0)

试试这个:

caffeNet.tops[gScaleName] = L.Scale(caffeNet.tops[gConvName],
                                    param=[{'lr_mut': 0, 'decay_mult': 0},
                                           {'lr_mult': 1, 'decay_mult': 0}],
                                    scale_param={'filler': {'value': 1},
                                                 'bias_term': True,
                                                 'bias_filler': {'value': 1})

请注意,scale_paramdict而不是list的{​​{1}}。 如果您仔细查看caffe.proto,我会注意到dictscale_param时:

optional

意味着每个optional ScaleParameter scale_param = 142; scale_param最多只能包含一个值。在layer时,它被定义为param

repeated

意味着每层中可以有repeated ParamSpec param = 6; 的数组/列表。

顺便说一句,
您定义param图层的方式是将比例修正为1并将学习率设置为零,这意味着您只能了解此图层中的偏差。
为什么不使用"Bias"图层并跳过冗余比例?