当前位置: 首页 > 网络应用技术

带您了解AKG积极和反向操作员注册+关联流程

时间:2023-03-08 19:59:18 网络应用技术

  硬件:EuleroSV2R8.Aarch64

  思维孔:1.1

  占用注册需要编译和安装框架才能生效,因此Mindspore的源代码已在默认环境中,并且可以编译和安装

  这里

  阳性:y = x ** 2

  反向:y = 2*x

  首先引入积极

  路径:Mindspore/akg/python/akg/ms/cce/,创建cus_square.py

  请参阅相同级别的计算逻辑的定义,定义向量平方的计算逻辑

  然后将内容添加到__init__.py文件中的同一级别

  到达路径:Mindspore/OPS/_OP_IMPL/AKG/ASCEND,创建cus_square.py,添加以下代码

  然后在同一级别的__init__.py中添加以下代码

  到:Mindspore/Ops/Operations,创建一个新的_CUS_OPS.PY,添加以下代码

  描述操作员的输入:X,输出输出

  推理_Shape:描述输出数据的形状

  推理_dtype:说明输出数据的类型

  x1_shape:指的是第一个输入形状

  x1_dtype:指的是第一个输入参数的dtype

  然后将原始信息添加到同一目录中的__init__.py文件

  将以下信息添加到Mindspore/CCSRC/Backen的内核功能

  返回思维孔根目录

  输出

  反向操作员的计算逻辑:向量元素的指导,例如y = x^2,然后在指导y` = 2x之后

  实际示例是输入向量[1,4,9]的输出为[2,8,18]

  反向操作员显然是Cussquaregrad。它与前面计算出的平方测量过程相同。仅在此处发布关键代码,并且不会反复描述该过程。

  计算逻辑代码cus_square_grad.py

  登记

  输出

  在源代码Mindspore/Mindspore/ops/_grad/grad_array_ops.py中添加以下代码

  BPROP函数的输入是,正输入X,正输出输出,反向梯度输入端口

  上面的代码是指定运算符Cussquare的反向梯度的计算方法。Cussquaregrad用作功能之一

  渐变= cus_square_grad(x)计算了这件方餐的梯度,但不能直接返回到此梯度

  运算符的反向网络,最后一个返回是DX。请注意,必须将操作员的反向梯度计算放置在整个网络的反向链梯度计算中

  输出

  本文分享了作者:Muzi_007的“ AKG积极和反相反的注册+关联”。