你能从网络的前三层中复制权重吗?这不完全是微调,而是几乎在重塑

在Caffe中,我希望仅使用预训练的AlexNet架构的权重,这些权重是使用ImageNet数据集训练的,仅限于前两层,并且我想在这些层之后添加一个softmax分类器。我想知道如何从一个包含更大网络结构(真正的“深”AlexNet结构)的权重文件中提取仅这前两层的权重。


回答:

补充Shai的回答 –
如果你不需要完整的权重文件,
为了提取所需层的权重,可以使用net surgery

net = caffe.Net(prototxt, caffemodel, caffe.TRAIN)outnet = caffe.Net(predefined_prototxt_with_desired_layers_only, caffe.TRAIN)layers_to_copy = ['conv1', 'conv2', 'conv3']for layer in layers_to_copy:    for i in range(0, len(net.params[layer])): #这用于复制权重和偏置,如果存在偏置        outnet.params[layer][i].data[...]=np.copy(net.params[layer][i].data[...])outnet.save(new_caffemodel_name)

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注