【问题标题】:Pytorch load modelPytorch 负载模型
【发布时间】:2017-09-18 15:37:13
【问题描述】:

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

【问题讨论】:

    标签: conv-neural-network 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 以了解有关如何使用经过训练的模型的更多信息。

    【讨论】:

    • 非常感谢!!
    • 如果对你有帮助,你可以选择它作为答案。
    猜你喜欢
    • 1970-01-01
    • 2020-05-24
    • 2021-12-15
    • 2019-09-26
    • 2019-03-24
    • 1970-01-01
    • 2021-04-05
    • 2021-09-17
    • 1970-01-01
    相关资源
    最近更新 更多