![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Pytorch学习
genous110
这个作者很懒,什么都没留下…
展开
-
2021-10-28multi head的思路
原创 2021-10-28 18:11:46 · 205 阅读 · 0 评论 -
pytorch重载optimizer参数时报错:RuntimeError: expected device cpu but got device cuda:0的解决方法
问题描述: 我在使用torch.save()保存了optimizer的参数过后,torch.save( { 'state_dict':net.state_dict(), 'optimizer':optimizer.state_dict(), 'epochID':epoch, }, filename )再次.原创 2021-05-10 11:37:03 · 776 阅读 · 0 评论 -
调试StarGAN v2 代码遇到的一个大坑
这两天想用一下StarGAN v2来完成自己的一个任务,由于本人的Windows配置比实验室服务器好用,所以本人习惯于用Windows来跑程序。对于pytorch来说,windows和服务器还是有一丢丢的差别的。调试的时候,总是出现 AttributeError: Can’t pickle local object “get_train_loader< locals>"。在网上搜了很多资料,都没有搜到,最后在https://zhiqianghe.blog.csdn.net/article/d原创 2021-04-06 23:49:10 · 840 阅读 · 2 评论 -
自己写模型
今天下午自己在哪里倒腾着,不小心写了个Module出来,当然没有写具体的运算。吓写的,但可以从这个不能运行的程序中,学会写模型应该怎么写class mylayer(torch.nn.Module): def __init__(self, inn=3, out=4): super(mylayer, self).__init__() self.inn = in...原创 2019-05-09 18:28:01 · 2236 阅读 · 0 评论 -
视频数据增强包
import torchvisionimport randomfrom PIL import Image, ImageOpsimport numpy as npimport numbersimport mathimport torchclass GroupRandomCrop(object): def __init__(self, size): if is...原创 2019-04-25 07:14:20 · 1178 阅读 · 0 评论 -
resnet50 结构图
转载 2019-04-24 21:06:44 · 1745 阅读 · 0 评论 -
随便复制的关于并行计算的一些代码。这里很乱
并行计算内部代码 def data_parallel(module, input, device_ids, output_device=None): if not device_ids: return module(input) if output_device is None: output_device = device_ids[0...转载 2019-04-29 16:08:30 · 299 阅读 · 0 评论 -
pytorch DataParallel 多GPU使用
单GPU:import osos.environ["CUDA_VISIBLE_DEVICES"] = "0"多GPU:device_ids = [0,1,2,3]model = model.cuda(device_ids[0])model = nn.DataParallel(model, device_ids=device_ids)optimizer = optim.SGD(mo...转载 2019-04-26 20:54:06 · 608 阅读 · 0 评论 -
循环网络RNN的用法
RNN图解:上图中中间的箭头输出也是ht公式是 ht=tanh(wih * xt + bih +whh * h(t-1) + bhh),这里可能不只一层最后得出的yt = sigmoid(V*ht + c) 始终V是矩阵c是向量pytorch 代码理解:import torchrnn=torch.nn.RNN(input_size=20, hidden_size=50,...原创 2019-05-10 11:11:20 · 751 阅读 · 0 评论 -
pytorch super 的用法
库中的torch.nn.Module模块,声明继承Model类时有提示可以按照这样方式书写class Model(nn.Module): def __init__(self): super(Model, self).__init__() self.conv1 = nn.Conv2d(1, 20, 5) self.conv2 = nn.Con...转载 2019-05-11 08:44:41 · 16588 阅读 · 7 评论 -
ConvLSTM的用法
ConvLSTM的用法import torchfrom torch import nnimport torch.nn.functional as ffrom torch.autograd import Variable# Define some constantsKERNEL_SIZE = 3PADDING = KERNEL_SIZE // 2class ConvLSTMC...转载 2019-05-18 13:48:23 · 4297 阅读 · 1 评论 -
pytorch一种给模型参数赋值的方法。
class A(torch.nn.Module):def init(self):super(A, self).init()self.conv=torch.nn.Conv2d(2, 4, 1)a = A()a.state_dict().key()打印:odict_keys(['conv.weight', 'conv.bias'])再执行:b={}for key in a.sta...原创 2019-05-30 17:07:11 · 11985 阅读 · 1 评论 -
PyTorch中反卷积的用法
pytorch中的 2D 卷积层 和 2D 反卷积层 函数分别如下: class torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, groups=1, bias=True)class torch.nn.ConvTranspose2d(in_channels, out_channels, ke...转载 2019-05-29 22:03:49 · 10352 阅读 · 2 评论 -
pytorch 清华镜像
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/转载 2019-06-17 16:10:34 · 47331 阅读 · 1 评论 -
win10 快速安装pytorch,torchvision, cuda
首先输这个,更换镜像源(注意顺序,第四条一定要在最后,原因不详)conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/mai...转载 2019-07-23 23:13:19 · 392 阅读 · 0 评论 -
pytorch RuntimeError: Error(s) in loading state_dict for DataParall ...导入模型报错解决方法
在pytorch导入模型文件时报错:RuntimeError: Error(s) in loading state_dict for DataParallel:Unexpected running stats buffer(s) “module.norm1.norm_func.running_mean” and “module.norm1.norm_func.running_var” for ...转载 2019-08-29 21:26:39 · 1266 阅读 · 2 评论 -
梯度检验---实例代码
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiede1/article/details/76973494在完成神经网络或softmax回归时,需要进行梯度检验。实际上,所有利用到求代价函数的偏导数的算法都需要利用到梯度检验。通过梯度检验,可以判断求得的偏导数是否正确。梯度检验最核心的目的是,检验下面的式子是否成立:其中,J是代价函数,...转载 2019-04-15 11:12:39 · 468 阅读 · 0 评论 -
pytorch损失函数之nn.CrossEntropyLoss()、nn.NLLLoss()
下面解释一下上面的第一个公式,loss(x,class)= …, 这个公式。pytorch损失函数之nn.BCELoss()(为什么用交叉熵作为损失函数)(转)转载 2019-04-22 17:12:38 · 671 阅读 · 0 评论 -
pytorch学习10:GPU并行
pytorch在GPU并行方面还算很方便。在定义好model之后只需要使用一行:model = torch.nn.DataParallel(model)即可实现在所有GPU上并行运算。但是有时候直接占用所的GPU是没有必要的,如果要指定GPU,可以在DataParallel中增加一个参数:model = torch.nn.DataParallel(model, device_ids=[0,...转载 2019-02-23 18:39:22 · 254 阅读 · 0 评论 -
PyTorch学习系列(九)——参数_初始化
本文转自如下:https://www.cnblogs.com/lindaxin/p/8037561.htmlhttps://blog.csdn.net/qq_19598705/article/details/80396047之前我学习了神经网络中权值初始化的方法那么如何在pytorch里实现呢。PyTorch提供了多种参数初始化函数:torch.nn.init.constant(ten...转载 2019-02-18 15:10:19 · 7362 阅读 · 0 评论 -
pytorch张量torch.Tensor类型的构建与相互转换以及torch.type()和torch.type_as()的用法
pytorch中张丈量是什么意思呢?torch.Tensor是一种包含单一数据类型元素的多维矩阵。Torch定义了七种CPU张量类型和八种GPU张量类型,这里我们就只讲解一下CPU中的,其实GPU中只是中间加一个cuda即可,如torch.cuda.FloatTensor:torch.FloatTensor(2,3) 构建一个23 Float类型的张量torch.DoubleTensor(2...转载 2019-02-12 01:12:16 · 14813 阅读 · 0 评论 -
pytorch 减小显存消耗,优化显存使用,避免out of memory
本文是整理了大神的两篇博客:如何计算模型以及中间变量的显存占用大小:https://oldpan.me/archives/how-to-calculate-gpu-memory如何在Pytorch中精细化利用显存:https://oldpan.me/archives/how-to-use-memory-pytorch还有知乎中大神的解答:https://zhuanlan.zhihu.c...转载 2019-02-11 23:32:52 · 910 阅读 · 0 评论 -
keras:4)LSTM函数详解
LSTM层keras.layers.recurrent.LSTM(units, activation=‘tanh’, recurrent_activation=‘hard_sigmoid’, use_bias=True, kernel_initializer=‘glorot_uniform’, recurrent_initializer=‘orthogonal’, bias_initialize...转载 2019-02-27 14:24:25 · 1167 阅读 · 0 评论 -
深度学习AlexNet模型详细分析
Alex在2012年提出的alexnet网络结构模型引爆了神经网络的应用热潮,并赢得了2012届图像识别大赛的冠军,使得CNN成为在图像分类上的核心算法模型。接下来本文对该网络配置结构中各个层进行详细的解读(训练阶段):注:下述关于卷积核的尺寸来自于Alex在2012年发表的经典论文。conv1阶段DFD(data flow diagram):第一层输入数据为原始的2272273的...转载 2019-02-11 09:24:16 · 674 阅读 · 0 评论 -
pytorch 调参(介绍了优化方法)
关于优化函数的调整拆下包:https://ptorch.com/docs/1/optimclass torch.optim.Optimizer(params, defaults)所有优化的基类.参数:params (iterable) —— 可迭代的Variable 或者 dict。指定应优化哪些变量。defaults-(dict):包含优化选项的默认值的dict(一个参数组没有指定的...转载 2019-02-11 08:58:52 · 4393 阅读 · 0 评论 -
Pytorch的Dataloader报错:TypeError: batch must contain tensors, numbers, dicts or lists
具体报错:TypeError: batch must contain tensors, numbers, dicts or lists; found <class ‘PIL.Image.Image’>12loader的代码:dataloader=torch.utils.data.DataLoader(dataset,batch_size=1,shuffle=True)1表...转载 2019-02-11 01:41:32 · 2204 阅读 · 2 评论 -
PyTorch基本用法(七)——模型的保存与加载
转载 2019-02-10 00:42:54 · 7908 阅读 · 0 评论 -
PyTorch源码解读之torchvision.models(转)
PyTorch框架中有一个非常重要且好用的包:torchvision,该包主要由3个子包组成,分别是:torchvision.datasets、torchvision.models、torchvision.transforms。这3个子包的具体介绍可以参考官网:http://pytorch.org/docs/master/torchvision/index.html。具体代码可以参考github:...转载 2019-02-06 16:00:10 · 812 阅读 · 0 评论 -
Pytorch:经典卷积神经网络LeNet实现
1:前言入门pytoch也有一段时间了,但是似乎基本上都是阅读别人的demo或者相关论文的源码,对框架的布局有了一定的认识,但是对于很多细节的问题仍然不是特别清楚,因此想通过一个小实践来过一遍流程,一是寻找遗漏的细节,二是通过对小项目的文件分割来建立一个相对可扩展的框架,而不是通过一个流水线下来,这样能够对每一个对象和类起到的作用有一个更加直观的把握。2:原理本次博客主要实现最早的卷积神经网...转载 2019-02-06 00:11:51 · 1232 阅读 · 0 评论 -
pytorch使用view(*args)在不改变张量数据的情况下随意改变张量的大小和形状
torch.Tensor.view会返回具有相同数据但大小不同的新张量。 返回的张量必须有与原张量相同的数据和相同数量的元素,但可以有不同的大小。一个张量必须是连续contiguous()的才能被查看。类似于Numpy的np.reshape()pytorch中view的用法torch.Tensor.view会将原有数据重新分配为一个新的张量,比如我们使用:x = torch.randn(2,...转载 2019-02-05 23:34:13 · 1173 阅读 · 0 评论 -
Pytorch实现卷积神经网络CNN
Pytorch是torch的Python版本,对TensorFlow造成很大的冲击,TensorFlow无疑是最流行的,但是Pytorch号称在诸多性能上要优于TensorFlow,比如在RNN的训练上,所以Pytorch也吸引了很多人的关注。之前有一篇关于TensorFlow实现的CNN可以用来做对比。下面我们就开始用Pytorch实现CNN。step 0 导入需要的包1 import t...转载 2019-02-05 00:05:02 · 1774 阅读 · 0 评论 -
【学习笔记】pytorch中squeeze()和unsqueeze()函数介绍
一、unsqueeze()函数首先初始化一个a可以看出a的维度为(2,3)在第二维增加一个维度,使其维度变为(2,1,3)可以看出a的维度已经变为(2,1,3)了,同样如果需要在倒数第二个维度上增加一个维度,那么使用b.unsqueeze(-2)二、squeeze()函数介绍首先得到一个维度为(1,2,3)的tensor(张量)由图中可以看出c的维度为(1,2,3)...转载 2019-02-03 16:22:31 · 1101 阅读 · 0 评论 -
视频数据集UCF101的处理与加载(用PyTorch实现)
一 写在前面未经允许,不得转载,谢谢~之前写了一篇没有使用任何深度学习框架来处理视频数据集的文章:视频数据集UCF101的处理与加载(未使用深度学习框架)上面的处理方法简单粗暴,但仍有很多可以优化的空间,这两天又学习了一下PyTorch对于数据集加载的支持:PyTorch入门学习(七):数据加载与处理之前说过要用PyTorch的方法重新实现一遍对于UCF101的处理,所以在这里做个记录。这...转载 2019-02-02 21:31:41 · 7956 阅读 · 8 评论 -
Pytorch入门学习(四)-training a classifier
未经允许,不得转载,谢谢~~我们现在已经知道了:怎么样用pytorch定义一个神经网络;怎么样计算损失值;怎么样更新网络的权重;现在剩下的问题就是怎么样获取数据了,pytorch除了支持将包含数据信息的numpy array转换成Tensor以外,也提供了各个常见数据集的加载方式,并封装到了torchvision中,本文简单介绍数据获取的方式,然后训练一个简单的分类网络作为入门级的exa...转载 2019-02-02 00:54:10 · 744 阅读 · 0 评论 -
pytorch入门之四参数初始化
pytorch之四参数初始化-- coding: utf-8 --“”"Created on Fri Jul 27 20:57:51 2018@author: dj“”"import numpy as npimport torchfrom torch import nn使用 NumPy 来初始化因为 PyTorch 是一个非常灵活的框架,理论上能够对所有的 Tensor 进行操作...转载 2019-02-14 00:20:53 · 302 阅读 · 0 评论 -
PyTorch学习系列(九)——参数_初始化
PyTorch提供了多种参数初始化函数:torch.nn.init.constant(tensor, val)torch.nn.init.normal(tensor, mean=0, std=1)torch.nn.init.xavier_uniform(tensor, gain=1)等等。详细请参考:http://pytorch.org/docs/nn.html#torch-nn-init...转载 2019-02-14 00:50:02 · 172 阅读 · 0 评论 -
pytorch 梯度裁剪
optimizer.zero_grad() loss, hidden = model(data, hidden, targets)loss.backward() torch.nn.utils.clip_grad_norm(model.parameters(), args.clip)optimizer.step()作者:Z609834342来源:CSDN原文:htt...转载 2019-04-16 19:55:13 · 4357 阅读 · 0 评论 -
pytorch 状态字典:state_dict
pytorch 中的 state_dict 是一个简单的python的字典对象,将每一层与它的对应参数建立映射关系.(如model的每一层的weights及偏置等等)(注意,只有那些参数可以训练的layer才会被保存到模型的state_dict中,如卷积层,线性层等等)优化器对象Optimizer也有一个state_dict,它包含了优化器的状态以及被使用的超参数(如lr, momentum,...转载 2019-03-15 20:41:20 · 4215 阅读 · 0 评论 -
『PyTorch』第十四弹_torch.nn.Module类属性
nn.Module基类的构造函数:def __init__(self): self._parameters = OrderedDict() self._modules = OrderedDict() self._buffers = OrderedDict() self._backward_hooks = OrderedDict() self._forwar...转载 2019-03-15 19:08:27 · 566 阅读 · 0 评论 -
解决pytorch中DataParallel后模型参数出现问题的方法
pytorch中如果使用DataParallel,那么保存的模型key值前面会多处’modules.’,这样如果训练的时候使用的是多GPU,而测试的时候使用的是单GPU,模型载入就会出现问题。一个解决方法是测试的时候强行DataParallel,但是有时候情况较为复杂,可以使用如下的方法:(参考来源:https://discuss.pytorch.org/t/solved-keyerror-u...转载 2019-03-10 23:06:34 · 10300 阅读 · 1 评论