MindSpore:[Gradoperation]mindspore复合函数求导

问题描述:

【功能模块】

mindspore.ops.GradOperation

【操作步骤&问题现象】

我想实现如下所示的一个函数

可是在华为的官方实现中,只有mindspore.ops.GradOperation,我有两个问题:第一个我怎么去求这个复合函数的二阶导f(interpolate(x))?第二个是我怎么控制Tensor是否进行反向传播?pytorch可以这样控制

for p in self.D.parameters():
            p.requires_grad = False

mindspore应该怎么设置呢?set_grad(requires_grad=False)是否可以控制呢

【软硬件信息】

Ascend910A

Python3.7.5
mindspore1.1.1

gcc7.3.0

【日志信息】(可选,上传日志内容或者附件)

 

解决方案:

第一点,我们当前的求反向接口是GradOperation,支持对网络和函数求反向。

如果`f(interpolate(x))`在网络内部是会对其自动微分,如果你想单独只对这个求微分,当前并不支持这种操作。

第二点,MindSpore也有控制Parameter是否求梯度的接口。

就是在初始化Parameter的时候,设置传入参数requires_grad为True或者False。

例如,self.weight = Parameter([1.0, 2.0, 3.0], name="weight", requires_grad=False)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值