算子支持类

Ascend CPU GPU 环境准备 初级 中级 高级

查看源文件

Q:使用MindSpore-1.0.1版本在图数据下沉模式加载数据异常是什么原因?

A:应该是construct中直接使用了带有axis属性的算子,比如P.Concat(axis=1)((x1, x2))这种,建议把算子在__init__中初始化 像这样

from mindspore import nn
from mindspore.ops import operations as P

class Net(nn.Cell):
    def __init__(self):
        super(Net, self).__init__()
        self.concat = P.Concat(axis=1)
    def construct(self, x, y):
        out = self.concat((x, y))
        return out

Q:nn.Embedding层与PyTorch相比缺少了Padding操作,有其余的算子可以实现吗?

A:在PyTorch中padding_idx的作用是将embedding矩阵中padding_idx位置的词向量置为0,并且反向传播时不会更新padding_idx位置的词向量。在MindSpore中,可以手动将embedding的padding_idx位置对应的权重初始化为0,并且在训练时通过mask的操作,过滤掉padding_idx位置对应的Loss


Q:Operations中Tile算子执行到__infer__value值为None,丢失了数值是怎么回事?

A:Tile算子的multiples input必须是一个常量(该值不能直接或间接来自于图的输入)。否则构图的时候会拿到一个None的数据,因为图的输入是在图执行的时候才传下去的,构图的时候拿不到图的输入数据。 相关的资料可以看相关文档的“其他约束”。


Q:官网的LSTM示例在Ascend上跑不通

A:目前LSTM只支持在GPU和CPU上运行,暂不支持硬件环境,您可以点击这里查看算子支持情况。


Q:conv2d设置为(3,10),Tensor[2,2,10,10],在ModelArts上利用Ascend跑,报错:FM_W+pad_left+pad_right-KW>=strideW,CPU下不报错。

A:这是TBE这个算子的限制,x的width必须大于kernel的width。CPU的这个算子没有这个限制,所以不报错。