在caffe中理解net_surgery
Understanding net_surgery in caffe
我正在关注 caffe 的 net_surgery.ipynb 示例,它解释了如何修改已保存 .caffemodel
的权重。但是,由于我是 python 的新手,所以我无法理解某些语法。
谁能解释一下下面给出的代码示例中以 conv_params = {pr: ...
开头的第 7 行是什么意思? (示例来自 net_surgery.ipynb - 步骤 8)。特别是什么是pr:
?它是 (key,value) 类结构中的键吗?
# Load the fully convolutional network to transplant the parameters.
net_full_conv = caffe.Net('net_surgery/bvlc_caffenet_full_conv.prototxt',
'../models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel',
caffe.TEST)
params_full_conv = ['fc6-conv', 'fc7-conv', 'fc8-conv']
# conv_params = {name: (weights, biases)}
conv_params = {pr: (net_full_conv.params[pr][0].data, net_full_conv.params[pr][1].data) for pr in params_full_conv}
for conv in params_full_conv:
print '{} weights are {} dimensional and biases are {} dimensional'.format(conv, conv_params[conv][0].shape, conv_params[conv][1].shape)
您正在纠结的线路:
conv_params = {pr: (net_full_conv.params[pr][0].data, net_full_conv.params[pr][1].data) for pr in params_full_conv}
定义一个字典 conv_params
,键为 'fc6-conv'
、'fc7-conv'
和 'fc8-conv'
。
使用 for
语句 (... for pr in ...
) 构建字典称为“字典理解”,您可以找到有关此构造的更多信息 here.
我正在关注 caffe 的 net_surgery.ipynb 示例,它解释了如何修改已保存 .caffemodel
的权重。但是,由于我是 python 的新手,所以我无法理解某些语法。
谁能解释一下下面给出的代码示例中以 conv_params = {pr: ...
开头的第 7 行是什么意思? (示例来自 net_surgery.ipynb - 步骤 8)。特别是什么是pr:
?它是 (key,value) 类结构中的键吗?
# Load the fully convolutional network to transplant the parameters.
net_full_conv = caffe.Net('net_surgery/bvlc_caffenet_full_conv.prototxt',
'../models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel',
caffe.TEST)
params_full_conv = ['fc6-conv', 'fc7-conv', 'fc8-conv']
# conv_params = {name: (weights, biases)}
conv_params = {pr: (net_full_conv.params[pr][0].data, net_full_conv.params[pr][1].data) for pr in params_full_conv}
for conv in params_full_conv:
print '{} weights are {} dimensional and biases are {} dimensional'.format(conv, conv_params[conv][0].shape, conv_params[conv][1].shape)
您正在纠结的线路:
conv_params = {pr: (net_full_conv.params[pr][0].data, net_full_conv.params[pr][1].data) for pr in params_full_conv}
定义一个字典 conv_params
,键为 'fc6-conv'
、'fc7-conv'
和 'fc8-conv'
。
使用 for
语句 (... for pr in ...
) 构建字典称为“字典理解”,您可以找到有关此构造的更多信息 here.