Pytorch
星之所望
兴趣使然的AI工程师
展开
-
pytorch debug 整理
(2)x[:, :, 0:3] = x[:, :, 0:3] + 1 改成 x[:, :, 0:3] = x[:, :, 0:3].clone() + 1。这个bug的出现可能是因为在调用copy.deepcopy的时候,复制的是含有梯度信息的可求导的非叶子节点(也就是非用户创建的tensor)。某个变量在前向计算时是一个值,在求梯度时变成了另一个值(inplace 操作导致),使得pytorch在反向梯度求导时产生了错误。(1)x += 1 改成 x = x + 1。(我的问题是改完这个解决的)原创 2022-10-07 18:10:08 · 1467 阅读 · 2 评论 -
RuntimeError: unable to open shared memory object </torch_24063_2365344576> in read-write mode
【代码】RuntimeError: unable to open shared memory object </torch_24063_2365344576> in read-write mode。转载 2022-09-06 21:15:31 · 3432 阅读 · 0 评论 -
【Pytorch进阶】pytorch中loss.backward() retain_graph=True参数意义
在定义loss时上面的代码是标准的三部曲,但是有时会碰到loss.backward(retain_graph=True)这样的用法。这个用法的目的主要是保存上一次计算的梯度不被释放。具体的计算图细节问题可以见参考文献[1]。转载 2022-08-21 10:38:54 · 3096 阅读 · 0 评论 -
RuntimeError: CUDA error: an illegal instruction was encountered
不是一个能稳定复现的bug,很有可能是显卡坏了,除了换显卡,没有找到解决方法。原创 2021-12-09 20:13:36 · 1986 阅读 · 0 评论 -
pytorch ray 出现 Windows fatal exception: access violation错误的解决方案(远程主机强迫关闭了一个现有的连接)
训练PPO算法,出现Windows fatal exception: access violation问题。PPO算法是一个多线程算法,为了加速训练,使用GPU和显存加速计算。该问题不能稳定复现。为了节约现存,PPO的公共参数储存在内存中,worker数据存储在显存中,然后可能数据交换有问题,会出现多线程错误,将公共参数同样存放在显存中,问题消失了。原:@ray.remoteclass ParameterServer: def __init__(self): se原创 2021-12-09 12:24:19 · 2672 阅读 · 0 评论 -
pytorch 1.8.1 安装方法及坑点(no matching distribution found for xxx、OSError: [WinError 193] %1 不是有效的 Win32)
安装方法:1、pip安装面向Windows的Pytorch完整安装教程_冰海的博客-CSDN博客_windows安装pytorch目录1. 概述2. 安装2.1 安装cuda2.2 安装cudnn2.3 安装Pytoch2.4验证1. 概述PyTorch是一个开源的Python机器学习库,其前身是著名的机器学习库Torch。2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch,它是一个面向Python语言的深度学习框架,不仅能够实现强大的GPU.原创 2021-09-12 12:57:03 · 4130 阅读 · 0 评论 -
gym.error.DependencyNotInstalled: Found neither the ffmpeg nor avconv executables.
错误:gym.error.DependencyNotInstalled: Found neither the ffmpeg nor avconv executables. On OS X, you can install ffmpeg via `brew install ffmpeg`. On most Ubuntu variants, `sudo apt-get install ffmpeg` should do it. On Ubuntu 14.04, however, you'll need to原创 2021-03-14 15:01:59 · 1635 阅读 · 1 评论 -
RuntimeError: view size is not compatible with input tensor‘s size and stride
在运行程序中: def forward(self, x): out = self.cnn(x) out = out.view(out.size()[0], -1) return self.fc(out)python报错:RuntimeError: view size is not compatible with input tensor's size and stride (at least one dimension spans acr转载 2021-03-14 13:09:09 · 608 阅读 · 0 评论 -
gym中env的unwrapped
在看一些示例程序代码时,一般从gym中引用环境只需要用gym.make就可以了,比如env=gym.make('CartPole-v0')但在很多程序中(如莫烦pytorch的DQN程序),还有这样一句env = env.unwrapped关于这个unwrapped的含义,文章gym中env的unwrapped中是这么解释的:Open AI gym提供了许多不同的环境。每一个环境都有一套自己的参数和方法。然而,他们通常由一个类Env包装(就像这是面向对象编程语言(OOPLs)的一个转载 2021-03-08 21:17:57 · 5577 阅读 · 4 评论 -
算法学习(十五)——double DQN
demo:import torchimport torch.nn as nnimport torch.nn.functional as Fimport numpy as npimport gymimport matplotlib.pyplot as pltimport copyimport osimport randomos.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"# hyper-parametersBATCH_SIZE = 128LR原创 2021-03-07 21:32:22 · 393 阅读 · 0 评论 -
【Python】安装Pocketsphinx 时报错:error: command ‘swig.exe‘ failed: No such file or directory 解决
在网上试了很多种方法,比如下载swig 安装包,解压配置环境变量之类的,试了好几个解压路径然后配置都不对,气呼呼!!!最后,尝试了用conda来安装,超级开心!因此,下面这种方法仅限于安装了anaconda的用户有效,且不一定100%有效,下面就开始吧两个命令conda install swig安装完成,然后接着安装Pocketsphinxpip install pocketsphinx太开心啦!!...转载 2021-03-06 09:11:44 · 2131 阅读 · 0 评论 -
window安装gym中Atari游戏出现[WinError 126]问题的解决方法
当在Window环境下使用Gym模块的时候,基础环境都能使用,但是使用Atari游戏模型会报错OSError: [WinError 126] 找不到指定的模块。该问题出在Window10版本的Gym模块只做到了部分支持,要想解决该问题,应执行以下步骤:1.先卸载掉之前安装的gympip uninstall atari-pypip uninstall gym[atari]2.下载 VS build toolshttps://visualstudio.microsoft.com/thank-y转载 2021-03-02 13:11:53 · 500 阅读 · 0 评论 -
算法学习(十一)—— Prioritized Experience Replay
基本思想:使用包含更多信息的样本训练网络,如何快速的选出这些样本以及如何消除样本选择不均匀导致的参数更新错误是重点。使用条件:奖励密度不够高、关键点:TD-error、sumtree和isweightsTD-error:其目的在于不用样本赋予的权重,sumtree:用于对不同TD-error的数据提供一个选择上的优先级。抽样时, 我们会将 p 的总和除以 batch size, 分成 batch size 那么多区间, (n=sum(p)/batch_s.原创 2021-03-02 12:51:08 · 772 阅读 · 0 评论 -
OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
解决方法:在开头添加import osos.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"原创 2021-02-28 16:04:29 · 13544 阅读 · 14 评论 -
使用pytorch的几个小问题
改成import torch 就行,晕原创 2020-02-15 20:59:15 · 1394 阅读 · 1 评论 -
pytorch代码中实现MNIST、cifar10等数据集本地读取
在上一篇博客中我们说到,运行代码时,MNIST数据无法在线实时下载的问题。最近,在学习pytorch,遇到同样的问题,但是这个必须得实时下载,因为在下载的过程中,封装好的代码,还要进行其他的操作。这里,我们以MNIST数据为例,介绍如何实现下载。step1.本地下载好MNIST数据集,4个文件放在一个文件夹MNIST_data中step2.鼠标移动到如下图的MNIST下,然...转载 2020-02-16 22:53:26 · 1533 阅读 · 0 评论 -
记录下pytorch代码从0.3版本迁移到0.4版本要做的一些更改。
1.UserWarning: Implicit dimension choice for log_softmax has been deprecated. Change the call to include dim=X as an argument.return F.log_softmax(x)解决方法:把 F.log_softmax(x)改为F.log_softmax(x,dim...转载 2020-02-16 23:19:36 · 529 阅读 · 0 评论 -
本地安装pytorch方法及坑点
由于conda install pytorch torchvision cudatoolkit=10.1 -c pytorch 安装较慢,因此首先把pytorch下载到本地:1、可以使用清华的源:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/在这其中找到pytorch的gz文件,下载下来。2、本地安装pytorch...原创 2020-02-17 17:19:00 · 6195 阅读 · 0 评论 -
Pytorch学习之LSTM识别MNIST数据集(改进)
按照这篇文章的代码https://www.jianshu.com/p/8e447be76478十分感谢的作者的分享,但文章中的代码是有问题的。需要修改两点1、代码对齐问题# 开始训练for epoch in range(num_epoches): running_loss = 0.0 running_acc = 0.0 for i, data in en...原创 2020-02-17 20:36:42 · 810 阅读 · 0 评论 -
torchvision.transforms用法介绍
pytorch源码解读之torchvision.transformsPyTorch框架中有一个非常重要且好用的包:torchvision,该包主要由3个子包组成,分别是:torchvision.datasets、torchvision.models、torchvision.transforms。这3个子包的具体介绍可以参考官网:http://pytorch.org/docs/master/to...转载 2020-02-17 22:49:37 · 1681 阅读 · 0 评论 -
torch.randn和torch.rand有什么区别
torch.rand和torch.randn有什么区别? y = torch.rand(5,3) y=torch.randn(5,3)一个均匀分布,一个是标准正态分布。均匀分布torch.rand(*sizes, out=None)→ Tensor返回一个张量,包含了从区间[0, 1)的均匀分布中抽取的一组随机数。张量的形状由参数sizes定义。参数:sizes (int....转载 2020-02-18 12:59:16 · 364 阅读 · 0 评论 -
Pytorch详解NLLLoss和CrossEntropyLoss
pytorch的官方文档写的也太简陋了吧…害我看了这么久…NLLLoss在图片单标签分类时,输入m张图片,输出一个m*N的Tensor,其中N是分类个数。比如输入3张图片,分三类,最后的输出是一个3*3的Tensor,举个例子:第123行分别是第123张图片的结果,假设第123列分别是猫、狗和猪的分类得分。可以看出模型认为第123张都更可能是猫。然后对每一行使用Softmax,这...转载 2020-02-18 13:10:09 · 560 阅读 · 1 评论 -
Pytorch中的torch.cat()函数
cat是concatnate的意思:拼接,联系在一起。先说cat( )的普通用法如果我们有两个tensor是A和B,想把他们拼接在一起,需要如下操作:C = torch.cat( (A,B),0 ) #按维数0拼接(竖着拼)C = torch.cat( (A,B),1 ) #按维数1拼接(横着拼)>>> import torch>&...转载 2020-02-25 19:15:38 · 892 阅读 · 0 评论 -
pytorch nan问题
pytorch nan判断方法:if torch.isnan(tmploss):解决方法:loss_t_conf=0if target[target ==1].size()>torch.Size([0]):loss_t_conf = self.bce_loss(out[target ==1], target[target ==1])...转载 2020-02-25 21:43:21 · 920 阅读 · 0 评论 -
Pytorch使用CUDA权值无故NAN记录
经过两天的搏斗之后,这个问题并没有解决,这里记录一下:深度学习模型在计算的时候权值出现NAN比较常见,常见的解决方法包括:1、降低学习率2、更换loss函数3、更换激活函数4、看看模型中有没有除零操作5、输入数据有没有脏数据,比如带有nan的数据这些方法都试验过,但都无效。后经实验发现,如果不使用GPU运算,而只是用CPU运算,虽然比较慢,但是可以保证不出错。...原创 2020-02-27 06:57:01 · 925 阅读 · 7 评论 -
RuntimeError: Expected object of scalar type Double but got scalar type Float for argument #2 ‘mat2‘
问题:RuntimeError: Expected object of scalar type Double but got scalar type Float for argument #2 ‘mat2’异常代码行:prediction = net.forward(b_x)解决方法:在代码前添加一行,将输入的数据转成是dtype=torch.float32的。b_x = tor...转载 2020-03-07 15:14:15 · 443 阅读 · 0 评论 -
pytorch tensor与numpy转换
tensor to numpya = torch.ones(5)print(a)输出tensor([1., 1., 1., 1., 1.])进行转换b = a.numpy()print(b)输出[1. 1. 1. 1. 1.]注意,转换后的tensor与numpy指向同一地址,所以,对一方的值改变另一方也随之改变a.add_(1)print(...转载 2020-03-07 15:16:44 · 605 阅读 · 0 评论 -
ConvLSTM的用法
简单RNN与LSTM对比LSTM计算示意LSTM计算示意import torchfrom torch import nnimport torch.nn.functional as ffrom torch.autograd import Variable# Define some constantsKERNEL_SIZE = 3PADDING = KERNE...转载 2020-03-08 10:58:48 · 5657 阅读 · 1 评论 -
PyTorch的torch.cat
1. 字面理解:torch.cat是将两个张量(tensor)拼接在一起,cat是concatnate的意思,即拼接,联系在一起。2. 例子理解>>> import torch>>> A=torch.ones(2,3) #2x3的张量(矩阵) >>> Ate...转载 2020-03-08 11:12:51 · 373 阅读 · 0 评论 -
Pytorch torch.cat与torch.chunk
https://blog.csdn.net/benbenls/article/details/102974070?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task转载 2020-03-08 11:21:22 · 153 阅读 · 0 评论 -
torch.autograd.Variable
https://www.cnblogs.com/henuliulei/p/11363121.html转载 2020-03-11 17:14:41 · 895 阅读 · 0 评论 -
[pytorch][基础模块] torch.nn.Conv3D 使用样例与说明
https://blog.csdn.net/FrontierSetter/article/details/99888787https://www.lizenghai.com/archives/33189.html原创 2021-01-31 17:09:25 · 313 阅读 · 0 评论 -
pytorch中的cat、stack、tranpose、permute、unsqeeze
Cat对数据沿着某一维度进行拼接。cat后数据的总维数不变.比如下面代码对两个2维tensor(分别为2*3,1*3)进行拼接,拼接完后变为3*3还是2维的tensor。import torchtorch.manual_seed(1)x = torch.randn(2,3)y = torch.randn(1,3)print(x,y)结果:0.6614 0....转载 2020-03-12 20:07:54 · 192 阅读 · 0 评论 -
torch.nn.conv3d理解
前言需要用到3DCNN,于是找到了torch.nn.conv3d,网上太多人写参数解读,但没什么人能讲得清楚的,于是我边理解边写代码验证,得到了我想要的结果。实例用3DCNN的开篇之作来当作例子解读一下这个函数的参数,首先来看一下它的网络结构图,网上有很多人解读这篇文章,我就不细说了,这个网络中全是重复的3D卷积 → 池化操作,池化的操作和2D卷积没有区别,所以就讲3D卷积,拿下图红框...转载 2020-03-12 20:22:57 · 9085 阅读 · 5 评论 -
nn.AdaptiveAvgPool2d和nn.AdaptiveAvgPool3d
官方给出的例子:>>> # target output size of 5x7>>> m = nn.AdaptiveMaxPool2d((5,7))>>> input = torch.randn(1, 64, 8, 9)>>> output = m(input)>>> output.size()...原创 2020-03-12 20:43:09 · 5230 阅读 · 1 评论 -
PYTORCH 网络结构可视化方法汇总(三种实现方法详解)
转载自:http://www.freesion.com/article/340667237/前言:在深度学习的时候,能够很好的绘制出整个网络的模型图,这是非常方便的,当前流行的tensorflow和pytorch都有很多种方法可以绘制模型结构图,特在此总结如下:tensorflow的模型结构可视化方法:(1)使用自带的tensorboard(不直观)(2)使用netron工具打开(...转载 2020-03-13 16:38:43 · 2361 阅读 · 3 评论 -
Pytorch probability distributions
1.OneHotCategoricaltorch.distributions.one_hot_categorical.OneHotCategorical(probs=None, logits=None, validate_args=None)根据给定的概率probs, 创建一个 one-hot 的类别分布.m = OneHotCategorical(torch.tensor([ 0.1...转载 2020-03-14 09:16:13 · 275 阅读 · 0 评论