2017-09-18 76 views
0

我前几天使用了tensorflow。构建固定重量的conv层很简单,只需将权重内核传递给conv2d()即可。加载预制模型如VGG19十分方便。但是我发现它并没有像pytorch那样工作,因为conv2d()不接受明确的内核,而是接受内核大小。所以我想知道是否有任何可能性,我们可以通过简单地将它传递给conv2d()这样的方法来重用VGG19中的权重。任何答复将不胜感激。Pytorch负载模型

回答

1

我可以看到你有2个问题。如何在pyTorch中使用像VGG这样的预先训练过的模型,以及如何设置像nn.conv2d()这样的特定图层的权重。

对于创建预训练Vgg模型,您可以使用下面的代码。

from torchvision import models  
model_vgg = models.vgg16(pretrained=True) 
for param in model_vgg.parameters(): 
    param.requires_grad = False 

在PyTorch您实现神经网络的子类nn.Module其中包含返回与网络相关的所有的权重参数()函数。

设置特定图层的权重。

decoder = nn.Linear(10, 100) 
decoder.weight = #Do anything which is valid. 

您可以检查我的代码here知道更多关于如何使用训练模型。

+0

非常感谢你! –

+0

如果它对你有所帮助,你可以选择它作为答案。 –