自动求导机制的理解

retain_graph (bool, optional) – If False, the graph used to compute the grad will be freed. Note that in nearly all cases setting this option to True is not needed and often can be worked around in a much more efficient way. Defaults to the value of create_graph.
不retain_graph,backward之后就会释放掉

从某分布中随机采样

均匀分布:
构造和x形状相同的从区间[-1, 1]均匀分布采样的tensor:
eta = torch.zeros_like(x).uniform_(-1, 1)
torch.zeros_like(x)可以构造一个dtype、device等等和x相同但值为0的tensor

Optimizer

torch’s optimizers support specifying per-parameter options, we should pass in an iterable of dict object:

optim.SGD([{'params': model.base.parameters()},{'params': model.classifier.parameters(), 'lr': 1e-3}], lr=1e-2, momentum=0.9)

矩阵运算

torch.bmm(input, mat2)函数做batch的矩阵乘法,input和mat2都是3D tensor,第一维是batch size, 二三维是矩阵的维度

距离计算

torch.norm()计算范数
nn.PairwiseDistance(p=2)函数,计算p范数距离
F.cosine_similarity,计算余弦相似度

损失函数

nn.CrossEntropyLoss()
输入一般有俩:Input:(N, C), Target: (N), N is number of samples and C is number of classs.
nn.BCELoss()
注意:这里的两个参数需要是FloatTensor类型,我之前送进去的label是int类型,就会报错,送进去之前要先转换成float。

命令行参数

parser = argparse.ArgumentParser()
parser.add_argument("--epoch", type=int, default=10)
args = parser.parse_args()

tensor.repeat(**size): 参数数量只能比tensor的维度多,若参数数量和tensor的维度相同,则表示将原来的tensor沿着各自维度复制到相应的倍数;若参数数量多,则靠后的是原tensor相应维度要复制到的倍数,前面的参数是在tensor前面增加的维度。

torch.repeat_interleave(input, repeats, dim=None) 函数将input中的元素重复repeats次,返回一个repeated tensor,除非指定了dim,那么沿着dim进行复制。

torch.max(input, dim)函数对dim维度求最大值,返回两个值,第一个是max value,第二个是max index。
以后不用max了,直接用:
torch.topk(input, k, dim=-1, largest=True, sorted=True),摆的一。返回两个值,第一个是topk values,第二个是topk indexes。其中sorted是指对返回的最大的前k个元素做排序,indexes也会是排序后的indexes。

RNN相关使用

nn.RNN, nn.GRU, nn.LSTM的参数类似。

初始化常用参数:

  • input_size:输入的特征维度,处理文本输入时一般是embedding的维度
  • hidden_size:RNN隐藏层维度
  • num_layers: 层数;bidirectional: 是否双向
  • dropout: dropout rate

forward的输入:

  • input: 输入的序列,维度是 (seq_len, batch_size, input_size)
  • h_0: 初始化隐藏层状态,维度是 (num_layers * num_directions, batch_size, hidden_size)

forward的输出:

  • output: 最后一层所有时间步的输出,维度是 (seq_len, bsz, num_directions * hidden_size)
  • h_n: 所有层最后一个时间步的输出,维度是 (num_layers * num_directions, bsz, hidden_size)

分类问题计算accuracy:

根据预测结果列表prediction和label列表y计算:
torch.eq函数比较两个tensor,返回一个bool类型的tensor,相同的地方为True,不同的地方为False;通过float()函数将其转换成0、1的float类型;mean()函数用来求平均值,即accuracy,计算出来的是一个tensor,item()用来取出tensor的数值

acc = torch.eq(prediction, y).float().mean().item()

load mnist dataset in torchvision:
torchvision.transform:
ToTensor()函数:将PIL image或np array转换成FloatTensor并将各个pixel的值缩放到[0, 1]区间

Distributed Training

如果在一个node上跑多个程序,会报错 from TCPStore: RuntimeError: Address already in use,原因是TCP端口冲突了,TCP端口是用于不同node之间通信的。
顾只需要指定一个不同的port即可避免冲突,从而在相同的node上运行多个程序:

>>> python -m torch.distributed.launch --master_port 12345 main.py

函数

torch.diag

Pytorch使用记录相关推荐

  1. Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)

    Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...

  2. PyTorch学习记录——PyTorch进阶训练技巧

    PyTorch学习记录--PyTorch进阶训练技巧 1.自定义损失函数 1.1 以函数的方式定义损失函数 1.2 以类的方式定义损失函数 1.3 比较与思考 2.动态调整学习率 2.1 官方提供的s ...

  3. 黄金时代 —— Pytorch学习记录(一)

    文章目录 Tensor Tensor操作 桥接 NumPy Cuda张量 Autograd:自动求导 张量 梯度 定义网络 关于nn和nn.Module模块 网络 BP过程 损失函数 反向传播 更新权 ...

  4. IDE Framework之PyTorch使用记录

    文章目录 PyTorch中的常用操作 序号001 torchTensor.item() A.numel()=a, B.numel()=b, 已知a>b, 从A中随机采样b个元素赋值给B, 方法是 ...

  5. Pytorch翻车记录:单卡改多卡踩坑记!

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨哟林小平 来源丨夕小瑶的卖萌屋 编辑丨极市平台 先说明一下背景 ...

  6. PyTorch学习记录-1PyTorch安装

    学习建议里有PyTorch,所以我就开始了PyTorch的学习. 首先就是安装啦,去官网很清楚,可以选择自己的版本和平台,然后下面就会出现 Run this command:  后面跟着的命令复制运行 ...

  7. Pytorch学习记录(七):自定义模型 Auto-Encoders 使用numpy实现BP神经网络

    文章目录 1. 自定义模型 1.1 自定义数据集加载 1.2 自定义数据集数据预处理 1.3 图像数据存储结构 1.4 模型构建 1.5 训练模型 2. Auto-Encoders 2.1 无监督学习 ...

  8. PyTorch学习记录——PyTorch生态

    Pytorch的强大并不仅局限于自身的易用性,更在于开源社区围绕PyTorch所产生的一系列工具包(一般是Python package)和程序,这些优秀的工具包极大地方便了PyTorch在特定领域的使 ...

  9. [Pytorch] 学习记录(七)MNIST多分类问题

    在处理多分类问题的时候会用到一个叫做softmax的分类器,是用来将输出结果划归到[0,1]的,本讲将主要从softmax分类器入手来实现多分类问题.在前一章我们对糖尿病模型进行了二分类,二分类问题中 ...

  10. win10搭建pytorch环境记录

    文章目录 前言 一.anaconda安装 二.pytorch安装 1.新建环境 2.激活环境 3.安装pytorch 总结 前言 以下述环境为例: python=3.7 pytorch=1.7.1 t ...

最新文章

  1. Linux系统与我之间的故事
  2. 项目管理流程有哪些?如何才能让项目管理更有效?
  3. 【结果很简单,过程很艰辛】记阿里云Ons消息队列服务.NET接口填坑过程
  4. [PaaS] 深入 Cloud Foundry(一)构架 (转载)
  5. vue 白边 项目_GUIDE.md · kaiking_g/g6-vue-demo - Gitee.com
  6. asp.net core 发布到 docker 容器时文件体积过大及服务端口的配置疑问
  7. 在混合开发框架模式中,简化客户端对Web API的频繁调用
  8. 图:双屏前期设置方法[又名:系统扩展桌面设置方法-双屏双显扩展桌面技术前期设置方法-PPT分屏技术设置方法]
  9. 基于51单片机模拟交通灯程序
  10. 夜间灯光数据dn值_探讨DMSP/OLS夜间灯光数据的校正
  11. 计算机考研2022大纲,2022计算机408考研大纲
  12. 怎样添加网络扫描到计算机名,为扫描仪添加局域网功能
  13. 手把手教你接入快应用账号开发-客户端方式
  14. CListCtrl基本用法
  15. 怎样在Word文档中插入GIF动画
  16. 日志分析工具 LogParser 学习笔记
  17. 语音识别相关会议期刊、资料、主页博客
  18. informatica odbc oracle,Informatica数据源配置
  19. 淘宝上线短视频APP鹿刻:害抖音之心无,防抖音之心有
  20. python后端滴滴、网易、老虎证券

热门文章

  1. Yii2.0数据格式器
  2. Android WebService
  3. 转:神经网络编程入门
  4. 为什么选用自增量作为主键索引
  5. 主定理(Master Theorem)与时间复杂度
  6. Coin-row problem(1139)
  7. Prototype 学习——Function对象
  8. XML SOAP应用简介
  9. 【SpringMVC笔记】Ajax 入门(jQuery.ajax)
  10. 【南邮操作系统实验】页面置换算法(FIFO、LRU、OPT) Python 版