MindSpore报错:AttributeError: 'Tensor' has no attribute ''

1 报错描述

1.1 系统环境

Hardware Environment(Ascend/GPU/CPU): Ascend

Software Environment:

-- MindSpore version (source or binary): 1.6.0

-- Python version (e.g., Python 3.7.5): 3.7.6

-- OS platform and distribution (e.g., Linux Ubuntu 16.04): 4.19.36-vhulk1907.1.0.h619.eulerosv2r8.aarch64

-- GCC/Compiler version (if compiled from source):

1.2 基本信息

1.2.1 脚本

训练脚本构建了一个简单的张量Tensor,并尝试去获取张量中的数据。脚本如下:

import numpy as np
from mindspore import Tensor
a = Tensor(np.arange(10, 16).reshape(2, 3).astype(np.float32))
print(a.data)

1.2.2 报错

这里报错信息如下:

Traceback (most recent call last):
 File "demo.py", line 4, in <module>
  print(a.data)
AttributeError: 'Tensor' object has no attribute 'data'

2 原因分析

​ 在MindSpore中,Tensor对象并无属性data。而在脚本中第4行代码发现了尝试通过调用Tensor张量的data属性,获取Tensor中的数据。

​ 通过官方文档查询Tensor可以发现,并未在官方公布属性中,查找到Tensor的data属性。 

​ 其实,要想获取Tensor中的数据,可以直接打印该Tensor,也可以通过asnumpy属性转化为numpy进行输出,或者其他方法转换。

3 解决方法

基于上面已知的原因,很容易做出如下修改: 

此时执行成功,输出如下:

[[10. 11. 12.]

[13. 14. 15.]]

4 总结

定位报错问题的步骤:

1、 找到报错的用户代码行: print(a.data);

2、 根据日志报错信息中的关键字,缩小分析问题的范围:AttributeError,该关键字表示属性错误;

3、需要重点关注变量属性的正确性。

5 参考文档

5.1 Tensor算子API接口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个`AttributeError`通常发生在尝试调用一个对象的方法或属性,但该对象实际上并没有这个属性或方法。在你的问题中,你提到了`ImageDraw`对象,这是PIL(Python Imaging Library)中的一个模块,用于在图像上绘图。 `textsize` 是一个常见的方法,用于计算文本在给定字体和大小下占用的宽度和高度。如果你遇到`AttributeError: 'ImageDraw' object has no attribute 'textsize'`,这可能有以下几种情况: 1. **版本差异**:`textsize` 方法在PIL 3.4.0 版本后被弃用,而推荐使用`font.getsize(text)`代替。如果你使用的是较旧版本,可能需要更新到最新版,或者按照新方法处理文本尺寸。 2. **导入问题**:确保你在代码中正确地导入了`PIL.ImageDraw`和`PIL.ImageFont`模块,因为`textsize`方法是在`ImageFont`中找到的。 3. **对象初始化**:确保你创建的`ImageDraw`对象实例正确地初始化了一个`ImageFont`对象,因为`textsize`依赖于一个有效的字体对象。 4. **拼写错误**:检查你的代码中是否正确地使用了`textsize`,有时可能是由于拼写错误导致的,例如`ImageDraw.textsize()`而不是`ImageDraw.textsize()`。 修复这个问题的一般步骤是: 1. 检查导入语句,确保正确导入了`ImageDraw`和`ImageFont`。 2. 确保`ImageDraw`对象已经关联了一个`ImageFont`对象。 3. 如果在使用`textsize`,请确认使用的是`font.getsize(text)`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值