pytorch实践中module 'torch' has no attribute 'form_numpy'问题的解决
来源:互联网 发布:手机扫描编辑软件 编辑:程序博客网 时间:2024/06/08 18:05
最近开始仔细玩了一下pytorch,发现里面有个BUG之前都没有发现。
在测试torch最基本的示例的情况下,居然碰到了个pytorch无法转化numpy为Tensor的问题,呈现的问题如下:
ndscbigdata@ndscbigdata:~/work/change/AI$ pythonPython 3.6.1 (default, Jul 14 2017, 17:08:44) [GCC 4.8.4] on linuxType "help", "copyright", "credits" or "license" for more information.>>> import torch>>> import numpy as np>>> a = np.ones(5)>>> aarray([ 1., 1., 1., 1., 1.])>>> b=torch.form_numpy(a)Traceback (most recent call last): File "<stdin>", line 1, in <module>AttributeError: module 'torch' has no attribute 'form_numpy'>>> print(torch.__version__)0.2.0_3
关于这个问题,很难查找网上对应的解决办法。因此将此问题的解决办法写下来。
在torch的主页上有这样一句话,经过仔细分析才明白其中的意思:
Pylint isn't picking up that torch
has the member function from_numpy
. It's because torch.from_numpy
is actually torch._C.from_numpy
as far as Pylint is concerned.
本身而言,pytorch并不直接包含from_numpy这个方法,而需要通过_C这样的命名空间来调用。
因此利用._C的办法进行测试,果然顺利通过。
>>> b=torch.form_numpy(a)Traceback (most recent call last): File "<stdin>", line 1, in <module>AttributeError: module 'torch' has no attribute 'form_numpy'>>> print(torch.__version__)0.2.0_3>>> c = torch.Tensor(3,3)>>> c1.00000e-32 * -4.4495 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000[torch.FloatTensor of size 3x3]>>> b = torch._C.from_numpy(a)>>> b 1 1 1 1 1[torch.DoubleTensor of size 5]
那么在代码中大部分都是直接torch.from_numpy的方法,直接每个代码添加._C的方式并不可靠。
For reference, you can have Pylint ignore these by wrapping "problematic" calls with the following comments.# pylint: disable=E1101tensor = torch.from_numpy(np_array)# pylint: enable=E1101
同时又看到这样的一段话,才发现有个pylint的工具。
于是重新再次安装一下这个工具。
pip install pylint
然后再测试一下,发现就正常了。ndscbigdata@ndscbigdata:~/work/change/AI$ pythonPython 3.6.1 (default, Jul 14 2017, 17:08:44) [GCC 4.8.4] on linuxType "help", "copyright", "credits" or "license" for more information.>>> import torch>>> import numpy as np>>> a = np.ones(5)>>> b=torch.from_numpy(a)>>> b 1 1 1 1 1[torch.DoubleTensor of size 5]>>>
分析一下原因,可能是由于pytorch安装的时间比pylint较晚,因此之前的pylint没有更新到这个包。
阅读全文
0 0
- pytorch实践中module 'torch' has no attribute 'form_numpy'问题的解决
- Python中module 'urllib' has no attribute 'openurl'问题
- AttributeError: ‘module’ object has no attribute’ 问题
- AttributeError: module 'requests' has no attribute 'get'”,python中”requests模块“get”属性缺失“的错误该如何解决?
- Django 中The 'image' attribute has no file associated with it.出错问题的解决
- AttributeError: 'module' object has no attribute 'Spider' 解决了
- AttributeError: module 'tensorflow' has no attribute 'global_variables_initializer'解决
- 解决 AttributeError: 'module' object has no attribute 'convolution'
- 'module' object has no attribute 'xfeatures2d'(已解决)
- AttributeError: 'module' object has no attribute 'showinfo'(已解决)
- pygame安装问题(1) 'module' object has no attribute 'init'
- AttributeError: 'module' object has no attribute 'post'问题
- 【TensorFlow问题】AttributeError:'module' object has no attribute 'mul'
- 问题AttributeError: ‘module’ object has no attribute ‘sub’
- 【TensorFlow问题】AttributeError:'module' object has no attribute 'mul'
- Python问题分析:AttributeError: module 'sys' has no attribute 'setdefaultencoding'
- pygame安装问题(1) 'module' object has no attribute 'init'
- Py3上的调试问题 AttributeError: module 'types' has no attribute 'ListType'求解
- Apache Spark 2.2.0 中文文档
- java synchronized详解
- leetcode 225. Implement Stack using Queues 双队列实现栈
- 数组、链表、堆栈和队列学习
- jQuery 显示隐藏
- pytorch实践中module 'torch' has no attribute 'form_numpy'问题的解决
- 使用RMAN方式定期清理oracle日志
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 L. The Heaviest Non-decreasing Subsequence Problem(最长非减子序列+思路)
- c#对时间的处理(待添加)
- eclise 部署web工程报 There are no resources that can be added or removed from the server. 解决办法
- 存储管理方法详解
- 【数据库设计】概念设计-数据库ER图基础概念
- RxJava+RxAndroid+OKHTTP实现get post 以及下载图片功能
- Frequent Subsets Problem 进制运算 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛