PyTorch 源码解读之 torch.cuda.amp: 自动混合精度详解Nvidia 在 Volta 架构中引入 Tensor Core 单元,来支持 FP32 和 FP16 混合精度计算。也在 2018 年提出一个 PyTorch 拓展 apex,来支持模型参数自动混合精度训练。自动混合精度(Automatic Mixed Precision, AMP)训练,是在训练一个数值精度 FP32
pytorch框架的详细介绍与应用一.pytorch概述1.pytorch概念2.pytorch与tensorflow的区别3.pytorch包含的内容1. overview2. 自定义 Module二.pytorch常用模块 最近小阿奇在搭建模型的时候,发现pytorch框架十分的方便好用。所以特地整理了这个帖子,帮助自己捋一下思路打个基础,也方便大家交流学习。很用心的一篇博客哦~ 一.py
转载
2023-08-08 15:03:27
1157阅读
这篇博客记录我在学习《深度学习之PyTorch物体检测实战》一书中关于SSD(Single Shot Multibox Detecor)这一算法的理解,以及pytorch代码的解读。 pytorch复现代码链接:https://github.com/dongdonghy/Detection-PyTorch-Notebook/tree/master/chapter5/ssd-pytorch 虽然本篇
转载
2023-12-20 15:45:49
38阅读
1、LSTM原理LSTM网络(Long short-term memory,长短期记忆网络)是一种
原创
2022-12-16 22:31:42
3177阅读
概要本文档介绍PyTorch自动微分(Automatic Differentiation, Autograd)的原理、实现机制、应用场景以及常见用法。涵盖理论基础、关键概念、源代码分析、常见运算的梯度实现、调试技巧及性能优化建议,并提供详实命令与代码实例,适用于希望深入理解PyTorch自动微分机制的高等院校学生、研究人员与开发者。目录前言自动微分简介自动微分的类型与适用场景PyTorch自动微分
文章目录前言一、正向传播二、反向传播2.1 反向传播过程2.2 案例代码2.2.1 反向传播2.2.2 优化参数三、Autograd 的微分四、计算图总结 前言 提示:本篇博客主要是记录torch.autograd的学习过程,当作是一个笔记来使用。 背景知识:神经网络(NN)是在某些输入数据上执行的嵌套函数的集合。 这些函数由参数(由权重和偏差组成)定义,这些参数在 PyTorch 中存储
转载
2023-09-15 21:22:37
171阅读
1.torch.device()torch.device()主要作用是:在训练时指定使用GPU训练还是CPU训练。使用方法: # cuda:0 代表第几块GPU
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") 2.nn.ModuleList()nn.ModuleList()主要作用:我们可以把任意 n
转载
2023-09-06 17:57:01
283阅读
第1步,导入相关的python包,并且下载训练集,其中训练集可以提前下载放到相应的目录下面。如果真的通过下面代码进行,将会相当耗时。from torchvision import datasets, transforms
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as
转载
2023-09-02 13:51:03
161阅读
PyTorch的许多函数在使用上和Numpy几乎一样,能够平滑地结合使用,Numpy的绝大多数操作同样可以用在PyTorch中。PyTorch的特色之一是提供构建动态计算图的框架,这样网络结构不再是一成不变的了,甚至可以在运行时修正它们。在神经网络方面,PyTorch的优点还在于使用了多GPU的强大加速能力、自定义数据加载器和极简的预处理过程等。尽管PyTorch与其他框架相比还算是新秀,仍然需要
转载
2023-09-22 18:29:59
110阅读
文章目录 几种常见的normalization方法 基本知识 数学原理 Batch Normalizati
转载
2023-11-09 09:31:53
74阅读
目录1.前言2. __setattr__魔法方法3. 遍历Module4.遍历parameter5. 遍历Module并进行某种操作(apply)6. 遍历parameter并进行某种操作(_apply)总结1.前言虽然说是源码分析,但其实主要还是分析Module的的数据结构,即一些比较重要的成员变量和成员函数。同时也不会涉及Pytorch的C++部分。Module是Pytorch中一个
转载
2023-08-13 22:37:08
117阅读
Pytorch在1.9.0引入了torchrun,用其替代1.9.0以前版本的torch.distributed.launch。torchrun在torch.distributed.launch 功能的基础上主要新增了两个功能:Failover: 当worker训练失败时,会自动重新启动所有worker继续进行训练;Elastic: 可以动态增加或或删除node节点;弹性训练代码同DDP代码编写的
转载
2023-10-23 13:28:46
460阅读
一、Pytorch介绍Pytorch 是Torch在Python上的衍生物和Tensorflow相比:Pytorch建立的神经网络是动态的,而Tensorflow建立的神经网络是静态的Tensorflow的高度工业化,它的底层代码很难看懂Pytorch主要有两个模块:一个是torch,一个是torchvision,torch是主模块,用来搭建神经网络。torchvision是辅模块,有数据库,还有
转载
2023-10-06 17:36:08
211阅读
现代的机器学习系统均利用大量的数据,利用梯度下降算法或者相关的变体进行训练。传统上,最早出现的优化算法是SGD,之后又陆续出现了AdaGrad、RMSprop、ADAM等变体,那么这些算法之间又有哪些区别和联系呢?本文试图对比的介绍目前常用的基于一阶梯度的优化算法,并给出它们的(PyTorch)实现。SGD算法描述随机梯度下降法(Stochastic Gradient Descent,SGD)是对
转载
2023-07-24 16:15:13
188阅读
Transformer架构自2017年Google发表的论文《Attention Is All You Need》中提出以来,彻底改变了深度学习特别是自然语言处理领域的格局。
引言
Transformer架构自2017年Google发表的论文《Attention Is All You Need》中提出以来,彻底改变了深度学习特别是自然语言处理领域的格局。在短短几年内,Transformer已成为几乎所有现代大型语言模型(LLM)的基础架构,包括BERT、GPT系列、T5等革命性模型。与传统的RNN和LSTM相比,Transformer通过自注意力机制实现了并行化训练,极
PyTorch 是一个流行的深度学习框架,广泛应用于计算机视觉、自然语言处理等领域。在训练出高效的模型后,推理(Inference)阶段是将这些模型投入实际应用的关键环节。本文将围绕 **PyTorch 推理原理** 进行详细解析,包括背景、技术原理、架构解析、源码分析、性能优化和应用场景。
> **背景:**
> 随着人工智能技术的发展,深度学习模型在各个领域得到了广泛应用,尤其是图像识别、语
# PyTorch Shuffle原理解析
在深度学习和图像处理领域,数据的随机化处理是非常重要的一步,这不仅可以增强模型的泛化能力,还可以帮助模型更好地学习特征。在PyTorch中,我们常常使用`torch.utils.data.DataLoader`类来实现数据的批量读取,而在读取数据时,设置`shuffle=True`可以实现数据的随机化。本文将深入探讨PyTorch中的数据洗牌原理,并提
关于为什么要用Sampler可以阅读 "一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系" 。 本文我们会从源代码的角度了解Sampler。 Sampler 首先需要知道的是所有的采样器都继承自 这个类,如下: 可以看到主要有三种方法:分别是: : 这个很好
原创
2021-04-30 22:24:52
1014阅读
在 PyTorch 中,torch.randperm(n) 函数用于生成一个从 0 到 n-1 的随机排列的整数序列。这个函数是非常有用的,尤其是在需要随机打乱数据或索引时,比如在训练机器学习模型时打乱数据顺序,以确保模型训练的泛化能力。参数
n (int): 输出张量的长度,即最大的数字为 n-1。返回值返回一个一维张量,包含了从 0 到 n-1 的随机排列。使用示例下面是一个基本的使用示例,展
转载
2024-10-09 18:56:50
62阅读