![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PyTorch
笨笨的蛋
笨笨的蛋记笔记的地方
展开
-
PyTorch1.6.0使用Tensorboard
需要的环境Tensorflow-gpu == 1.13.1Tensorboard == 1.15.0先安装Tensorflow == 1.13.1, 然后卸载Tensorboard == 1.13.1,在自己安装Tensorboard == 1.15.0sudo pip install -i https://pypi.douban.com/simple tensorflow-gpu==1.13.1sudo pip uninstall tensorboardsudo pip install -i原创 2020-08-26 16:59:49 · 908 阅读 · 0 评论 -
Pytorch中train和eval模式的区别
前言:在使用Pytorhch框架时总会看见在模型训练前会加上model.trian(), 而在模型测试或者验证之前则会加上model.eval(), 那这两者之间有什么区别了??model.eval()我们来看看官方的解释:由于在验证或者测试时,我们不需要模型中的某些层起作用(比如:Dropout层),也不希望某些层的参数被改变(i.e. BatchNorm的参数),这时就需要设置成**mo...原创 2020-04-06 17:45:25 · 6107 阅读 · 0 评论 -
PyTorch中的 torchvision.transforms模块
简介:这是PyTorch中的一个图像转换模块,任何图像增强或者归一化操作都需要用到此模块1.torchvision.transforms.ToTensor作用:将PIL读取的图像或者np.array (H * W * C) 格式的数据([0, 255])转换成torch.FloatTensor类型的 (C * H * W) 在([0.0, 1.0])范围内的数据.黄色线前提:1.PI...原创 2020-04-04 21:02:37 · 569 阅读 · 1 评论 -
Pytorch的广播操作(broadcasting semantics)
何为广播操作简而言之,如果PyTorch操作支持广播,则其Tensor参数可以自动扩展为相等大小(无需复制数据)。通常的含义:如果张量遵循一下两个规则,那么该张量就具有可广播性(broadcastable):1.每个张量的维度至少为12.从末尾的维度开始迭代维度尺寸时,维度尺寸必须相等,或者其中之一为1,或者不存在其中之一。代码实例:>>> x=torch.empt...原创 2020-04-03 18:13:34 · 1606 阅读 · 0 评论 -
Pytorch优化器的权重衰减(weight_decay)
L2正则化:L=Ee+λ∑wi2L=E_e + \lambda\sum w_i^2L=Ee+λ∑wi2EeE_eEe:是训练数据个标签之间的误差wiw_iwi:表示权重值在反向传播计算梯度时,对每个权重点来说,就是在原本计算的EeE_eEe梯度上,再加上2∗λ∗wi2*\lambda*w_i2∗λ∗wi, 2和λ\lambdaλ可一起看做常数项系数.Pytorch里实现的权重...原创 2020-04-03 17:15:58 · 16883 阅读 · 7 评论 -
PyTorch中模型的parameters()方法浅析
首先先定义一个模型:import torch as timport torch.nn as nnclass A(nn.Module): def __init__(self): super().__init__() self.conv1 = nn.Conv2d(2, 2, 3) self.conv2 = nn.Conv2d(2...原创 2020-04-03 16:28:45 · 27359 阅读 · 1 评论 -
浅谈PyTorch中的自动微分方法
首先来看一个函数:y = x+2, z=12(y12+y22\frac{1}{2}( y_1^2 + y_2^221(y12+y22)我想利用反向传播求一下y和x的导数用pytorch实现一下import torch as tx = t.ones(2, 1, requires_grad=True)y = x + 2z = t.mean(t.pow(y, 2))z.backw...原创 2020-03-28 17:13:06 · 1942 阅读 · 0 评论 -
Pytorch torch.Tensor.detach()方法的用法及修改指定模块权重的方法
detachdetach的中文意思是分离,官方解释是返回一个新的Tensor,从当前的计算图中分离出来需要注意的是,返回的Tensor和原Tensor共享相同的存储空间,但是返回的 Tensor 永远不会需要梯度import torch as ta = t.ones(10,)b = a.detach()print(b)tensor([1., 1., 1., 1., 1., 1.,...原创 2020-03-28 11:32:58 · 15157 阅读 · 4 评论 -
torch.sum()的用法
torch.sum()对输入的tensor数据的某一维度求和,一共两种用法1.torch.sum(input, dtype=None)2.torch.sum(input, list: dim, bool: keepdim=False, dtype=None) → Tensor input:输入一个tensordim:要求和的维度,可以是一个列表keepdim:求和之后这个dim的元素个...原创 2020-03-27 17:09:47 · 135308 阅读 · 5 评论 -
关于torch.nn.functional.softmax中的维度问题
softmax函数的公式如下:Softmax(xix_ixi)=exp(xi)∑jexp(xj)\frac{exp(x_i)}{\sum_j exp(x_j)}∑jexp(xj)exp(xi)在pytorch中导入softmax函数的如下:import torch.nn.functional as FF.softmax()在深度学习中,我们一般要对图像(三维(C, W, H)...原创 2020-03-27 15:56:36 · 4044 阅读 · 0 评论 -
Pytorch几种常用的学习率调整方式
前言:由于在深度学习中, 优化器的学习率需要不断地调整,今天就来总结一下几种常用的学习率调整方法.一. step采用均匀降低的方式, 比如每次降低为原来的0.1倍.lr = self.lr * (gamma ** (epoch // self.lr_step))#self.lr: 初始学习率#gamma: 每次衰减的倍数#epoch: 当前的轮数#self.lr_step: 学习...原创 2020-03-20 21:30:02 · 4959 阅读 · 0 评论 -
PyTorch中的优化器的构建: torch.optim.Optimizer
前言:Pytoch中用来优化模型权重的类是torch.optim.Optimizer, 其他各种我们所熟知的优化器都是Optimizer这个基类的子类, 我们今天就来谈谈如何构建一个模型的优化器对象实例.先用一段代码来看看整体的步骤:class trainer: def __init__(self, args): self.model = model #构建模型 if args....原创 2020-03-20 14:59:37 · 5683 阅读 · 0 评论 -
pytorch中利用self.module()方法来初始化模型权重
前言:每次在pytorch中构建完模型之后都要在另外初始化方法, 非常的麻烦, 因此直接利用构建模型类中的初始化方法 __ init __ ()以及继承的方法self.modules()来初始化模型权重.self.modules()首先来讲一下nn.Module类中的一个方法:self.modules(), 他会返回该网络中的所有modules.具体代码示例如下class Networ...原创 2020-03-18 10:19:49 · 7686 阅读 · 1 评论