MindSpore直接将Tensor从布尔值转换为浮点数导致错误Error: IndexError: index 1 is out of bounds for dimension with size 1
收藏回复举报
MindSpore直接将Tensor从布尔值转换为浮点数导致错误Error: IndexError: index 1 is out of bounds for dimension with size 1
发表于2023-03-20 19:16:11
0 查看

1 系统环境

硬件环境(Ascend/GPU/CPU): GPU

MindSpore版本: 1.9.0

执行模式(PyNative/ Graph): Graph模式

Python版本: 3.7.13

操作系统平台: 不限

2 报错信息

2.1 问题描述

直接将Tensor从布尔值转换为浮点数,导致错误的结果在类型转换前更改为numpy后,结果正确。

2.2 报错信息

Error: IndexError: index 1 is out of bounds for dimension with size 1

2.3 脚本代码(代码格式,可上传附件)

import mindspore as ms
import mindspore.nn as nn
import mindspore.ops as ops
from mindspore import Tensor


class ConditionalNet(nn.Cell):
    def __init__(self):
        super().__init__()
        self.bool_list = Tensor([True, False])  # works ok if self.bool_list = [True, False]
        self.y = Tensor([1])
        self.z = Tensor([3, 4])

    def construct(self):
        output = []
        for i in range(len(self.bool_list)):
            if self.bool_list[i]:
                output.append(self.y[i])
            else:
                output.append(self.z[i])
        return ops.stack(output)

if __name__ == '__main__':
    ms.set_context(mode=ms.GRAPH_MODE)
    net = ConditionalNet()
    print(net())  # expected: 1, 4

3 根因分析

******此处由用户补充详细的定位过程******

4 解决方案

******此处由用户填写******

包含文字方案和最终脚本代码

支持上传附件

我要发帖子