pytorch
洪流之源
这个作者很懒,什么都没留下…
展开
-
基于pytorch实现简单的分类模型训练
基于pytorch实现简单的分类模型训练原创 2023-03-03 17:37:56 · 928 阅读 · 0 评论 -
Pytorch分布式训练与断点续训
Pytorch分布式训练与断点续训。原创 2022-09-26 18:05:38 · 1602 阅读 · 0 评论 -
warmup与余弦退火学习率
warmup与余弦退火学习率原创 2022-09-24 10:41:32 · 1724 阅读 · 0 评论 -
Tensorboard(4) 训练分类算法的tensorboard可视化示例
训练分类算法的tensorboard可视化示例原创 2022-09-23 19:24:50 · 696 阅读 · 0 评论 -
Tensorboard(3) 可视化模型计算图
Tensorboard 可视化模型计算图原创 2022-09-23 18:00:48 · 347 阅读 · 0 评论 -
Tensorboard(2) 图片、特征图、权重参数可视化
tensorboard图片、特征图、权重参数可视化原创 2022-09-23 17:43:19 · 2400 阅读 · 0 评论 -
Tensorboard(1) 标量与直方图可视化
Tensorboard 标量与直方图可视化原创 2022-09-22 18:31:28 · 483 阅读 · 0 评论 -
Pytorch children()、modules()、named_children()、named_modules()、named_parameters()、parameters()使用说明
children():返回包含直接子模块的迭代器modules():(递归)返回包含所有子模块(直接、间接)的迭代器named_children() :返回包含直接子模块的迭代器,同时产生模块的名称以及模块本身named_modules():返回包含所有子模块(直接、间接)的迭代器,同时产生模块的名称以及模块本身named_parameters():返回模块参数上的迭代器,产生参数的名称和参数本身parameters(): 返回模块参数上的迭代器,不包括名称import torch.nn .原创 2021-09-26 15:52:17 · 1747 阅读 · 0 评论 -
Yolov5 Torchscript + Batch + 多GPU推理
1. 导出torchscript模型在yolov5工程目录下执行如下命令导出torchscript模型python models/export.py --weights weights/yolov5m.pt2. Yolov5推理类class Yolov5Inference: def __init__(self, model_file, device, input_size_h, input_size_w,原创 2021-09-14 16:08:22 · 1644 阅读 · 0 评论 -
mnist数据集训练简洁实现
import torchimport torch.nn as nnimport torch.optim as optimfrom torchvision import datasets, transforms class CNN(nn.Module): def __init__(self): super(CNN, self).__init__() self.conv1 = nn.Sequential( # 输入大小 (1, 28, 28).原创 2021-06-03 14:53:44 · 454 阅读 · 0 评论 -
Retinaface Pytorch转ONNX
环境:Retinaface Pytorch源码:import timeimport torchimport torch.nn as nnimport torchvision.models._utils as _utilsimport torchvision.models as modelsimport torch.nn.functional as Ffrom torch.autograd import Variabledef conv_bn(inp, oup, stride原创 2021-04-25 15:44:29 · 481 阅读 · 0 评论 -
Pytorch实现CSPDarknet53
import torchimport torch.nn.functional as F import torch.nn as nnimport mathfrom collections import OrderedDictimport numpy as npimport torch.onnx# Mish激活函数: f(x) = x * tanh(log(1 + e^x))# pytorch中F.softplus(x)等同于torch.log(1 + torch.exp(x))class.原创 2021-04-18 22:01:58 · 1474 阅读 · 1 评论 -
Pytorch DataParallel多卡训练模型导出onnx模型
Pytorch模型转换到onnx模型代码如下:import torchimport torch.nn as nnimport torch.onnximport onnximport osfrom QualityNet import QualityNetif __name__ == '__main__': os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" os.environ["CUDA_VISIBLE_DEVICES"] =原创 2021-03-29 18:29:49 · 1979 阅读 · 2 评论 -
mmdetection使用tensorboard可视化训练集与验证集指标参数
如何使用mmdetection训练自己的数据可以参考这篇文章https://blog.csdn.net/weicao1990/article/details/93484603,在这篇文章中只是用训练集进行训练,没有用到验证集验证模型的指标,因此这篇文章中将会讨论如何增加验证集,并且使用tensorboard可视化训练集与验证集的指标参数。以cascade_rcnn_hrnetv2p_w32_2...原创 2019-11-30 15:34:37 · 20269 阅读 · 34 评论 -
Pytorch Tensor维度变换
1. 改变shapetorch.reshape()、torch.view()可以调整Tensor的shape,返回一个新shape的Tensor,torch.view()是老版本的实现,torch.reshape()是最新的实现,两者在功能上是一样的。示例代码:import torcha = torch.rand(4, 1, 28, 28)print(a.shape)prin...原创 2019-06-25 15:02:18 · 66265 阅读 · 4 评论 -
Pytorch 使用GPU加速
Pytorch中使用torch.device()选取并返回抽象出的设备,然后在定义的网络模块或者Tensor后面加上.to(device变量)就可以将它们搬到设备上了。以上一篇代码为例,使用GPU设备:device = torch.device('cuda:0') # 使用第一张显卡需要将如下部分搬移到GPU上:1. 定义的网络net = MLP().to(device)...原创 2019-08-07 16:09:39 · 1938 阅读 · 0 评论 -
Pytorch 多分类结果测试
在模型训练过程中需要对当前的效果进行验证,或者训练结束后需要在测试集上对模型进行测试。比如多分类问题,网络的前向传播的结果是一个概率值Tensor,如果是一个10分类问题,并且batch=4,结果是一个4*10的Tensor,Tensor的每一行表示某张图片分别在10分类下的预测概率值。Pytorch中的argmax()函数可以返回Tensor中每一行最大值的索引,torch.eq()函数可以...原创 2019-08-07 16:51:37 · 5020 阅读 · 0 评论 -
Pytorch Visdom可视化工具
Pytorch官方支持的可视化工具是Visdom(当然也支持TensorBoardX),Visdom更简洁方便一些(例如对image数据的可视化可以直接使用Tensor,而不必转到cpu上再转为numpy数据),刷新率也更快。1. 安装Visdomsudo pip3 install visdom2. 启动Visdom服务python3 -m visdom.server启动成...原创 2019-08-07 17:24:38 · 776 阅读 · 0 评论 -
PyTorch 常用代码段整理合集
https://zhuanlan.zhihu.com/p/59205847本文代码基于PyTorch 1.0版本,需要用到以下包import collectionsimport osimport shutilimport tqdmimport numpy as npimport PIL.Imageimport torchimport torchvision1. 基础配...转载 2019-08-26 10:39:17 · 2918 阅读 · 1 评论 -
Pytorch 实现sobel算子的卷积操作
卷积在pytorch中有两种实现,一种是torch.nn.Conv2d(),一种是torch.nn.functional.conv2d(),这两种方式本质都是执行卷积操作,对输入的要求也是一样的,首先需要输入的是一个torch.autograd.Variable()的类型,大小是(batch,channel, H,W),其中batch表示输入的一批数据的数目,channel表示输入的通道数。一般一...原创 2019-09-03 16:33:52 · 9581 阅读 · 5 评论 -
Pytorch 不同的网络参数初始化对梯度消失的影响
尽管ReLU相比其它激活函数已经大大避免了发生梯度消失或者为0的现象,但不好的参数初始化方法也会导致这种情况的出现。1. 使用标准正态分布初始化这里用torch.randn()来做实际上就是对参数w和b进行了N~(0,1)的标准正态分布初始化,这个初始化值都很小,比较接近0。import torchfrom torch.nn import functional as Ffrom...原创 2019-08-07 15:51:32 · 1588 阅读 · 0 评论 -
torch.nn.Linear()函数的理解
https://blog.csdn.net/m0_37586991/article/details/87861418https://blog.csdn.net/dss_dssssd/article/details/83892824转载 2019-07-26 16:59:34 · 1753 阅读 · 0 评论 -
Pytorch 维度拼接与维度拆分
1. 维度拼接(1)cat:根据指定维度进行数据的合并。通过指定维度拼接时,需要保证其它维度的size是相同的。示例代码:import torcha = torch.rand(4, 32, 8)b = torch.rand(5, 32, 8)# 在第一个维度进行拼接print(torch.cat([a, b], dim=0).shape)输出结果:torch....原创 2019-06-26 12:07:02 · 15239 阅读 · 0 评论 -
Pytorch 激活函数
激活函数(activation functions)的目标是,将神经网络非线性化。激活函数是连续的(continuous),且可导的(differential)。连续的:当输入值发生较小的改变时,输出值也发生较小的改变; 可导的:在定义域中,每一处都是存在导数;神经网络中比较常用的激活函数有sigmoid、tanh、ReLU,Leaky ReLU、Maxout:在PyTorch的老...原创 2019-07-01 17:29:22 · 4745 阅读 · 0 评论 -
Pytorch Broadcasting 维度自动增加与扩展
Broadcasting能够实现Tensor自动维度增加(unsqueeze)与维度扩展(expand),主要按照如下步骤进行:从最后面的维度开始匹配; 在前面插入若干维度,进行unsqueeze操作; 将维度的size从1通过expand变到和某个Tensor相同的维度。总之,Broadcasting也就是自动实现了若干unsqueeze和expand操作,以使两个Tensor的sha...原创 2019-06-26 11:04:37 · 3728 阅读 · 0 评论 -
Pytorch 张量维度
Tensor类的成员函数dim()可以返回张量的维度,shape属性与成员函数size()返回张量的具体维度分量,如下代码定义了一个两行三列的张量:f = torch.randn(2, 3)print(f.dim())print(f.size())print(f.shape)输出结果:2torch.Size([2, 3])torch.Size([2, 3])dim=0...原创 2019-06-21 17:35:52 · 22940 阅读 · 0 评论 -
Pytorch Tensor的索引与切片
1. Pytorch风格的索引根据Tensor的shape,从前往后索引,依次在每个维度上做索引。示例代码:import torcha = torch.rand(4, 3, 28, 28)print(a[0].shape) #取到第一个维度print(a[0, 0].shape) # 取到二个维度print(a[1, 2, 2, 4]) # 具体到某个元素上述代码创建...原创 2019-06-25 12:08:19 · 63322 阅读 · 2 评论 -
Pytorch 基本的数据类型
Pytorch中的基本数据类型就是各式各样的张量,张量可以理解为多维矩阵。Pytorch中定义了一个Tensor类来实现张量,Tensor在使用上与numpy的ndarray类似,不同的是,Tensor可以在GPU上运行,但是numpy只能在CPU上运行,当然numpy与Tensor可以进行相互转换,以此使得numpy数据在GPU上运行。Pytorch中的Tensor又包括CPU上的数据类...原创 2019-06-21 12:24:12 · 7697 阅读 · 3 评论 -
Pytorch中的自动求导函数backward()所需参数含义
https://www.cnblogs.com/JeasonIsCoding/p/10164948.html转载 2019-06-14 16:35:56 · 992 阅读 · 0 评论 -
Pytorch 实现Lenet5,并在cifar10数据集上进行训练
lenet5.pyimport torchfrom torch import nnclass Lenet5(nn.Module): """ for cifar10 dataset. """ def __init__(self): super(Lenet5, self).__init__() self.conv_u...原创 2019-06-09 16:32:05 · 1696 阅读 · 0 评论 -
Pytorch Tensor基本数学运算
1. 加法运算示例代码:import torch# 这两个Tensor加减乘除会对b自动进行Broadcastinga = torch.rand(3, 4)b = torch.rand(4)c1 = a + bc2 = torch.add(a, b)print(c1.shape, c2.shape)print(torch.all(torch.eq(c1, c2)))...原创 2019-06-26 15:35:40 · 57962 阅读 · 0 评论 -
Pytorch Tensor的统计属性
1. 范数示例代码:import torcha = torch.full([8], 1)b = a.reshape([2, 4])c = a.reshape([2, 2, 2])# 求L1范数(所有元素绝对值求和)print(a.norm(1), b.norm(1), c.norm(1))# 求L2范数(所有元素的平方和再开根号)print(a.norm(2), b.n...原创 2019-06-26 16:44:07 · 3144 阅读 · 0 评论 -
Pytorch 一些高阶操作
1.where使用C=torch.where(condition,A,B)其中A,B,C,condition是shape相同的Tensor,C中的某些元素来自A,某些元素来自B,这由condition中对应位置的元素是1还是0来决定。如果condition对应位置元素是1,则C中的该位置的元素来自A中的该位置的元素,如果condition对应位置元素是0,则C中的该位置的元素来自B中的该位置...原创 2019-06-26 17:24:08 · 1200 阅读 · 0 评论 -
Pytorch对Himmelblau函数的优化实例
Himmelblau函数如下:有四个全局最小解,且值都为0,这个函数常用来检验优化算法的表现如何:可视化函数图像:import numpy as npfrom matplotlib import pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Ddef himmelblau(x): return (x[0] *...原创 2019-07-30 10:25:28 · 1633 阅读 · 0 评论 -
Pytorch 链式法则求梯度
x经过参数w1和b1得到y1,y1再通过w2和b2得到y2,要求y2对w1的导数,可以求y2对y1然后y1对w1的导数。PyTorch可以自动使用链式法则对复杂的导数求解。import torchx = torch.tensor(1.2)w1 = torch.tensor(2.3, requires_grad=True)b1 = torch.tensor(1.3)y1 = x * ...原创 2019-07-30 09:56:47 · 1523 阅读 · 1 评论 -
Pytorch 感知机
示例代码:import torchfrom torch.nn import functional as Fx = torch.randn(1, 10)w = torch.randn(1, 10, requires_grad=True)# 对输出用sigmoid激活o = torch.sigmoid(x @ w.t())print("输出值:", o)# 计算MSEloss...原创 2019-07-30 09:30:18 · 466 阅读 · 1 评论 -
Pytorch 损失函数 Mean Squared Error
Pytorch的损失函数定义在torch.nn.functional下,可以直接使用。Mean Squared Error(MSE)即均方误差,常用在数值型输出上:其中θ是网络的参数,取决于使用的网络结构,例如如果只是普通的线性感知器,那么:注意MSE和L2范数相比,L2范数是做了开平方操作的,所以如果要使用它来求MSE,最后只要.pow(2)平方一下就可以了,示例代码:im...原创 2019-07-29 17:59:36 · 14117 阅读 · 2 评论 -
Pytorch softmax激活函数
可以用于将多个输出值转换成多个概率值,使每个值都符合概率的定义,范围在[0, 1],且概率相加和为1,非常适合多分类问题。Softmax往往用在最后对输出值y的处理上。它会将原来大的值相对缩放得更大,而原来很小的值压缩到比较密集的空间,这从指数函数图像就可以理解。import torchfrom torch.nn import functional as Fy = torch.ra...原创 2019-07-29 17:27:10 · 26471 阅读 · 2 评论 -
Pytorch 梯度计算
使用Pytorch计算梯度或者求导,有两种方法:以均方误差为例,模型pred = w*x:import torchfrom torch.nn import functional as F# pred = x*wx = torch.ones(1)# dim=1,长度为1,值初始化为2w = torch.full([1], 2) # 实际输出y = torch.on...原创 2019-07-29 17:06:07 · 2252 阅读 · 0 评论 -
mmdetection代码解析(1)train.py
#coding=utf-8from __future__ import divisionimport argparseimport osfrom mmcv import Configfrom mmdet import __version__from mmdet.datasets import get_datasetfrom mmdet.apis import (train_d...原创 2019-07-29 14:51:01 · 8159 阅读 · 8 评论