OpenMMLab:PyTorch 源码解读之 torch.autograd:梯度计算详解 OpenMMLab:PyTorch 源码解读之 BN & SyncBN:BN 与 多卡同步 BN 详解 OpenMMLab:PyTorch 源码解读之 torch.utils.data:解析数据处理全流程 OpenMMLab:PyTorch 源码解读之 nn.Module:核心网络模块接口详解 OpenMMLab:PyTorch 源码解读之 DP & DDP:模型并行...
本文章将首先介绍 Dataset、DataLoader、Sampler、BatchSampler、collate_fn 的概念,然后从源码角度解读 DataLoader 与这些模块的关系。 如果你熟悉基本概念,可以直接从最后章节开始阅读。 1 Dataset Pytorch 支持两种类型的数据集 Map-style Dataset 和 Iterable-style Dataset,提供表示数据集的抽象类,任何自定义的 Dataset...
接下来是第58行至第142行,这部分代码主要是处理在windows平台上运行pytorch会遇到的问题。在windows平台上,如果使用者创建了一个虚拟环境用于执行pytorch代码,那么在执行前需要将pytorch依赖的库目录插入到windows的dll搜索目录中,否则将会出现依赖问题。 一个题外话,代码中的win32其实指的并不是windows系统,而是其底层架...
PyTorch源码解读之torch.autograd OpenMMLab 机器学习算法⼯程师今天 AI编辑:我是⼩将 本⽂作者: OpenMMLab 本⽂已由原作者授权 前⾔ 本篇笔记以介绍 pytorch 中的 autograd 模块功能为主,主要涉及 torch/autograd 下代码,不涉及底层的 C++ 实现。本⽂涉及的源码以 PyTorch 1.7 为准。torch.autograd....
上文我们通过针对性的阅读pytorch源码的框架结构,同时以__init__.py文件为线索探索了pytorch中多个主要类型的实现和功能。在上文中我们曾提到,pytorch框架是一个以python为前端,C++为后端的框架。如果去除掉pytorch中的python前端,那我们就可以得到一个C++的AI框架——libtorch。没有特殊说明时,本文所看源码均是取自...
PyTorch 代码链接:https://github.com/ultralytics/yolov3 本篇主要是对代码文件中 models.py的解读,同时由于用到了utils文件夹下 parse_config.py中的两个函数,所以也对其进行了分析。 1. utils文件夹 1.1. parse_config.py 这个py文件中定义了两个函数——parse_model_cfg和parse_data_cfg,其中parse_model_...
pytorch换源 pytorch源码解读 尝试使用了pytorch,相比其他深度学习框架,pytorch显得简洁易懂。花时间读了部分源码,主要结合简单例子带着问题阅读,不涉及源码中C拓展库的实现。 一个简单例子 实现单层softmax二分类,输入特征维度为4,输出为2,经过softmax函数得出输入的类别概率。代码示意:定义网络结构;使用SGD优化;迭代...
代码来源:MMCV, PyTorch。 https://github.com/open-mmlab/mmcv https://github.com/pytorch/pytorch 注:C++ / CUDA 扩展一般有”预编译“ 与 ”实时编译“ (just-in-time, JIT)模式。本期主要介绍”预编译“模式。 1. 由扩展的调用...
相关代码位于https://github.com/pytorch/pytorch/tree/v2.1.0-rc6/torch/distributed/pipeline/sync 1 流水线并行介绍 如图所示为谷歌提出的流水线并行算法,名为 GPipe,论文位于https://arxiv.org/abs/1811.06965。首先将模型切分为连续的多个 stage,每个 stage 占据一台设备,从而利用多台设备容纳下单设备无法容纳的...