了解网络手术

2024-05-06 16:01:43 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是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)

Tags: the示例netprparamsfullcaffereference
1条回答
网友
1楼 · 发布于 2024-05-06 16:01:43

您正在努力解决的问题:

conv_params = {pr: (net_full_conv.params[pr][0].data, net_full_conv.params[pr][1].data) for pr in params_full_conv}

使用键'fc6-conv''fc7-conv'和{}定义字典conv_params
使用for语句(... for pr in ...)构造字典称为“字典理解”,您可以找到有关此构造here的更多信息。在

相关问题 更多 >