pytorch的使用
文章平均质量分 79
Janie.Wei
这个作者很懒,什么都没留下…
展开
-
各种python数据类型保存成文件
一. list1. 保存为TXT文件file= open('log.txt', 'w') for fp in list_log: file.write(str(fp)) file.write('\n')file.close()**2. 读取 **file=open('log.txt', 'r')list_read = file.readlines()二. numpy1. 保存为.npy数组import numpy as npnumpy_ar原创 2021-11-15 09:54:19 · 2031 阅读 · 0 评论 -
深度模型参数save & load 遇到的各种问题
1. torch版本问题1.1 torch1.5版本及以下import torch## 模型参数保存torch.save(model.state_dict(),'checkpoint/xxx.pth')## 模型参数加载args = torch.load('checkpoint/xxx.pth') # 参数读取model_state_dict = model.state_dict()for key in args: if key in model_state_dict: mod原创 2021-09-22 10:58:26 · 542 阅读 · 0 评论 -
域对抗(域适应)训练
1. 引入在传统监督学习中,我们经常需要大量带标签的数据进行训练,并且需要保证训练集和测试集中的数据分布相似。如果训练集和测试集的数据具有不同的分布,训练后的分类器在测试集上就没有好的表现。这种情况下该怎么办呢?域适应(Domain Adaption),也可称为域对抗(Domain Adversarial),是迁移学习中一个重要的分支,用以消除不同域之间的特征分布差异。其目的是把具有不同分布的源域(Source Domain) 和目标域(Target Domain) 中的数据,映射到同一个特征空间.原创 2021-08-26 17:34:43 · 15537 阅读 · 3 评论 -
对比学习介绍Contrastive Learning
Generative Methods(生成式方法)这类方法以自编码器为代表,主要关注pixel label的loss。举例来说,在自编码器中对数据样本编码成特征再解码重构,这里认为重构的效果比较好则说明模型学到了比较好的特征表达,而重构的效果通过pixel label的loss来衡量。对比式学习着重于学习同类实例之间的共同特征,区分非同类实例之间的不同之处。与生成式学习比较,对比式学习不需要关注实例上繁琐的细节,只需要在抽象语义级别的特征空间上学会对数据的区分即可,因此模型以及其优化...原创 2021-08-14 10:27:15 · 4536 阅读 · 1 评论 -
神经网络模型计算量 & 参数量 解释
1. 概念计算量(FLOPs)对应我们之前的时间复杂度,计算量要看网络执行时间的长短PS:FLOPS:全大写,意指每秒浮点运算次数,理解为计算速度,是一个衡量硬件性能的指标。FLOPs:s小写,意指浮点运算数,理解为计算量,用来衡量模型的复杂度 (如果模型FLOPs为X,使用的GPU性能Y FLOPS,意味处理该模型只需X/Y秒)参数量对应于我们之前的空间复杂度,参数量要看占用显存的量2. 对硬件要求计算量的要求是在于芯片的fl...原创 2021-08-13 08:43:29 · 8665 阅读 · 1 评论 -
变分自编码器VAE
1. VAE & GAN变分自编码器(Variational auto-encoder,VAE)是一类重要的生成模型(generative model)除了VAEs,还有一类重要的生成模型GANsVAE 跟 GAN 比较,目标基本是一致的——希望构建一个从隐变量Z生成目标数据X的模型,但是实现上有所不同。生成模型的难题就是判断生成分布与真实分布的相似度,因为我们只知道两者的采样结果,不知道它们的分布表达式。KL 散度是根据两个概率分布的表达式来算它们的相似度的,我们只有样本...原创 2021-08-11 10:30:42 · 8430 阅读 · 3 评论 -
多块GPU并行计算 pytorch
1. 指明要是用的GPUimport osos.environ["CUDA_VISIBLE_DEVICES"]="0,1,3" 上述代码说明,给本程序分配了编号“0,1,3”的三块GPU可供使用 PS: 本机必须是有上述声明的显卡,否则在使用时会出错 RuntimeError: cuda runtime error (38) : no CUDA-capable device is detected at ..\aten\src\THC\THCGeneral.cpp...原创 2020-09-16 10:28:23 · 1041 阅读 · 0 评论 -
预训练模型的参数保存与加载
1. 预训练参数保存def savecheckpoint(model,dir): para=model.state_dict() torch.save(para, dir)2. 预训练参数加载def LoadParameter(_structure, _parameterDir): """ :param _structure: model :param _parameterDir: 参数位置 :return: """ chec原创 2020-08-08 10:49:50 · 1380 阅读 · 0 评论 -
深度学习常用损失函数介绍和使用
1. nn.L1Loss取预测值和真实值的绝对误差的平均数注意数据类型为:double或floatimport torch.nn as nn import torch import numpy as np x=np.array([1,2,4]) label=torch.from_numpy(x).double() pre=torch.ones([3]).double(...原创 2020-03-15 21:05:59 · 645 阅读 · 0 评论 -
pytorch函数使用
1. Squeeze函数与UNsqueeze函数torch.squeeze()主要对数据的维度进行压缩,去掉维数为1的的维度 添加参数,则表示仅去掉该维数为1的维度torch.unsqueeze()主要是对数据维度进行扩充。给指定位置加上维数为一的维度2. View函数a.view(i,j)...原创 2020-03-15 18:25:01 · 622 阅读 · 0 评论 -
pytorch的一些库
1. torchvision的models 里面包含常用的深度模型:AlexNet、VGG、GoogleNet等 使用: model=models.resnet50()2. pretrainedmodels 里面包含常用的深度模型:AlexNet、VGG、GoogleNet等,还包括一些新的模型Xception、SENet等 使用:args1=pre...原创 2020-03-13 15:40:57 · 1406 阅读 · 0 评论 -
卷积操作中的group
group参数,其意思是将对应的输入通道与输出通道数进行分组卷积处理, 默认值为1。比如输入数据为B*Cin*H*W, 卷积核配置为 Cout 3*3 group: group=1,即我们常用的全连接的卷积,对输入的全部Cin个通道与输出的Cout通道全卷积 group=2,将输入的Cin通道分成2个(Cin/2)通道,输出的Cout通道分成2个(Cout/2)通道;第一个Cin/2通道...原创 2020-03-13 14:36:52 · 2120 阅读 · 0 评论 -
迁移学习-模型参数加载
1. 模型定义时name规则定义了变量名的,name=变量名; 没有定义变量名的,使用Sequential()的,从0开始标号name。class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1=nn.Conv2d(in_channels=3,ou...原创 2020-03-10 20:51:55 · 739 阅读 · 0 评论 -
BatchNorm和Pool使用
1. BatchNorm主要具有以下特性:更快的训练速度:由于 BatchNorm 的权重分布差异很小(论文中称为 internal covariate shift),我们可以使用更高的学习率来训练网络,让我们朝向损失函数最小的方向前进。 改进网络正则化(Regularization):通过 BatchNorm 可以使网络在训练的时候,每个 batch 里的数据规范化都是不一样的,有助于...原创 2020-03-09 21:42:46 · 1009 阅读 · 0 评论