Pytorch迁移到Mindspore对应API不能使用
收藏回复举报
Pytorch迁移到Mindspore对应API不能使用
t('forum.solved') 已解决
发表于2023-04-06 11:19:41
0 查看

环境:Windows10,cpu,pytorch→mindspore

问题描述:

在训练模型的时候:

cke_128708.png

通过debug定位到,在模型model的construct中有这样一行代码:(备注:debug过程中发现,是for data in dataset.create_dict_iterator():训练第3次进入到该行代码才会卡住)

cke_3815.png

其中S和labels都是(64,16)的tensor,clamp是将1-S的元素控制在0~2之间,.t()是转置方法

迁移到mindspore中是这样

cke_16095.png

但是迁移过来后,debug或者运行的时候就卡在这里,debug第三次到该代码也会报错,而且这次和下次可能报的错不一样:

cke_7672.png

cke_5202.png

cke_1888.png

然而我用numpy作为中转,将Mindspore的tensor类型转为pytorch的tensor类型,然后再用pytorch的方法实现这个操作,训练过程又是可以跑的,转换如下:

cke_59139.png

但是这个操作其实就很简单,Mindpsore的API中也可以找到对应的方法,就是ops.clip_by_value()做元素大小控制,transpose做转置,为什么就会卡住。

本帖最后由 匿名用户2023/04/06 11:42:16 编辑

我要发帖子