小土堆-pytorch-神经网络-现有网络模型的使用和修改12_基于VGG模型_笔记
现在我们用vgg模型解决cfar10中10个物体的分类问题,但是vgg中训练好的是解决1000个物体的分类,这时候我们需要自行添加一层,完成inputs=1000,outputs=10。从这里我们可以看出add_linear被添加到了最后面,如果想要添加到某个层中。假如我们不想添加层,而是要修改层.下面我们以vgg16_false为例子。
·
torchvision中的VGG(分类模型)
查看我们导入的模块
import torchvision
from torch import nn
vgg16_false=torchvision.models.vgg16(weights=None) #加载模块但是,参数都是默认参数
vgg16_true=torchvision.models.vgg16(weights="IMAGENET1K_V1") #加载模块 v1版本的参数导入进去
print(vgg16_true) # 查看当前模块
运行结果截图:
现在我们用vgg模型解决cfar10中10个物体的分类问题,但是vgg中训练好的是解决1000个物体的分类,这时候我们需要自行添加一层,完成inputs=1000,outputs=10
import torchvision
from torch import nn
vgg16_false=torchvision.models.vgg16(weights=None) #加载模块但是,参数都是默认参数
vgg16_true=torchvision.models.vgg16(weights="IMAGENET1K_V1") #加载模块 v1版本的参数导入进去
vgg16_true.add_module('add_linear',nn.Linear(1000,10))
运行结果截图:
从这里我们可以看出add_linear被添加到了最后面,如果想要添加到某个层中
import torchvision
from torch import nn
vgg16_false=torchvision.models.vgg16(weights=None) #加载模块但是,参数都是默认参数
vgg16_true=torchvision.models.vgg16(weights="IMAGENET1K_V1") #加载模块 v1版本的参数导入进去
vgg16_true.classifier.add_module('add_linear',nn.Linear(1000,10))
print(vgg16_true)
运行结果截图:
假如我们不想添加层,而是要修改层.下面我们以vgg16_false为例子
import torchvision
from torch import nn
vgg16_false=torchvision.models.vgg16(weights=None) #加载模块但是,参数都是默认参数
vgg16_false.classifier[6]=nn.Linear(4096,10)
print(vgg16_false)
运行结果截图:
更多推荐
所有评论(0)