MindSpore怎样实现求二阶以上的导数
收藏回复举报
MindSpore怎样实现求二阶以上的导数
发表于2023-10-12 10:17:43
0 查看

1 系统环境

硬件环境(Ascend/GPU/CPU): Ascend/GPU/CPU

MindSpore版本: mindspore=2.0.0

执行模式(PyNative/ Graph):不限

Python版本: Python=3.9.7

操作系统平台: 不限

2 报错信息

2.1 问题描述

MindSpore怎样实现求二阶以上的导数,在按照教程的求二阶导上加了一阶,然后报错了

2.2 脚本

class Net(nn.Cell):
    """前向网络模型"""

    def __init__(self):
        super(Net,self).__init__()
        self.sin = ops.Sin()

    def construct(self,x):
        out = self.sin(x)
        return out

x_train = ms.Tensor(np.array([3.1415926]),dtype=ms.float32)

net = Net()
firstgrad = ms.grad(net)
secondgrad = ms.grad(firstgrad)
thirdgrad = ms.grad(secondgrad)

output = secondgrad(x_train)
output1 = thirdgrad(x_train)

#打印结果
result = np.around(output,asnumpy(),decimals=2)
print(result)
print(output1)

2.2 报错信息

RuntimeError:Parameter[0] has no default param

3 根因分析

4 解决方案

******此处由用户填写******

包含文字方案和最终脚本代码

请将正确的脚本打包并上传附件

我要发帖子