IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> pytorch导入预训练参数 -> 正文阅读

[人工智能]pytorch导入预训练参数

导入预训练参数

在训练模型的过程中,常需要用到预训练的技巧,即导入在另一个数据集上训练好的参数作为模型参数的初始化,以加快现有模型训练的收敛速度。

1.导入pytorch库中的预训练模型

这些模型属于pytorch内置的模型——Alexnet、VGG、Resnet、DenseNet等,有一个参数pretrained用来控制是否导入预训练参数(这些预训练参数是在ImageNet数据集上训练得到的),代码示例:

// An highlighted block
import torchvision.models as models

model = models.alexnet(pretrained=True)
model = models.vgg19(pretrained=True)
model = models.resnet18(pretrained=True)
model = models.googlenet(pretrained=True)
model = models.densenet121(pretrained=True)
model = models.inception_v3(pretrained=True)

2.有参数文件xxx.pth的情况下,导入参数

其中’./xxx.pth’是文件路径

import torch
import torchvision.models as models

model = MyModle()
model.load_state_dict(torch.load('./xxx.pth'))

3.导入部分参数

这种情况下就是指,模型只需要导入部分预训练参数。比如说,我们的模型(Mymodel)有部分层和vgg19是一样的,然后只想导入这几层的预训练参数。在pytorch中每层模型的参数是以{key:value}的字典形式存储的。key指网络层的名称,value指层的参数。

// An highlighted block
import torchvision.models as models

//自己的模型的初始化并提取网络参数
mymodel = MyModel() 
mymodel_dict = mymodel.state_dict()

//得到vgg19的预训练参数
vgg19 = models.vgg19(pretrained=True)
vgg19_dict = vgg19.state_dict()

//保留vgg19参数中,key(层的名称)存在于mymodel的键值对
state_dict = {k: v for k, v in vgg19_dict.items() if k in mymodel_dict.keys()}

//更新mymodel的参数
mymodel_dict.update(state_dict)

//导入更新后的参数
mymodel.load_state_dict(mymodel_dict)

要注意的点就是,Mymodel中的网络层的名称必须要和vgg19对应层的名称一致,才能导入,不然就会引发keys miss等的错误。

打印一个模型结构的方法:

直接print()。

import torchvision.models as models

model = models.vgg19(pretrained=True)
print(model)

在这里插入图片描述

安装torchsummary的包,更为直观,根据输入图像的大小会输出每层的输出大小,以及参数量等。

import torchvision.models as models
from torchsummary import summary

vgg = models.vgg19().cuda()
summary(vgg, (3, 224, 224))

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-03 17:22:11  更:2021-08-03 17:22:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 11:42:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码