zoukankan      html  css  js  c++  java
  • MindSpore算子支持类

    MindSpore算子支持类

    Q:在使用Conv2D进行卷积定义的时候使用到了group的参数,group的值不是只需要保证可以被输入输出的维度整除即可了吗?group参数的传递方式是怎样的呢?

    A:Conv2D算子是有这个约束条件的:当group大于1 时,其值必须要与输入输出的通道数相等。不要使用ops.Conv2D,这个算子目前不支持group>1。目前MindSpore只有nn.Conv2D接口支持组卷积,但是有group要与输入输出的通道数相等的约束。 Conv2D算子的

    def __init__(self,

                     out_channel,

                     kernel_size,

                     mode=1,

                     pad_mode="valid",

                     pad=0,

                     stride=1,

                     dilation=1,

                     group=1,

                     data_format="NCHW"):

    函数中带有group参数,这个参数默认就会被传到C++层。

    QConvolution Layers有没有提供3D卷积?

    A:目前MindSpore在Ascend上有支持3D卷积的计划。可以关注官网的支持列表,等到算子支持后会在表中展示。

    QMindSpore支持矩阵转置吗?

    A:支持,请参考mindspore.ops.Transpose的算子教程

    Q:请问MindSpore能算给定任意一个tensor的方差吗?

    A: MindSpore目前暂无可以直接求出tensor方差的算子或接口。不过MindSpore有足够多的小算子可以支持用户实现这样的操作,可以参考class Moments(Cell)来实现。

    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

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

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

    QOperationsTile算子执行到__infer__时,value值为None,丢失了数值是怎么回事?

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

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

    A:目前LSTM只支持在GPU和CPU上运行,暂不支持硬件环境,可以通过MindSpore算子支持列表查看算子支持情况。

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

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

     

    人工智能芯片与自动驾驶
  • 相关阅读:
    【转】各种图(流程图,思维导图,UML,拓扑图,ER图)简介
    【转】C缺陷和陷阱学习笔记
    【转】嵌入式C语言调试开关
    【转】循环冗余校验(CRC)算法入门引导
    idea非web项目打jar包运行
    centos7安装docker 部署springcloud
    centos7 unixodbc 连接mysql
    Mysql Communications link failure 终级解决办法
    https自签证书
    jenkins 打包 springboot
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/14319983.html
Copyright © 2011-2022 走看看