硬件: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积极和反相反的注册+关联”。
