【发布时间】:2019-04-12 03:32:22
【问题描述】:
caffe模型的BathNorm和Scale权重可以从pycaffe中读取,分别是BatchNorm中的三个权重和Scale中的两个权重。我尝试使用如下代码将这些权重复制到 pytorch BatchNorm:
if 'conv3_final_bn' == name:
assert len(blobs) == 3, '{} layer blob count: {}'.format(name, len(blobs))
torch_mod['conv3_final_bn.running_mean'] = blobs[0].data
torch_mod['conv3_final_bn.running_var'] = blobs[1].data
elif 'conv3_final_scale' == name:
assert len(blobs) == 2, '{} layer blob count: {}'.format(name, len(blobs))
torch_mod['conv3_final_bn.weight'] = blobs[0].data
torch_mod['conv3_final_bn.bias'] = blobs[1].data
这两个 BatchNorm 的行为不同。我也试过设置conv3_final_bn.weight=1和conv3_final_bn.bias=0来验证caffe的BN层,结果也不匹配。
匹配错误应该如何处理?
【问题讨论】: