202009-28 Pytorch数据拼接与拆分操作实现图解 1、cat:拼接直接合并数据2、stack拼接:与cat不同的是,stack创建了一个新的维度,在拼接的同时,给数据增加了类别。并且stack的所有数据维度必须一致。3、split拆分:通过数据长度进行拆分4、chunk拆分:与split不同的是:chunk是指定拆分的个数,将数据拆分为指定个数。以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。... 继续阅读 >
202009-28 Pytorch高阶OP操作where,gather原理 PyTorch是一个非常有可能改变深度学习领域前景的Python库。我尝试使用了几星期PyTorch,然后被它的易用性所震惊,在我使用过的各种深度学习库中,PyTorch是最灵活、最容易掌握的。一、where1)torch.where(condition,x,y)#condition是条件,满足条件就返回x,不满足就返回y2)特点,相比for循环的优点是:可以布置在GPU上运行二、gather1)官方解释:根据指定的维度和索引值来筛选值2)举例以上就是本文的全部内容,希望对大家... 继续阅读 >
202009-28 Pytorch十九种损失函数的使用详解 损失函数通过torch.nn包实现,1基本用法criterion=LossCriterion()#构造函数有自己的参数loss=criterion(x,y)#调用标准时也有参数2损失函数2-1L1范数损失L1Loss计算output和target之差的绝对值。torch.nn.L1Loss(reduction='mean')参数:reduction-三个值,none:不使用约简;mean:返回loss和的平均值;sum:返回loss的和。默认:mean。2-2均方误差损失MSELoss计算output和target之差的均方差。torch.nn.MSEL... 继续阅读 >
202009-27 jupyter notebook 调用环境中的Keras或者pytorch教程 1.安装插件,在非虚拟环境condainstallnb_condacondainstallipykernel2、安装ipykernel包,在虚拟环境下安装在Windows使用下面命令:激活环境并安装插件(这里的Keras是我的环境名,安装的时候换成自己的环境名即可)activatekerascondainstallipykernel在linux使用下面的命令:激活环境并安装插件sourceactivatekerascondainstallipykernel安装后的效果图如下:至此即可以愉快地使用环境中的Keras和pytorch了Ke... 继续阅读 >
202009-25 Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解 1.安装Anaconda3官网下载Anaconda3:https://www.anaconda.com/distribution/运行下载好的.exe文件Win+R调出运行对话框,输入cmd回车,输入python,如果出现python版本信息,表明安装成功。添加环境变量:高级系统设置->环境变量2.查看电脑显卡信息以Win10为例,控制面板->NVIDIA控制面板->帮助->系统信息->组件3.创建PyTorch环境卸载原来的pytorch和torchvision,之前没有安装则忽略这一步。Win+R,输入cmd,p... 继续阅读 >
202009-25 Pytorch 使用不同版本的cuda的方法步骤 由于课题的原因,笔者主要通过Pytorch框架进行深度学习相关的学习和实验。在运行和学习网络上的Pytorch应用代码的过程中,不少项目会标注作者在运行和实验时所使用的Pytorch和cuda版本信息。由于Pytorch和cuda版本的更新较快,可能出现程序的编译和运行需要之前版本的Pytorch和cuda进行运行环境支持的情况。比如笔者遇到的某个项目中编写了CUDAExtension拓展,而其中使用的cuda接口函数在新版本的cuda中... 继续阅读 >
202009-25 pytorch 中的重要模块化接口nn.Module的使用 torch.nn是专门为神经网络设计的模块化接口,nn构建于autgrad之上,可以用来定义和运行神经网络nn.Module是nn中重要的类,包含网络各层的定义,以及forward方法查看源码初始化部分:def__init__(self):self._backend=thnn_backendself._parameters=OrderedDict()self._buffers=OrderedDict()self._backward_hooks=OrderedDict()self._forward_hooks=OrderedDict()self._forward_pre_hooks=OrderedDict(... 继续阅读 >
202009-25 PyTorch中的C++扩展实现 今天要聊聊用PyTorch进行C++扩展。在正式开始前,我们需要了解PyTorch如何自定义module。这其中,最常见的就是在python中继承torch.nn.Module,用PyTorch中已有的operator来组装成自己的模块。这种方式实现简单,但是,计算效率却未必最佳,另外,如果我们想实现的功能过于复杂,可能PyTorch中那些已有的函数也没法满足我们的要求。这时,用C、C++、CUDA来扩展PyTorch的模块就是最佳的选择了。由于目前市面上大... 继续阅读 >
202009-24 PyTorch加载自己的数据集实例详解 数据预处理在解决深度学习问题的过程中,往往需要花费大量的时间和精力。数据处理的质量对训练神经网络来说十分重要,良好的数据处理不仅会加速模型训练,更会提高模型性能。为解决这一问题,PyTorch提供了几个高效便捷的工具,以便使用者进行数据处理或增强等操作,同时可通过并行化加速数据加载。数据集存放大致有以下两种方式:(1)所有数据集放在一个目录下,文件名上附有标签名,数据集存放格式如下:root/cat_dog/cat.01... 继续阅读 >
202009-23 Pytorch对Himmelblau函数的优化详解 Himmelblau函数如下:有四个全局最小解,且值都为0,这个函数常用来检验优化算法的表现如何:可视化函数图像:importnumpyasnpfrommatplotlibimportpyplotaspltfrommpl_toolkits.mplot3dimportAxes3Ddefhimmelblau(x):return(x[0]**2+x[1]-11)**2+(x[0]+x[1]**2-7)**2x=np.arange(-6,6,0.1)y=np.arange(-6,6,0.1)X,Y=np.meshgrid(x,y)Z=himmelblau([X,Y])fig=plt.figure("himm... 继续阅读 >
202009-23 Pytorch中的自动求梯度机制和Variable类实例 自动求导机制是每一个深度学习框架中重要的性质,免去了手动计算导数,下面用代码介绍并举例说明Pytorch的自动求导机制。首先介绍Variable,Variable是对Tensor的一个封装,操作和Tensor是一样的,但是每个Variable都有三个属性:Varibale的Tensor本身的.data,对应Tensor的梯度.grad,以及这个Variable是通过什么方式得到的.grad_fn,根据最新消息,在pytorch0.4更新后,torch和torch.autograd.Variable现在是同一类。torch.Tenso... 继续阅读 >
202009-23 在pytorch中实现只让指定变量向后传播梯度 pytorch中如何只让指定变量向后传播梯度?(或者说如何让指定变量不参与后向传播?)有以下公式,假如要让L对xvar求导:(1)中,L对xvar的求导将同时计算out1部分和out2部分;(2)中,L对xvar的求导只计算out2部分,因为out1的requires_grad=False;(3)中,L对xvar的求导只计算out1部分,因为out2的requires_grad=False;验证如下:#!/usr/bin/envpython2#-*-coding:utf-8-*-"""CreatedonWedMay2310:02:042018@auth... 继续阅读 >
202009-23 浅谈Pytorch中的自动求导函数backward()所需参数的含义 正常来说backward()函数是要传入参数的,一直没弄明白backward需要传入的参数具体含义,但是没关系,生命在与折腾,咱们来折腾一下,嘿嘿。对标量自动求导首先,如果out.backward()中的out是一个标量的话(相当于一个神经网络有一个样本,这个样本有两个属性,神经网络有一个输出)那么此时我的backward函数是不需要输入任何参数的。importtorchfromtorch.autogradimportVariablea=Variable(torch.Tensor([2,3]),requires_... 继续阅读 >
202009-23 pytorch之Resize()函数具体使用详解 Resize函数用于对PIL图像的预处理,它的包在:fromtorchvision.transformsimportCompose,CenterCrop,ToTensor,Resize使用如:definput_transform(crop_size,upscale_factor):returnCompose([CenterCrop(crop_size),Resize(crop_size//upscale_factor),ToTensor(),])而Resize函数有两个参数,CLASStorchvision.transforms.Resize(size,interpolation=2)size(sequenceorint)?Desiredoutputsize.... 继续阅读 >
202009-23 深度学习入门之Pytorch 数据增强的实现 数据增强卷积神经网络非常容易出现过拟合的问题,而数据增强的方法是对抗过拟合问题的一个重要方法。2012年AlexNet在ImageNet上大获全胜,图片增强方法功不可没,因为有了图片增强,使得训练的数据集比实际数据集多了很多'新'样本,减少了过拟合的问题,下面我们来具体解释一下。常用的数据增强方法常用的数据增强方法如下:1.对图片进行一定比例缩放2.对图片进行随机位置的截取3.对图片进行随机的水平和竖直翻转4.对图片进行... 继续阅读 >