人工智能
-
pytorch创建tensor数据
一、传入数据 tensor只能传入数据 可以传入现有的数据列表或矩阵 import torch # 当是标量时候,即只有一个数据时候,[]括号是可以省略的 torch.tensor(2) # 输出: tensor(2) # 如果是向量或矩阵,必须有[]括号 torch.tensor([2, 3]) # 输出: tensor([2, 3]) Tensor可以传…
-
pytorch tensor的索引与切片
tensor索引与numpy类似,支持冒号,和数字直接索引 import torch a = torch.Tensor(2, 3, 4) a # 输出: tensor([[[9.2755e-39, 1.0561e-38, 9.7347e-39, 1.1112e-38], [1.0194e-38, 8.4490e-39, 1.0102e-38, 9.0919e…
-
pytorch属性统计
一、范数 二、基本统计 三、topk 四、比较运算 一、范数 1)norm表示范数,normalize表示正则化 2)matrix norm 和 vector norm的区别: 3)范数计算及表示方法 二、基本统计 1)mean, max, min, prod, sum 2)argmax, argmin 3)max的其他用法 三、topk…
-
pytorch高阶OP操作where,gather
一、where 1)torch.where(condition, x, y) # condition是条件,满足条件就返回x,不满足就返回y 2)特点,相比for循环的优点是:可以布置在GPU上运行 二、gather 1)官方解释:根据指定的维度和索引值来筛选值 2)举例
-
pytorch 数据拼接与拆分cat、stack、split、chunck
1、cat拼接 功能:通过dim指定维度,在当前指定维度上直接拼接 默认是dim=0 指定的dim上,维度可以不相同,其他dim上维度必须相同,不然会报错。 1)拼接两个维度相同的数 a = torch.rand(2, 3, 2) a # 输出: tensor([[[0.6072, 0.6531], [0.2023, 0.2506], [0.0590, 0.…
-
[python][pytorch]多GPU下的模型保存与加载
说明 在模型训练的时候,往往使用的是多GPU的环境;但是在模型验证或者推理阶段,往往使用单GPU甚至CPU进行运算。那么中间有个保存和加载的过程。下面来总结一下。 多GPU进行训练 首先设置可见的GPU数量,有两种方式可以声明: 在shell脚本中声明: export CUDA_VISIBLE_DEVICES=0,1,2,3 在py文件中声明 os.envi…
-
[pytorch][进阶之路]pytorch学习笔记一
1. Tensor是一个高维数组,可以通过GPU加速运算 import torch as t x = t.Tensor(5, 3) # 构建Tensor x = t.Tensor([[1,2],[3,4]]) # 初始化Tendor x = t.rand(5, 3) # 使用[0,1]均匀分布随机初始化二维数组 print(x.size()) # 查看x的形…
-
[pytorch][持续更新]pytorch踩坑汇总
BN层不能少于1张图片 File “/home/user02/wildkid1024/haq/models/mobilenet.py”, line 71, in forward x = self.features(x) File “/home/user02/anaconda2/envs/py3_dl/lib/python3.6/site-packages/t…
-
[pytorch]动态调整学习率
问题描述 在深度学习的过程中,会需要有调节学习率的需求,一种方式是直接通过手动的方式进行调节,即每次都保存一个checkpoint,但这种方式的缺点是需要盯着训练过程,会很浪费时间。因此需要设定自动更新学习率的方法,让模型自适应地调整学习率。 解决思路 通过epoch来动态调整,比如每10次学习率为原来的0.1 实现示例: def adjust_learni…
-
[pytorch]单多机下多GPU下分布式负载均衡训练
说明 在前面讲模型加载和保存的时候,在多GPU情况下,实际上是挖了坑的,比如在多GPU加载时,GPU的利用率是不均衡的,而当时没详细探讨这个问题,今天来详细地讨论一下。 问题 在训练的时候,如果GPU资源有限,而数据量和模型大小较大,那么在单GPU上运行就会极其慢的训练速度,此时就要使用多GPU进行模型训练了,在pytorch上实现多GPU训练实际上十分简单…