几天前我用过tensorflow . 要使用固定权重构建转换层很容易,只需将权重内核传递给 conv2d() 即可 . 并且可以方便地加载预训练模型,例如 VGG19 . 但是我发现使用pytorch不会那样,因为 conv2d() 不接受显式内核而是接受内核大小 . 所以我想知道是否有可能通过简单地将它传递给像 conv2d() 这样的方法来重用_1844793中的权重 . 任何回复将不胜感激 .
conv2d()
VGG19
我可以看到你有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以了解有关如何使用经过培训的模型的更多信息 .
1 回答
我可以看到你有2个问题 . 如何在pyTorch中使用像VGG这样的预训练模型,以及如何设置像nn.conv2d()这样的特定图层的权重 .
要创建预训练的Vgg模型,您可以使用以下代码 .
在PyTorch中,您实现神经网络子类化nn.Module,其中包含parameters()函数,该函数返回与网络关联的所有权重 .
设置特定图层的权重 .
您可以查看我的代码here以了解有关如何使用经过培训的模型的更多信息 .