Home Articles

Pytorch负载模型

Asked
Viewed 379 times
1

几天前我用过tensorflow . 要使用固定权重构建转换层很容易,只需将权重内核传递给 conv2d() 即可 . 并且可以方便地加载预训练模型,例如 VGG19 . 但是我发现使用pytorch不会那样,因为 conv2d() 不接受显式内核而是接受内核大小 . 所以我想知道是否有可能通过简单地将它传递给像 conv2d() 这样的方法来重用_1844793中的权重 . 任何回复将不胜感激 .

1 Answer

  • 2

    我可以看到你有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,其中包含parameters()函数,该函数返回与网络关联的所有权重 .

    设置特定图层的权重 .

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

    您可以查看我的代码here以了解有关如何使用经过培训的模型的更多信息 .

Related