硬件环境(Ascend/GPU/CPU): GPU
软件环境:
– MindSpore 版本: 1.7.0
执行模式: 静态图(GRAPH) – Python 版本: 3.7.6
– 操作系统平台: linux
将需要优化的参数放入优化器中,直接将Tensor类型的参数放入,由于优化器需要的数据类型是Iterable,导致执行报错。
TypeError: For 'Optimizer', the argument parameters must be Iterable type, but got .
复制
复制
?看报错信息,翻译意思是实参参数必须是Iterable类型,即是可迭代的。
?调试发现self.mask_tensor是Tensor类型,不能进行迭代。
?通过查看文档,可以通过Parameter()更好的对训练参数进行设置。同时Python里有大量内置的iterable类型,如: list,str,tuple,dict等,可以将参数包装成list实现可迭代化。
解决方案说明:把self.mask_tensor改成list类型:[Parameter(self.mask_tensor)],来实现可迭代化。
修改后代码:
修改后程序正常运行。