如何添加比例参数
How to Add Scale Parameter
我有以下要添加的咖啡层:
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
}
}
}
我需要用 Python 创建它。我该怎么做?
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))]
)
我试了一下,它给出了一个错误 ScaleParameter has no attribute add
。如何添加?
试试这个:
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_param
是 dict
而不是 dict
的 list
。
如果仔细查看 caffe.proto
,您会注意到 scale_param
是 optional
:
optional ScaleParameter scale_param = 142;
意味着每个 layer
中最多可以有一个 scale_param
的值。当谈到 param
时,它被定义为 repeated
:
repeated ParamSpec param = 6;
意味着每层可以有 array/list 个 param
。
顺便说一句,
您定义 Scale
层的方式将比例固定为 1 并将学习率设置为零,这意味着您只学习该层中的偏差。
为什么不使用 "Bias"
层并跳过冗余比例?
我有以下要添加的咖啡层:
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
}
}
}
我需要用 Python 创建它。我该怎么做?
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))]
)
我试了一下,它给出了一个错误 ScaleParameter has no attribute add
。如何添加?
试试这个:
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_param
是 dict
而不是 dict
的 list
。
如果仔细查看 caffe.proto
,您会注意到 scale_param
是 optional
:
optional ScaleParameter scale_param = 142;
意味着每个 layer
中最多可以有一个 scale_param
的值。当谈到 param
时,它被定义为 repeated
:
repeated ParamSpec param = 6;
意味着每层可以有 array/list 个 param
。
顺便说一句,
您定义 Scale
层的方式将比例固定为 1 并将学习率设置为零,这意味着您只学习该层中的偏差。
为什么不使用 "Bias"
层并跳过冗余比例?