动静态图indpore教程

目前主流的深度学习框架有静态图(Graph)和动态图(PyNative)两种执行模式。

静态图模式下,程序在编译执行时,首先生成神经网络的图结构,然后再执行图中涉及的计算操作。因此,在静态图模式下,编译器可以通过使用图优化等技术来获得更好的执行性能,有助于规模部署和跨平台运行。

动态图模式下,程序按照代码的编写顺序逐行执行,在执行正向过程中根据反向传播的原理,动态生成反向执行图。这种模式下,编译器将神经网络中的各个算子逐一下发到设备进行计算操作,方便用户编写和调试神经网络模型。

MindSpore提供了静态图和动态图统一的编码方式,大大增加了静态图和动态图的可兼容性,用户无需开发多套代码,仅变更一行代码便可切换静态图/动态图模式。静态图模式是MindSpore的默认模式,而动态图模式用于调试等用途。

通过配置context参数可以控制程序运行的模式,动态图和静态图两种模式的区别主要有:

适用场景:静态图需要一开始就构建好网络结构,然后框架做整图优化和执行,比较适合网络固定没有变化,且需要高性能的场景。动态图逐行执行算子,支持执行单算子、普通函数和网络,以及单独求梯度的操作。

网络执行:静态图模式和动态图模式在执行相同的网络和算子时,精度效果一致。由于静态图模式运用了图优化、计算图整图下沉等技术,静态图模式执行网络的性能和效率更高,动态图模式更便于调试调优。

代码调试:在脚本开发和网络流程调试中,推荐使用动态图模式进行调试。在动态图模式下,可以方便地设置断点,获取网络执行的中间结果,也可以通过pdb的方式对网络进行调试。而静态图模式无法设置断点,只能先指定算子进行打印,然后在网络执行完成后查看输出结果。

模式切换时,需要设置context中的运行模式。首先定义网络模型MyNet和后续代码片段用到的数据,用于后续的动静态图模式的切换和展示:

设置运行模式为静态图模式:

在MindSpore中,静态图模式又被称为Graph模式,比较适合网络固定且需要高性能的场景,可以通过set_context接口中,参数mode入参为GRAPH_MODE来设置成静态图模式。

在静态图模式下,MindSpore通过源码转换的方式,将Python的源码转换成中间表达形式,也就是IR(Intermediate Representation),并在此基础上对IR图进行优化,最终在硬件设备上执行优化后的图。

静态图模式的代码用例如下所示,神经网络模型实现 \(f(x, y)=x*y\) 的计算操作:

在MindSpore中,动态图模式又被称为PyNative模式,可以通过set_context接口中,参数mode入参为PYNATIVE_MODE来设置成动态图模式。

在脚本开发和网络流程调试中,推荐使用动态图模式进行调试,其支持执行单算子、普通函数和网络、以及单独求梯度的操作。

在动态图模式下,用户可以使用完整的Python API,此外针对使用MindSpore提供的API时,框架会根据用户选择的不同硬件平台(Ascend/GPU/CPU)或环境信息,将算子API的操作在对应的硬件平台上执行,并返回相应的结果。

框架整体的执行过程如下:

通过前端的Python API,调用到框架层,最终到相应的硬件设备上进行计算。

从上述原理可以看到,PyNative模式下,Python脚本代码会根据Python的语法进行执行,而执行过程中涉及到MindSpore表达层的Python API,会根据用户的设置在不同的硬件上执行,从而进行性能加速。

因此,在动态图模式下,用户可以随意使用Python的语法以及调试方法。

在动态图下,执行正向过程完全是按照Python的语法执行的,而反向传播过程是基于Tensor实现的。

因此,我们在执行正向过程中,将所有应用于Tensor的操作记录下来,并针对每个计算操作求取其反向,然后将所有反向过程串联起来形成整体反向传播图,最终将反向图在设备上执行并计算出梯度。

下面通过一段简单的示例代码说明动态图模式自动微分原理。对矩阵x乘上固定参数z,然后与y进行矩阵乘法:

代码如下:

根据上述动态图模式下构图原理可以看到,在正向传播过程中,MindSpore记录了Mul的计算过程,根据Mul对应的反向bprop的定义,得到了反向的MulGrad算子。

根据Mul算子的bprop定义,如下:

可以看到对Mul的输入求反向,需要两个输入和输出的反向传播梯度值,此时根据实际的输入值,可以将z连接到MulGrad。以此类推,对下一个算子Matmul,相应的得到MatmulGrad信息,再根据bprop的输入输出,将上下文梯度传播连接起来。

同理对于输入y求导,可以使用同样的过程进行推导。

在MindSpore中,针对控制流语法并没有做特殊处理,直接按照Python的语法展开执行,进而对展开的执行算子进行自动微分操作。

例如,对于for循环,在动态图下会首先执行Python的源码,然后根据具体的循环次数,不断的执行for循环中的语句,并对其算子进行自动微分操作。

THE END
0.登兹历山,悦享中秋➡️手机动态图展示2-2、佛教兴起:随着佛教在中国的传播,千佛山逐渐发展成为佛教圣地。尤其在唐代,山中建造了大量的寺庙和佛教石刻,形成了独特的宗教文化景观。 2-3、宋元时期:在宋代,千佛山的佛教活动达到鼎盛,许多僧侣在此修行,山上的寺庙不断扩建。元代时,千佛山仍然是重要的佛教场所,吸引了众多信徒。 jvzquC41yy}/onnrkct/ew478v=77@o
1.中医诊脉把脉绝学,28脉象动态图详解!浮脉的形成,多因外邪侵袭肌表,体内卫阳之气抵抗外邪则正气外充,阳气浮越,鼓于表而致脉浮。如《诊宗三昧》所载:“浮为经络肌表之应,良由邪袭三阳经中,鼓搏脉气于外,所以应指浮满。”这表示机体对疾病抵抗力的增加。若里虚血脱,气浮于外,则脉气不能内潜,有如浮荡精败,浮散神消。正如《诊宗三昧》所载:jvzq<84yyy4489iqe0ipo8hqpvkov87412;3487415;99><:5a715;;:4:?30|mvon
2.Python使用PIL.Image制作运动小人的动态图思路详解python这篇文章主要介绍了Python 使用PIL.Image制作一个运动小人的动态图,制作过程也很简单,只需要把图片拆分成12等分,每帧大小:67x165;连续读取和播放就会形成动态图像,需要的朋友可以参考下准备材料:图片img.png 大小:804x165制作思路:把图片拆分成12等分,每帧大小:67x165;连续读取和播放就会形成动态图像。源代码:1 2 3 jvzquC41yy}/lk:30pku1jwvkerf1;77:4=/j}r
3.超正方体,超正方体的概述帝一应用6,如何看超正方体动态图 7,谁能告诉我超正方体是怎么回事 8,请问什么是超正方体啊 9,怎么理解超正方体 1,超正方体的概述 超立方体,又作正八胞体(8-cell,Regular octachoron),立方体柱(Cubic prism),4-4边形柱(4-4 duoprism),是一个四维空间里的几何产物需要说一下“超立方体”的英文应该是Tesseract而不jvzq<84yyy4ek‚ncrr4dqv4fqe5tjxz{qw572A<:90nuou
4.试论马克思哲学的“哲学性”及其方法论原则正如上文已经指出的那样,马克思的叙述方式是构筑出一个“好像”先验的结构,而这一结构的形成却是依赖于一种动态的图式化构图的抽象法,在这一抽象当中,每一个参与构图的概念范畴都具有改变这一图式的关键性意义。通过对这种动态图式的抽象法的运用,马克思独特的哲学属性才得以充分彰显。在此不得不重申的是,正是在jvzquC41yy}/e|xp0et0otx|{1sluƒ~aomy{{sgnn1814<561v814<563:e68;63744tj}rn
5.《曹全碑》专题6:基本笔法临习动态图图二“直”、“登”二字的横画如体操运动员拉开一字腿,上身匀称而收紧。图三“命”字左撇右捺如一把大伞,将中间部分完全罩住,而“元”字竖弯钩则这种上紧下松的结构是形成妍媚秀丽艺术风格的要素之一,它与质朴自然的古拙之美,都是美的化境,不可偏斥。 这里先带大家一起来学习几个最实用的基本笔画jvzq<84yyy4489iqe0ipo8hqpvkov8741282286216733;<94a713?;::39:0|mvon
6.ALMA利用光度质量比(L/M)作为演化阶段的粗略指标,我们惊喜地发现DGF的弥散能够很好的被L/M解释,即随着L/M增加,致密气体的比率有着显著的增加(从1%提升至10%;图2)。“这一相关性从统计学显著的角度绘制出了大质量恒星形成区动态图景。”论文2第一作者,北京大学博士研究生许峰玮说,“正是QUARKS项目大样本的优势使jvzq<84yyy4tjjt0ce4dp87242\ft8}yfv5l{s142853;4v42853;57a9:63@=30jznn
7.ALMA利用光度质量比(L/M)作为演化阶段的粗略指标,我们惊喜地发现DGF的弥散能够很好的被L/M解释,即随着L/M增加,致密气体的比率有着显著的增加(从1%提升至10%;图2)。“这一相关性从统计学显著的角度绘制出了大质量恒星形成区动态图景。”论文2第一作者,北京大学博士研究生说,“正是QUARKS项目大样本的优势使类似的jvzq<84yyy4tjk3ecu4dp8p{fv814=4mll€32;9142853;4v42853;69a9::6B860jznn
8.圆锥展开动态图,圆柱展开动态图(第4页)圆锥展开动态图,480_360gif 动态图 动图圆锥侧面展开正方体种展开图也确实是很有成就感的308_304gif 动态图 动图g-sync钟摆演示怎么用440_230gif 动态图 动图360_360gif 动态图 动图499_422gif 动态图 动图球和圆锥面的配合640_7gif 动态图 动图jvzq<84yyy4ec|mcpi{/exr1rqyukvla45:83:56a64ivvq
9.合作gif合作gif动态图合作gif素材商务人物元素GIF动态图 4K 4k商务合作洽谈剪影背景视频企业宣传背景(MP4+Gif) 团队员工商务工作电脑元素GIF动态图团队元素[gif] 在背景下两位商务人士正在握手合作团结握手企业团结团结合作平台商务人士合作握手 手拿绳子形成向上箭头团队协作团队合作激励提升箭头提升 jvzquC41yy}/7:rk|0ipo8xq/u{dcr433677;:=0jvsm
10.PyTorch:计算图与动态图机制腾讯云开发者社区PyTorch动态图机制通过计算图实现高效梯度计算,其中结点表示数据(如张量),边表示运算。叶子结点标志梯度存储,grad_fn记录创建函数。动态图运算与搭建同步,灵活易调,对比静态图的先搭图后运算更适应深度学习需求。jvzquC41enuvf7ygpekov7hqo1jfxnqqrgx0c{ykenk04:;298?
11.发动机工作原理,发动机工作原理动态图发动机工作原理,发动机工作原理动态图 发动机的工作原理是将内能转化为机械能。发动机是一种能将其他形式的能量转化为机械能的机器,包括内燃机、往复式活塞发动机、外燃机、斯特林发动机、蒸汽机等。喷气发动机、电动机等,如内燃机、通常将化学能转化为;汽车发动机的工作原理1、四冲程汽油机是将空气和汽油按一定比例混合,jvzquC41o0vdc~yq0eun0ls1z1998:45:8798>=0jvsm
12.初中·《溶液的形成》试讲稿这两种溶液是怎样形成的呢?老师将蔗糖溶液整个形成过程的微观动态图投影到大屏幕 上,大家可以从微观角度分析一下,这两种溶液是如何形成的?我们知道分子之间是有空隙的, 从微观看,其实是蔗糖分子在水分子的作用下均一的分散到水分子中间,形成一种混合物—— 蔗糖溶液。那么食盐溶于水从微观看是怎样形成氯化钠溶液。我们知道食盐主要成分是氯化钠jvzquC41o0nvcwlicpm/j~fvw0ipo8okcqyik866:5<437mvon
13.今日春分,二十四节气,24张动态图,又被中式美学惊艳到了!|小雪霜降:秋天的最后一个节气,含天气渐冷、初霜出现的意思。每年阳历10月23日前后,地面上散热很多,温度骤然下降到0度以下,空气中的水蒸气在地面或植物上直接凝结形成细微的冰霜,形成漂亮的“树挂”或“草挂”。霜降节气是慢性胃炎和胃十二指肠溃疡病复发的高峰期,应多食栗子、葡萄和冬瓜。 jvzq<84m0uooc7hqo0io1jwvkerfa?8:96=25?5a39ic;:92227:29~qc{4ivvq