我正在查看一些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这个词是干什么的。看完文档后,我的第一个猜测是,它应该阻止内核权重的任何更新,但这似乎很奇怪,因为我假设默认的初始化是随机的。这是干什么用的?是否有其他代码或参数文件正在初始化内核?
发布于 2018-05-16 07:25:24
lr_mult=0会冻结层的重量。在整个训练过程中,权重将保持不变,不会改变其初始值。surgery.interp的调用,此函数将在培训开始之前设置升级层的初始权重。由于lr_mult=0,这些权重仍然固定在这些值上。https://stackoverflow.com/questions/50355013
复制相似问题