下面是迁移学习的相关内容
# 以下是迁移学习的相关内容
# 以VGG16来进行示范
import torch
import torchvision
import winnt
from torch import nn
VGG16 = torchvision.models.vgg16(pretrained=True)
# pretrained 是指是否调用已经预训练好的参数模型,即里面的权重是否调用已经训练好的
print(VGG16)
# 查看网络架构
tran_dataset = torchvision.datasets.CIFAR10("./data",train=True,transform=torchvision.transforms.ToTensor(),download=True)
# 下面是对一个迁移的网络进行更改的操作
VGG16.add_module('add_Linear',nn.Linear(1000,10))
print(VGG16)
# 这是在整个网络的最后加上一个线性层,原来他预训练好的使用数据集是1000哥类别,
# 这里想改成10个类别,因此才这样改让1*1*1000变成1*1*10
# 但是这个是加载整个网络的后面,如果相加在某个板块的里面的最后一个,就在add前面加上那个板块
# 比如说VGG16.classifier.add_module('add_Linear',nn.Linear(1000,10))
# 下面是修改某个板块
# VGG16.classifier[6] = nn.Linear(4096,10)
# 首先我们是想改classifier中的第7句话,在前面输出网络结构就能看懂这个6是指
# nn.Linear 的标号,然后直接进行修改就行,注意是是[]而不是()。
下面是网络模型的保存和读取的相关内容