作者:Amandadahl | 来源:互联网 | 2023-08-18 16:31
mindspore里没有self.register_buffer()的API。
然后我在华为开发者论坛上搜了一下,发现有人提过这个问题,给出的解决办法是“MindSpore现在都是Parameter,通过优化器可以控制不训练”。
我其实不是很清楚这句话的意思。
是进行像下面的代码所示的修改吗,把requires_grad设置为False?
#pytorch
self.register_buffer('A', A)#mindspore
self.A = Parameter(A, name="A", requires_grad=False)
**************************************************************************************************************
解答:
搜了一下pytorch里的register_buffer,它的一个主要功能相当于固定部分参数:
(https://www.jianshu.com/p/12a8207149b0)
华为论坛上的说法应该就是指mindspore可以不通过这个函数完成同样的功能。
我在官方给的教程中看到:
(https://www.mindspore.cn/tutorials/zh-CN/master/advanced/modules/optim.html)
因此结论和你猜想的应该差不多,但是要记得在优化器里调用网络的trainable_params()
ps: 图片有点模糊,但是超过100k无法上传,可以去官网看。