下面是caffe的net_surgery.ipynb示例,它解释了如何修改保存的.caffemodel
的权重。但是,由于我对python还很陌生,所以我不太理解其中的一些语法。在
有人能解释一下在下面给出的代码示例中以conv_params = {pr: ...
开头的第7行是什么意思吗?(示例来自net_surgery.ipynb-步骤8)。尤其是pr:
是什么?它是(键,值)类结构中的键吗?在
# 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)
您正在努力解决的问题:
使用键}定义字典
'fc6-conv'
、'fc7-conv'
和{conv_params
。使用
for
语句(... for pr in ...
)构造字典称为“字典理解”,您可以找到有关此构造here的更多信息。在相关问题 更多 >
编程相关推荐