深度学习pytorch:VGG网络模型的使用、修改及保存、添加线性层、修改网络输出

# 现有网络模型的使用及修改
import torchvision
from torch import nn
# 加载预训练网络模型
vgg16_true = torchvision.models.vgg16(pretrained=True)   # 下载网络模型

vgg16_false = torchvision.models.vgg16(pretrained=False)   # 只是加载网络模型
print((vgg16_true))

train_data = torchvision.datasets.CIFAR10(r"C:\Users\123\Desktop\python4.7\test03\data", train=False, transform=torchvision.transforms.ToTensor(),
                                       download=True)

# 在最后一层添加线性层,使输出的分类类别为10
vgg16_true.add_module("add_linear", nn.Linear(1000, 10))   # 输入1000,输出10
#  (add_linear): Linear(in_features=1000, out_features=10, bias=True)
# 在classifier最后一层加线性层
vgg16_true.classifier.add_module("add_linear", nn.Linear(1000, 10))
print(vgg16_true)
print(vgg16_false)
# 修改网络参数
vgg16_false.classifier[6] = nn.Linear(4096, 10)
print(vgg16_false)
# 模型的保存
import torch
import torchvision

vgg16 = torchvision.models.vgg16(pretrained=False)
# 两种方式保存模型
# 保存方法一(模型和参数一起保存)
torch.save(vgg16, "vgg16_method1.pth")

# 保存方法二(仅保存参数,官方推荐)
torch.save(vgg16.state_dict(), "vgg16_method2.pth")   # 将模型状态(参数)保存为字典形式



# 所保存模型的调用
import torch
# 方式一加载模型
import torchvision

model1 = torch.load("vgg16_method1.pth")
print(model1)

# 方式二加载模型
model2 = torch.load("vgg16_method2.pth")
print(model2)

# 若要使用方式二加载模型参数和结构
vgg16 = torchvision.models.vgg16(pretrained=False)
vgg16.load_state_dict((torch.load("vgg16_method2.pth")))
print(vgg16)

#

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
VGG19是一种非常流行的深度卷积神经网络架构,用于图像分类任务。在PyTorch中,可以通过迁移学习来利用已经预训练好的VGG19模型进行自己的任务。 迁移学习是指使用已经在大规模的任务上训练好的模型,在新的任务上进行微调或者作为特征提取器来使用。对于VGG19模型,我们通常可以利用ImageNet数据集上预训练好的权重,这些权重已经能够很好地表示图像的特征。 在PyTorch中,可以使用torchvision库来加载VGG19模型的预训练权重。首先,我们需要导入必要的库: ```python import torch import torchvision.models as models ``` 然后,我们可以通过调用`models.vgg19`函数来加载VGG19模型的预训练权重: ```python model = models.vgg19(pretrained=True) ``` 此时,`model`就是一个已经加载了预训练权重的VGG19模型。我们可以通过修改输出的结构,来适应自己的任务。例如,对于图像分类任务,我们可以将VGG19模型的最后一线性替换成一个新的全连接输出我们想要的类别数。 ```python model.classifier[6] = torch.nn.Linear(4096, num_classes) ``` 这样,我们就可以利用VGG19模型进行新的图像分类任务了。在训练过程中,我们可以冻结已经加载的预训练权重,只训练新添加,或者对整个网络进行微调。 总而言之,通过使用PyTorch的torchvision库,我们可以很方便地进行VGG19模型迁移学习。只需要加载预训练权重,根据自己的任务修改模型结构,并进行训练即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值