MegEngine基本概念】的更多相关文章

MegEngine基本概念 基本概念 MegEngine 是基于计算图的深度神经网络学习框架. 本文内容会简要介绍计算图及其相关基本概念,以及在 MegEngine 中的实现. 计算图 结合一个简单的数学表达式来介绍计算图中的基本概念.下图是 y = (w * x) + b 这一数学表达式的计算图表示: 从中可以看到,计算图中存在: 数据节点(图中的实心圈):如输入数据 x . w .b ,运算得到的数据 p ,以及最终的运算输出 y : 计算节点(图中的空心圈):图中 * 和 + 分别表示计算…
旷视MegEngine基本概念 MegEngine 是基于计算图的深度神经网络学习框架. 本文简要介绍计算图及其相关基本概念,以及它们在 MegEngine 中的实现. 计算图(Computational Graph) 下面通过一个简单的数学表达式 y=(w∗x)+by=(w∗x)+b 来介绍计算图的基本概念,如下图所示: 图1 从中可以看到,计算图中存在: 数据节点(图中的实心圈):如输入数据 xx . ww . bb ,运算得到的中间数据 pp ,以及最终的运算输出 yy : 计算节点(图中…
AIFramework基本概念整理 本文介绍: 对天元 MegEngine 框架中的 Tensor, Operator, GradManager 等基本概念有一定的了解: 对深度学习中的前向传播.反向传播和参数更新的具体过程有更加清晰的认识: 通过写代码训练一个线性回归模型,对上面提到的这些概念进行具体的实践,加深理解. 请先运行下面的代码,检验环境中是否已经安装好 MegEngine(访问官网安装教程): [1]: import megengine print(megengine.__vers…
Megengine量化 量化指的是将浮点数模型(一般是32位浮点数)的权重或激活值用位数更少的数值类型(比如8位整数.16位浮点数)来近似表示的过程. 量化后的模型会占用更小的存储空间,还能够利用许多硬件平台上的专属算子进行提速.比如在 MegEngine 中使用8位整数来进行量化,相比默认的32位浮点数,模型大小可以减少为1/4,而运行在特定的设备上其计算速度也能提升为2-4倍. 量化的目的是为了追求极致的推理计算速度,为此舍弃了数值表示的精度,直觉上会带来较大的模型掉点,但是在使用一系列精细…
旷视MegEngine网络搭建 在 基本概念 中,介绍了计算图.张量和算子,神经网络可以看成一个计算图.在 MegEngine 中,按照计算图的拓扑结构,将张量和算子连接起来,即可完成对网络的搭建.MegEngine 提供了基于 functional 和基于 Module 的两种方式搭建网络. functional 仅提供最基本的算子功能,数据连接的工作完全由用户完成: Module 对网络模块(包含若干算子及其参数的基本单元)进行了进一步的封装,代码更易复用和维护. 基于 functional…
作者:王博文 | 旷视 MegEngine 架构师 一.背景 对于深度学习框架来说,网络的训练/推理时间是用户非常看中的.在实际生产条件下,用户设计的 NN 网络是千差万别,即使是同一类数学计算,参数也各不相同.如果没有针对性的优化,框架就完全丧失竞争力.因此,在一类数学计算中,开发者们会开发多种高效的算法,分别适用于不同的参数,以保证网络的性能.接下来开发者们需要解决一个新问题,当计算参数确定以后,如何让最快的算法执行该计算. 大部分框架靠先验的经验选择算法,MegEngine 亦总结有优秀的…
作者:章晓 | 旷视 MegEngine 架构师 一.前言 2020 年 5 月 Nvidia 发布了新一代的 GPU 架构安培(Ampere).其中和深度学习关系最密切的莫过于性能强劲的第三代的 TensorCore ,新一代的 TensorCore 支持了更为丰富的 DL(Deep Learning)数据类型,包括了新的 TesorFloat-32(TF32),Bfloat16(BF16)计算单元以及 INT8, INT4 和 INT1 的计算单元,这些计算单元为 DL 推理提供了全面的支持…
作者:王彪 | 旷视框架部异构计算组工程师 一.背景 什么是天元 旷视天元(MegEngine)是一个深度学习框架,它主要包含训练和推理两方面内容.训练侧一般使用 Python 搭建网络:而推理侧考虑到产品性能的因素,一般使用 C++ 语言集成天元框架.无论在训练侧还是推理侧,天元都担负着将训练和推理的代码运行到各种计算后端上的任务.目前天元支持的计算后端有 CPU.GPU.ARM 和一些领域专用的加速器,覆盖了云.端.芯等各个场景. 天元主要有三大特征: 1.训推一体,不管是训练任务还是推理任…
作者:褚超群 | 旷视科技 MegEngine 架构师 背景介绍 在算法研究的过程中,算法同学们可能经常会尝试定义各种新的神经网络层(neural network layer),比如 Layer Norm,Deformable Conv 等.为了实现这些层以进行实验,算法同学可以使用神经网络框架或者 numpy 中提供的基础操作(如张量/标量的加减乘除等)去组合出所需的层的功能.然而这通常会造成这些层的性能断崖式的下跌,大大影响了算法同学们尝试新算法的效率.所以很多情况下,算法同学们会选择为自己…
一.前言     DDD(领域驱动设计)的一些介绍网上资料很多,这里就不继续描述了.自己使用领域驱动设计摸滚打爬也有2年多的时间,出于对知识的总结和分享,也是对自我理解的一个公开检验,介于博客园这个平台也算是对DDD的推广尽了一份绵薄之力.一开始接触这个东西是在2014年,真的觉得像是发现了一片新大陆一般,对我整个程序开发视野有了新的理解,但是像[Vaughn Vernon]<实现领域驱动设计>里写的那样,景色虽好,可是自己很长一段时间内很混乱,理不清眼前的陌生世界,因为它与传统的观念完全不同…