NVIDIA Jetson Xavier NX上导入tensorflow报错:AttributeError: module ‘wrapt‘ has no attribute ‘ObjectProxy‘

欢迎大家关注笔者,你的关注是我持续更博的最大动力


原创文章,转载告知,盗版必究


在Jetson Xavier NX上导入tensorflow报错:AttributeError: module 'wrapt' has no attribute 'ObjectProxy'

文章目录:


环境说明:


  • NVIDIA Xavier NX 开发板
  • 安装tensorflow==2.3.0

1 问题说明

1、安装显示已经成功安装了tensorflow

在这里插入图片描述

2、导入tensorflow的时候报错:AttributeError: module 'wrapt' has no attribute 'ObjectProxy'

>>> import tensorflow
2020-10-23 14:09:05.184865: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/zhihui/.local/lib/python3.6/site-packages/tensorflow/__init__.py", line 41, in <module>
    from tensorflow.python.tools import module_util as _module_util
  File "/home/zhihui/.local/lib/python3.6/site-packages/tensorflow/python/__init__.py", line 45, in <module>
    from tensorflow.python import data
  File "/home/zhihui/.local/lib/python3.6/site-packages/tensorflow/python/data/__init__.py", line 25, in <module>
    from tensorflow.python.data import experimental
  File "/home/zhihui/.local/lib/python3.6/site-packages/tensorflow/python/data/experimental/__init__.py", line 96, in <module>
    from tensorflow.python.data.experimental import service
  File "/home/zhihui/.local/lib/python3.6/site-packages/tensorflow/python/data/experimental/service/__init__.py", line 21, in <module>
    from tensorflow.python.data.experimental.ops.data_service_ops import distribute
  File "/home/zhihui/.local/lib/python3.6/site-packages/tensorflow/python/data/experimental/ops/data_service_ops.py", line 25, in <module>
    from tensorflow.python.data.experimental.ops import compression_ops
  File "/home/zhihui/.local/lib/python3.6/site-packages/tensorflow/python/data/experimental/ops/compression_ops.py", line 20, in <module>
    from tensorflow.python.data.util import structure
  File "/home/zhihui/.local/lib/python3.6/site-packages/tensorflow/python/data/util/structure.py", line 26, in <module>
    from tensorflow.python.data.util import nest
  File "/home/zhihui/.local/lib/python3.6/site-packages/tensorflow/python/data/util/nest.py", line 41, in <module>
    from tensorflow.python.framework import sparse_tensor as _sparse_tensor
  File "/home/zhihui/.local/lib/python3.6/site-packages/tensorflow/python/framework/sparse_tensor.py", line 28, in <module>
    from tensorflow.python.framework import composite_tensor
  File "/home/zhihui/.local/lib/python3.6/site-packages/tensorflow/python/framework/composite_tensor.py", line 27, in <module>
    from tensorflow.python.util import nest
  File "/home/zhihui/.local/lib/python3.6/site-packages/tensorflow/python/util/nest.py", line 1430, in <module>
    _pywrap_utils.RegisterType("ObjectProxy", _wrapt.ObjectProxy)
AttributeError: module 'wrapt' has no attribute 'ObjectProxy'
>>> 

如果你再次导入:import tensorflow as tf,还有可能会出现错误:TypeError: Value already registered for Mapping,反正都是一个问题,请继续看下文吧!

2 解决错误

2.1 找到问题的原因

遇到问题,首先是谷歌、百度,但是结果是没有人遇到这种问题,因此我也就不知道问题该如何解决!

这时候只能从问题的根源寻找问题原因,才能找到解决问题的方式,首先定位到问题出现的代码:/home/zhihui/.local/lib/python3.6/site-packages/tensorflow/python/util/nest.py,于是就到这个文件中去找_wrapt.ObjectProxy,然后通过代码定位到wrapt是一个python的库包

nest.py代码中有导入:

import wrapt as _wrapt

因此我想到这可能是wrapt版本的问题导致的部分属性已经不存在了

1、查看Jetson Xavier NX上安装的wrapt的版本,结果是:1.12.1

zhihui@zhihui-desktop:~$ pip3 show wrapt
Name: wrapt
Version: 1.12.1
Summary: Module for decorators, wrappers and monkey patching.
Home-page: https://github.com/GrahamDumpleton/wrapt
Author: Graham Dumpleton
Author-email: Graham.Dumpleton@gmail.com
License: BSD
Location: /home/zhihui/.local/lib/python3.6/site-packages
Requires: 
Required-by: tensorflow
zhihui@zhihui-desktop:~$ 

2、查看我个人PC上安装wrapt的版本,结果是:1.11.1

C:\Users\93176>pip show wrapt
Name: wrapt
Version: 1.11.1
Summary: Module for decorators, wrappers and monkey patching.
Home-page: https://github.com/GrahamDumpleton/wrapt
Author: Graham Dumpleton
Author-email: Graham.Dumpleton@gmail.com
License: BSD
Location: c:\programdata\anaconda3\lib\site-packages
Requires:
Required-by: -ensorflow-gpu, tensorflow-gpu, astroid

C:\Users\93176>python
Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import wrapt as _wrapt
>>> _wrapt.ObjectProxy
<class 'ObjectProxy'>
>>>

因此确定是wrapt版本的问题

2.2 最终错误的解决方式

1、降低wrapt的版本到1.11.1

pip3 install wrapt==1.11.1

2、再次在NVIDIA Jetson Xavier NX导入tensorflow

```python
zhihui@zhihui-desktop:~$ python
Python 3.6.9 (default, Jul 17 2020, 12:50:27) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
2020-10-23 14:43:46.641605: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.2
>>> 

而且用:tf.test.is_gpu_available() 返回的也是True,即GPU可用!


在这里插入图片描述




在这里插入图片描述
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Nvidia Jetson Xavier NX 刷机的步骤如下: 1. 下载 JetPack SDK,这是 Nvidia 提供的开发套件,包含了系统镜像、驱动程序、SDK 等。 2. 将 Jetson Xavier NX 连接到电脑上,使用 USB 线连接。 3. 进入恢复模式,按住电源按钮,同时按下复位按钮,等待几秒钟后松开复位按钮,此时 Jetson Xavier NX 进入恢复模式。 4. 在电脑上运行 JetPack SDK,选择刷机选项,按照提示进行操作。 5. 等待刷机完成,重新启动 Jetson Xavier NX。 注意事项: 1. 刷机过程中不要断开电源或 USB 连接。 2. 刷机前备份重要数据,刷机会清空所有数据。 3. 刷机前确认电脑上已安装好 JetPack SDK。 4. 刷机前确认 Jetson Xavier NX 进入恢复模式。 ### 回答2: NVIDIA Jetson Xavier NX 是一种高性能嵌入式计算机,它可以针对人工智能、机器学习和深度学习进行优化。如果我们想要定制该计算机系统,或更改操作系统,我们就需要进行刷机。 首先,我们需要下载所需的固件。官方提供了很多版本的系统供下载使用,我们需要选择最适合我们需求的版本。在下载完毕后,我们需要准备一个SD卡,并安装软件(Win32 Disk Imager)用于将系统镜像烧录到SD卡中,该软件可以从官网下载。 接下来,我们需要在启动时进入系统设置模式(按住电源按钮,同时按下重置按钮,松开重置按钮后再松开电源按钮),然后连接启动设备。启动设备可以是一个USB设备或者一个SD卡,使计算机能够识别新的系统。 然后,我们需要输入以下命令进入可引导设备: ``` # For USB device: $ reboot usb # For SD Card: $ reboot recovery ``` 一旦我们进入了引导设备,我们就可以开始刷机过程。 使用以下命令可以查看设备列表: ``` # 查看设备列表 $ lsblk # 显示格式化设备 $ sudo fdisk -l ``` 使用以下命令可以使用该镜像文件在SD卡上设置新系统: ``` $ sudo dd if=jetpack_4.5.1_xavier_nx_sd_card.zip of=/dev/mmcblk0 bs=1M status=progress ``` 注意:该命令将删除SD卡上的所有数据。如果我们希望保留现有数据,则可以使用GUI应用程序Etcher。 在完成SD卡设置后,我们将启动计算机,然后进入恢复模式。在此处,我们可以使用以下命令安装新的系统: ``` $ sudo chmod +x ./flash.sh $ sudo ./flash.sh jetson-xavier-nx-devkit mmcblk0p1 ``` 该命令将卸载并格式化应用存储器,并在其中安装新的系统。 完成安装后,我们可以重新启动计算机。此时,我们已经完成了nvidia jetson xavier nx 的刷机过程。 ### 回答3: NVIDIA Jetson Xavier NX是一款非常强大的嵌入式计算机,可以用于各种AI、机器人和自动化控制应用。它内置了基于ARM架构的六核CPU和512核Volta GPU,同时还拥有8GB LPDDR4x内存和16GB eMMC存储空间。然而,当我们用该设备进行AI开发时,可能需要刷机来安装新的操作系统或驱动程序。下面是关于NVIDIA Jetson Xavier NX刷机的详细介绍。 首先,为了避免误操作导致设备变砖,我们需要备份当前系统的镜像。可以使用NVIDIA提供的工具JetPack进行备份。在备份完成后,我们可以下载新的系统包,并使用JetPack进行安装。 在执行刷机操作之前,需要使用Micro-USB电缆将Jetson Xavier NX与PC连接,并进入bootloader模式。在此模式下,设备可以通过USB进行刷机,并且没有操作系统可以干扰刷机过程。连接好设备后,我们可以使用JetPack中的“Flash OS”选项。 刷机过程可能需要一段时间,具体时长取决于设备所需的软件包大小和PC的性能。在刷机过程中,JetPack会在设备上安装各种软件包、驱动和库文件,需要有足够的存储容量和内存空间。为了提升效率和减少出率,我们应该尽量在稳定的网络环境下进行刷机,并选择可靠的软件源。 刷机完成后,我们需要重新启动设备,并检查新的操作系统是否正常运行。此时可以进行一些简单的操作测试,例如运行NVIDIA自带的示例程序或自己编写的简单的Python脚本。如有必要,可以安装额外的软件包和库文件,以满足特定的应用需求。 总之,刷机是在使用NVIDIA Jetson Xavier NX进行AI开发时不可避免的一步操作,它帮助我们安装新的系统,修复已有的故障,从而有效地提高开发效率和开发质量。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值