小土堆-pytorch-神经网络-现有网络模型的使用和修改12_基于VGG模型_笔记

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)                                            # 查看当前模块

运行结果截图:
小土堆-pytorch-神经网络-现有网络模型的使用和修改12_基于VGG模型_笔记_第1张图片

现在我们用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))

运行结果截图:
小土堆-pytorch-神经网络-现有网络模型的使用和修改12_基于VGG模型_笔记_第2张图片
从这里我们可以看出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)

运行结果截图:
小土堆-pytorch-神经网络-现有网络模型的使用和修改12_基于VGG模型_笔记_第3张图片
假如我们不想添加层,而是要修改层.下面我们以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)

运行结果截图:
小土堆-pytorch-神经网络-现有网络模型的使用和修改12_基于VGG模型_笔记_第4张图片

你可能感兴趣的:(小土堆-pytorch-笔记,pytorch,神经网络,笔记,深度学习,人工智能,python)