目前神经网络的监督学习过程通常为:数据加载(load)进神经网络经过网络参数对数据的计算,得出预测值(predict)根据预测值与标注值(label)之间的差距,产生损失(loss)通过反向传播(BP:Back Propagation)对神经网络的各个参数产生梯度(gradient)依据特定的梯度下降算法(如SGD:Stochastic Gradient Descent随机梯度下降),基于梯度对参
Pytorch源码学习01什么是 PyTorch?张量张量初始化1. 直接生成张量2. 通过Numpy数组来生成张量3. 通过已有的张量来生成新的张量4. 通过指定数据维度来生成张量张量属性张量运算1. 张量的索引和切片2. 张量的拼接3. 张量的乘积和矩阵乘法(==逐个元素相乘结果==)4.张量与张量的矩阵乘法(==矩阵运算==)5. 自动赋值运算Tensor与Numpy的转化1. 由张量变换
转载 2023-07-12 01:06:40
148阅读
目录 命名空间/类/方法/函数/变量 torch.autograd.Function中的ctx参数 DDP(DistributedDataParallel)的构造函数  torch.floor(input, out=None) nametuple argmax view函数 void c10::TensorImpl::refresh_c
转载 2024-04-01 00:00:20
212阅读
主要内容1 Dataset2 Sampler3 DataLoader3.1 三者关系 (Dataset, Sampler, Dataloader)3.2 批处理3.2.1 自动批处理(默认)3.2.3 collate_fn3.3 多进程处理 (multi-process)4 预取 (prefetch)5 代码详解 本篇博文主要用来记录参考链接中的所学重要知识,梳理清楚。 1 DatasetDa
Transformer模型早在2017年就出现了,当时实验室的分享也有关于这个的。但我当时没有意识到这篇论文的厉害之处,听名字感觉像是那种昙花一现的论文,也没有关注它。直到最近出现了BERT这一神物之后,方才后知后觉此时Transformer已然这么有用!因此,这才仔仔细细地撸了这篇“古老”的论文和源码,这里将主要对照论文和相应的PyTorch源码进行逐一对照解读。因笔者能力有限,如有不详实之处,
我们继续分析著名的attention is all you need 论文的pytorch实现的源码解析。 由于项目很大,所以我们会分开几讲来进行讲解。上一讲连接在此: Attention is all you need pytorch实现 源码解析01 - 数据预处理、词表的构建 - Attention is all you need pytorch实现 源码解析02 - 模型的训练(1)- 模
1. 源码概览pytorch是众多dl工具中,比较python风格化的一种,另一个完全python化的dl工具是chainer,它的构建语言中只有python,甚至cuda也是从python端调用的。python风格化的好处是,使用了很多python的语言特性,让代码更加简洁,更高效。《python高级编程》的第2、3章,描述了部分python的高级语言特性,比如:列表推导,迭代器和生成器,装饰器
转载 2023-09-02 22:23:16
88阅读
1. torch.utils.data.DataLoader类:class torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, batch_sampler=None, num_workers=0, collate_fn=, pin_memory=False, drop_last=False,
转载 2024-05-16 14:11:05
59阅读
  目录概述BERT模型架构Input RepresentationPre-training TasksTask #1: Masked LMTask #2: Next Sentence PredictionPre-training ProcedureFine-tuning ProcedureComparison of BERT and OpenAI GPT实验GLUE Datasets
PyTorch源码浅析(1):THTensorPyTorch中Tensor的存储和表示分开,多个THTensor可能共享一个THStorage,每个THTensor可能拥有不同的view(e.g. size, stride)。这样设计的好处是,有时看起来不一样的数据底层是共享的,比如矩阵与矩阵的转置、二维矩阵与二维矩阵变成一维时的矩阵。这部分的主要实现在pytorch/aten文件夹中,这里面既实
转载 2023-08-10 16:07:29
114阅读
Dropout1.CLASS torch.nn.Dropout(p=0.5, inplace=False)训练过程中按照概率p随机地将输入张量中的元素置为0evere channel will be zeroed out independently on every forward call.Parameters:p(float):每个元素置为0的概率,默认是0.5inplace(bool):是否
 PyTorch的学习和使用(五)卷积(convolution)LSTM网络首次出现在Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting,并且在处理视频这种具有时间和空间关系的数据时具有较好的效果。通过扩展torch.nn的方式增加ConvLSTM在github-roge
深入剖析Pytorch的nn.Module源码本文是对nn.Module中的常用函数源码进行剖析(Module在pytorch中是大部分类的基类)1.__init__函数包含很多成员变量,一般是字典格式,默认情况下shuffle、dropout都是遵循training=true设置的def __init__(self) -> None: """ Initial
转载 2024-06-16 09:47:20
81阅读
版本:Pytorh v1.0, python3.7要了解Pytorch源码,最好先对CPython有个大致的了解,比如Python的多态是如何实现的。Pytorch的底层源码,很多都用c++实现,例如,torch._C就是一个非常典型的C++模块,很多对象都会继承“_C”模块里的内容,如,class Tensor(torch._C._TensorBase): def __deepcopy
转载 2023-08-03 15:36:06
111阅读
前言结合pytorch源码和原始论文学习Scaled Dot-Product Attention的原理。计算公式源码pytorch)# 以下代码来自pytorch源码 def _scaled_dot_product_attention( q: Tensor, k: Tensor, v: Tensor, attn_mask: Optional[Tensor] = N
转载 2023-10-21 11:15:24
106阅读
transformer代码 哔哩哔哩很多课程,但是资源很难领取,代码和PPT不好找到 学习的过程中对照网课视频敲了代码,分享给大家使用只包含代码主体,测试部分放到下方顺便请教一个问题:视频中 mask = Variable(torch.zeros(8,4,4))。输出是(2,4,512) 我这边的代码会报错。 mask = Variable(torch.zeros(2,4,4))的时候是没问题的,
文章目录一、项目代码使用1.1 项目说明1.2 训练代码说明二、自定义Dataset2.1 划分训练集合验证集2.2 自定义Dataset三、Faster R-CNN模型框架3.1 模型框架3.2 faster_rcnn_framework.py3.2.1 FasterRCNNBase类3.2.2 FasterRCNN类3.3 数据预处理四、 RPN部分4.1 AnchorsGenerator
之前说过一个c++上调用pytorch现在又反过来了~~ 其实还是仅用c代码哈 生产环境还是用这个C++推理框架ncnn为例,介绍一下部署的大致流程PyTorch模型 --> ONNX格式 --> C++推理框架其它C++推理框架的思路类似,唯一的学习成本是推理框架本身的API。一、PyTorch模型转ONNXONNX is an open format built to repres
转载 2023-12-02 17:09:38
227阅读
Pytorch源码学习02--神经网络前提任务定义网络损失函数反向传播更新权重引用 前提1.使用torch.nn包构建神经网络; 2.nn依赖于autograd来定义模型并对其进行微分; 3.nn.Module包含层,以及返回output的方法forward(input)。注:pytorch里面一切自定义操作基本上都是继承nn.Module类来实现的任务对数字图像进行分类的网络:神经网络的典型训
THNN是一个用C语言实现的神经网络模块的库,提供的功能非常底层。它实现了许多基础的神经网络模块,包括线性层,卷积层,Sigmoid等各种激活层,一些基本的loss函数,这些API都声明在THNN/generic/THNN.h中。每个模块都实现了前向传导(forward)和后向传导(backward)的功能。THCUNN则是对应模块的CUDA实现。THNN & THCUNN我们通过几个例子
转载 2023-08-18 16:24:17
282阅读
  • 1
  • 2
  • 3
  • 4
  • 5