我正在查看一些Caffe网络构建代码(在BerkeleyVision pascalcontext-fcn8s net.py文件中),我发现这一行:
L.Deconvolution(n.score_fr,
convolution_param=dict(num_output=60, kernel_size=4, stride=2,
bias_term=False),
param=[dict(lr_mult=0)])
我想知道lr_mult = 0
这个词的作用。在查看文档后我的第一个猜测是它应该阻止对内核权重的任何更新,但这看起来很奇怪,因为我假设默认初始化是随机的。这是做什么的?是否有一些其他代码或参数文件正在初始化内核?
答案 0 :(得分:2)
lr_mult=0
会冻结图层的权重。权重将保持固定,并且在整个培训期间不会从其初始值发生变化。 surgery.interp
的来电,此功能会在训练开始前设置升级图层的初始权重。由于lr_mult=0
,权重保持固定为这些值。