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

在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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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