pytorch:加载预训练模型(多卡加载单卡预训练模型,多GPU,单GPU)

在pytorch加载预训练模型时,可能遇到以下几种情况。

分为以下几种

  • 在pytorch加载预训练模型时,可能遇到以下几种情况。
    • 1.多卡训练模型加载单卡预训练模型
    • 2. 多卡训练模型加载多卡预训练模型
    • 3. 单卡训练模型加载单卡预训练模型
    • 4. 单卡训练模型加载多卡预训练模型
    • 5.直接删除预训练模型中不匹配的键
    • 6. 新版torch的模型加载torch<0.4 版本模型
    • 7.在加载的参数模型中增加缺失的键,然后赋予随机参数

问题分为几种情况:

1.多卡训练模型加载单卡预训练模型

if isinstance(self.netG, torch.nn.DataParallel):self.netG = self.netG.module
self.netG.load_state_dict(torch.load(path))

在这里插入图片描述
这是多卡训练的模型加载单卡训练的模型出现的问题。

2. 多卡训练模型加载多卡预训练模型

self.netG.load_state_dict(torch.load(path))

3. 单卡训练模型加载单卡预训练模型

self.netG.load_state_dict(torch.load(path))

4. 单卡训练模型加载多卡预训练模型

对预训练模型创建新的字典,去掉key值前面的’module.’

state_dict = torch.load('checkpoint.pt’)
from collections import OrderedDict
new_state_dict = OrderedDict()
for k,v in state_dict.items():name = k[7:]new_state_dict[name]  =v 
self.netG.load_state_dict(new_state_dict)

5.直接删除预训练模型中不匹配的键

 model = DPN(num_init_features=64, k_R=96, G=32, k_sec=(3,4,20,3), inc_sec=(16,32,24,128), num_classes=1,decoder=args.decoder)http = {'url': 'http://data.lip6.fr/cadene/pretrainedmodels/dpn92_extra-b040e4a9b.pth'}pretrained_dict=model_zoo.load_url(http['url'])model_dict = model.state_dict()pretrained_dict = {k: v for k, v in pretrained_dict.items() if k in model_dict}#filter out unnecessary keys model_dict.update(pretrained_dict)model.load_state_dict(model_dict)model = torch.nn.DataParallel(model).cuda()

6. 新版torch的模型加载torch<0.4 版本模型

baol

7.在加载的参数模型中增加缺失的键,然后赋予随机参数

在state_dict 参数模型中增加开头是conv1一些键

state_dict = torch.load(path, map_location=self.device)
model_dict = self.netG_A.state_dict()for k,v in model_dict.items():if k.startswith('conv11') or k.startswith('conv21') or k.startswith('conv31'):state_dict[k] = vself.netG_A.load_state_dict(state_dict)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python中 numpy转list list 转numpy

list to numpy import numpy as np a [1,2] b np.array(a)numpy to list a np.zero(1,1) a.tolist()

知识蒸馏 knowledge distill 相关论文理解

Knowledge Distil 相关文章1.FitNets : Hints For Thin Deep Nets &#xff08;ICLR2015&#xff09;2.A Gift from Knowledge Distillation&#xff1a;Fast Optimization, Network Minimization and Transfer Learning (CVPR 2017)3.Matching Guided Distillation&#xff08…

模型压缩 相关文章解读

模型压缩相关文章Learning both Weights and Connections for Efficient Neural Networks (NIPS2015)Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding&#xff08;ICLR2016&#xff09;Learning both Weights and …

Linux 杀死进程

kill -9 进程名 杀死进程

计算图片相似度的方法

文章目录1.余弦相似度计算2.哈希算法计算图片的相似度3.直方图计算图片的相似度4.SSIM&#xff08;结构相似度度量&#xff09;计算图片的相似度5.基于互信息&#xff08;Mutual Information&#xff09;计算图片的相似度1.余弦相似度计算 把图片表示成一个向量&#xff0c;通…

.size .shape .size() type的运用

.size ndarray.size 数组元素的总个数&#xff0c;相当于 .shape 中 n*m 的值 a np.array([2,2]) print(a.size)2.shap ndarray.shape 数组的维度&#xff0c;对于矩阵&#xff0c;n 行 m 列 a np.array([2,2]) print(a.shape) (1,2)torch.tensor 数组的维度 x torch.r…

矩阵相加

tensor 类型 a torch.randn(1,3,3) b torch.randn(1,3,3) c a b numpy.array 类型 a np.array([2,2]) b np.array([2,2]) print(type(a)) print(ab)[4,4]

Latex 生成的PDF增加行号 左右两边

增加行号 \usepackage[switch]{lineno}\linenumbers \begin{document} \end{document}

pytorh .to(device) 和.cuda()的区别

原理 .to(device) 可以指定CPU 或者GPU device torch.device("cuda:0" if torch.cuda.is_available() else "cpu") # 单GPU或者CPU model.to(device) #如果是多GPU if torch.cuda.device_count() > 1:model nn.DataParallel(model&#xff0c;devic…

Linux 修改用户名的主目录 家目录

首先root 登陆 sudo -i 输入密码然后 vim /etc/passwd 找到用户名 然后修改后面的路径即可

ubunt16.04 安装3090显卡驱动 cuda cudnn pytorch

安装驱动 需要的安装包 30系列显卡是新一代架构&#xff0c;新驱动不支持cuda9以及cuda10&#xff0c;所以必须安装cuda11、而pytorch现在稳定版为1.6&#xff0c;最高仅支持到cud10.2。所以唯一的办法就是使用上处于beta测试的1.7或1.8。这也是为啥一开始就强调本文的写作时…

3090显卡 torch.cuda.is_available()返回false的解决办法

问题 1.执行Nvidia-smi 命令没有报错&#xff0c;能够显示驱动信息&#xff1b; 2.执行 torch.backends.cudnn.enabled is TRUE 3.torch.cuda.is_available()一直返回False 解决 把torch&#xff0c;torchvision等相关安装包全部删除&#xff0c;安装适合版本的torch。 30系…

测试项目:车牌检测,行人检测,红绿灯检测,人流检测,目标识别

本项目为2020年中国软件杯&#xff21;组第一批赛题&#xff02;基于计算机视觉的交通场景智能应用&#xff02;&#xff0e;项目用python实现&#xff0c;主要使用YOLO模型实现道路目标如人、车、交通灯等物体的识别&#xff0c;使用开源的&#xff02;中文车牌识别HyperLPR&a…

pytorch: 在训练中保存模型,加载模型

文章目录1. 保存整个模型2.仅保存和加载模型参数(推荐使用)3. 保存其他参数到模型中&#xff0c;比如optimizer,epoch 等1. 保存整个模型 torch.save(model, model.pkl) model torch.load(model.pkl)2.仅保存和加载模型参数(推荐使用) torch.save(model_object.state_dict()…

Pytorch:保存图片

1. 直接保存Tensor #!/usr/bin/env python # _*_ coding:utf-8 _*_ import torch from torchvision import utils as vutilsdef save_image_tensor(input_tensor: torch.Tensor, filename):"""将tensor保存为图片:param input_tensor: 要保存的tensor:param fi…

Python List:合并多个list,listd的合并

第一种方法 a [1,3,3] b [2,3,3] a a b print(a) [1,3,3,2,3,3]第二种方法 a [1,3,3] b [2,3,3] a.extend(b) print(a) [1,3,3,2,3,3]

挂载硬盘问题:mount: wrong fs type, bad option, bad superblock on /dev/sdb,

mount: wrong fs type, bad option, bad superblock on /dev/sdb,missing codepage or helper program, or other error 解决方案&#xff1a; # create mount dir sudo mkdir /hdd6T# new file system sudo mkfs.ext4 /dev/sdc# mount drive sudo mount /dev/sdc /hdd6T/# c…

linux 安装python3.8的几种方法

1.命令行搞定 git clone https://github.com/waketzheng/carstino cd carstino python3 upgrade_py.py2.离线安装 自己在官网下载安装包 https://www.python.org/ftp/python/3.8.0/ 解压&#xff1a; tar -zvf Python-3.8.0.tgz安装 cd Python-3.8.0 ./configure --prefix/u…

面试题目:欠拟合、过拟合及如何防止过拟合

对于深度学习或机器学习模型而言&#xff0c;我们不仅要求它对训练数据集有很好的拟合&#xff08;训练误差&#xff09;&#xff0c;同时也希望它可以对未知数据集&#xff08;测试集&#xff09;有很好的拟合结果&#xff08;泛化能力&#xff09;&#xff0c;所产生的测试误…

LaTeX:equation, aligned 书写公式换行,顶部对齐

使用aligined 函数&#xff0c;其中aligned就是用来公式对齐的&#xff0c;在中间公式中&#xff0c;\ 表示换行&#xff0c; & 表示对齐。在公式中等号之前加&&#xff0c;等号介绍要换行的地方加\就可以了。 \begin{equation} \begin{aligned} L_{task} &\lamb…