NVIDIA 优化框架

为 Jetson 平台安装 TensorFlow

摘要

本指南提供在 Jetson 平台上安装 TensorFlow 的说明。


Jetson 平台上的 TensorFlow

TensorFlow™ 是一个使用数据流图进行数值计算的开源软件库。图中的节点表示数学运算,而图的边表示在它们之间流动的多维数据数组(张量)。这种灵活的架构使您可以将计算部署到一个或多个 CPU 或 GPU,无论是在台式机、服务器还是移动设备中,而无需重写代码。

Jetson AGX Orin

利用世界上最强大的 AI 计算机(适用于节能型自主机器)将您的下一代产品变为现实。这款开发者套件拥有高达 275 TOPS 的性能,可运行 NVIDIA AI 软件堆栈,让您能够为制造业、物流业、零售业、服务业、农业、智慧城市、医疗保健和生命科学领域创建先进的机器人技术和边缘 AI 应用。

Jetson Orin NX

NVIDIA Jetson Orin NX 在小型系统级模块中为边缘带来了超级计算机级别的性能。高达 21 TOPS 的加速计算提供了强大的动力,可以并行运行现代神经网络并处理来自多个高分辨率传感器的数据——这是完整 AI 系统的要求。

Jetson AGX Xavier

适用于 Jetson 平台的 NVIDIA Jetson AGX Xavier 开发者套件是世界上首款面向自主机器的 AI 计算机。Jetson AGX Xavier 在功耗低于 30W 的嵌入式模块中提供了 GPU 工作站的性能。

1.1. Jetson 平台上 TensorFlow 的优势

为 Jetson 平台安装 TensorFlow 使您可以访问轻量级移动平台上的最新版本框架,而不会受限于 TensorFlow Lite。


在为 Jetson 安装 TensorFlow 之前,请确保您:

  1. 在您的 Jetson 设备上安装 JetPack
  2. 安装 TensorFlow 所需的系统软件包
    复制
    已复制!
                

    $ sudo apt-get update $ sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran

  3. 安装并升级 pip3
    复制
    已复制!
                

    $ sudo apt-get install python3-pip $ sudo python3 -m pip install --upgrade pip $ sudo pip3 install -U testresources setuptools==65.5.0

  4. 安装 Python 包依赖项。
    复制
    已复制!
                

    $ sudo pip3 install -U numpy==1.22 future==0.18.2 mock==3.0.5 keras_preprocessing==1.1.2 keras_applications==1.0.8 gast==0.4.0 protobuf pybind11 cython pkgconfig packaging h5py==3.7.0


注意

从 20.02 TensorFlow 版本开始,软件包名称已从 tensorflow-gpu 更改为 tensorflow。有关更多信息,请参阅关于 升级 TensorFlow 的章节。

使用 pip3 安装 TensorFlow。此命令将安装与 JetPack 5.1.2 兼容的最新版本 TensorFlow。

复制
已复制!
            

$ sudo pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v512 tensorflow==2.12.0+nv23.06


如果要安装旧版本的 TensorFlow,请发出以下命令

复制
已复制!
            

$ sudo pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v$JP_VERSION tensorflow==$TF_VERSION+nv$NV_VERSION

其中

JP_VERSION
您正在使用的 JetPack 的主版本和次版本,例如 JetPack 4.2.2 为 42,JetPack 3.3.1 为 33
注意

对于 JetPack 版本 5.0.2 和 4.6.1,JP_VERSION 包括补丁版本,因此分别为 502461,而不是 5046

TF_VERSION
TensorFlow 的已发布版本,例如 2.11.01.15.5
NV_VERSION
TensorFlow 的每月 NVIDIA 容器版本,例如 23.01
注意

您尝试安装的 TensorFlow 版本必须受您正在使用的 JetPack 版本支持。此外,对于旧版本,软件包名称可能有所不同。有关一些最新的 TensorFlow 版本及其相应的软件包名称,以及 NVIDIA 容器和 JetPack 兼容性的列表,请参阅 TensorFlow For Jetson Platform 发行说明


例如,要安装截至 22.09 版本的 TensorFlow 2.9.1,请使用以下命令

复制
已复制!
            

$ sudo pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v502 tensorflow-gpu==2.9.1+nv22.09

3.1. 安装多个 TensorFlow 版本

如果您希望同时拥有多个 TensorFlow 版本,可以使用虚拟环境来实现。请参见下文。

设置虚拟环境

首先,安装 virtualenv 软件包并创建一个新的 Python 3 虚拟环境

复制
已复制!
            

$ sudo apt-get install virtualenv $ python3 -m virtualenv -p python3 <chosen_venv_name>


激活虚拟环境

接下来,激活虚拟环境

复制
已复制!
            

$ source <chosen_venv_name>/bin/activate

安装所需版本的 TensorFlow 及其依赖项

复制
已复制!
            

$ pip3 install -U numpy grpcio absl-py py-cpuinfo psutil portpicker six mock requests gast h5py astor termcolor protobuf keras-applications keras-preprocessing wrapt google-pasta setuptools testresources $ pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v51 tensorflow==$TF_VERSION+nv$NV_VERSION


停用虚拟环境

最后,停用虚拟环境

复制
已复制!
            

$ deactivate


运行特定版本的 TensorFlow

设置虚拟环境后,只需激活它即可访问特定版本的 TensorFlow。请确保在使用后停用环境

复制
已复制!
            

$ source <chosen_venv_name>/bin/activate $ <Run the desired TensorFlow scripts> $ deactivate

3.2. 升级 TensorFlow

要升级到更新版本的 TensorFlow(如果有),请使用“upgrade”标志运行安装命令

复制
已复制!
            

$ sudo pip3 install --upgrade --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v51 tensorflow==2.11.0+nv23.01


关于此任务

要验证 TensorFlow 是否已成功安装在您的设备上,您需要启动 Python 提示符并导入 TensorFlow。

步骤

  1. 从终端运行
    复制
    已复制!
                

    $ python3

  2. 导入 TensorFlow
    复制
    已复制!
                

    >>> import tensorflow

    如果 TensorFlow 安装正确,此命令应执行且不会出错。


性能模型

建议选择正确的性能模式,以便在给定的能耗限制下获得最佳性能。有一个命令行工具 (nvpmodel) 可用于更改性能模式。为了检查当前的性能模式,请发出

复制
已复制!
            

$ sudo nvpmodel -q --verbose


要将模式更改为 MAX-N,请发出

复制
已复制!
            

$ sudo nvpmodel -m 0


有关更多信息,请参阅:

Jetson Xavier 上的交换空间

在 Jetson Xavier 上,某些应用程序可能会耗尽内存(CPU 和 GPU 之间共享 16GB)。可以通过在外部存储器上创建交换分区来解决此问题。通常 4GB 的交换空间就足够了。


可以使用 pip3 uninstall 命令轻松卸载 TensorFlow,如下所示

复制
已复制!
            

$ sudo pip3 uninstall -y tensorflow


注意

如果您使用的是 20.02 版本之前的 TensorFlow 版本,则软件包名称为 tensorflow-gpu,您需要运行以下命令来卸载 TensorFlow。有关更多信息,请参阅 TensorFlow For Jetson Platform 发行说明

复制
已复制!
            

$ sudo pip3 uninstall -y tensorflow-gpu



加入 NVIDIA Jetson 和嵌入式系统社区 讨论特定于 Jetson 平台的问题。

声明

本文档仅供参考,不应被视为对产品的特定功能、条件或质量的保证。NVIDIA Corporation(“NVIDIA”)对本文档中包含信息的准确性或完整性不作任何明示或暗示的陈述或保证,并且对本文档中包含的任何错误不承担任何责任。NVIDIA 对因使用此类信息或因使用此类信息而可能导致的侵犯第三方专利或其他权利的行为的后果或使用不承担任何责任。本文档不构成对开发、发布或交付任何材料(如下定义)、代码或功能的承诺。

NVIDIA 保留随时修改、增强、改进和对本文档进行任何其他更改的权利,恕不另行通知。

客户应在下订单前获取最新的相关信息,并应验证此类信息是否为最新且完整。

NVIDIA 产品根据订单确认时提供的 NVIDIA 标准销售条款和条件进行销售,除非 NVIDIA 和客户的授权代表签署的单独销售协议(“销售条款”)另有约定。NVIDIA 特此明确反对将任何客户一般条款和条件应用于购买本文档中引用的 NVIDIA 产品。本文档不直接或间接地构成任何合同义务。

NVIDIA 产品并非设计、授权或保证适用于医疗、军事、航空、航天或生命支持设备,也不适用于 NVIDIA 产品的故障或故障可能合理预期会导致人身伤害、死亡、财产或环境损害的应用。NVIDIA 对在上述设备或应用中包含和/或使用 NVIDIA 产品不承担任何责任,因此,此类包含和/或使用由客户自行承担风险。

NVIDIA 不保证基于本文档的产品适用于任何特定用途。NVIDIA 不一定对每个产品的所有参数进行测试。客户有责任评估和确定本文档中包含的任何信息的适用性,确保产品适合并满足客户计划的应用,并为该应用执行必要的测试,以避免应用或产品的默认设置。客户产品设计的缺陷可能会影响 NVIDIA 产品的质量和可靠性,并可能导致超出本文档中包含的附加或不同的条件和/或要求。NVIDIA 对可能基于或归因于以下原因的任何默认设置、损坏、成本或问题不承担任何责任: (i) 以任何违反本文档的方式使用 NVIDIA 产品,或 (ii) 客户产品设计。

本文档未授予 NVIDIA 专利权、版权或其他 NVIDIA 知识产权下的任何明示或暗示的许可。NVIDIA 发布的关于第三方产品或服务的信息不构成 NVIDIA 授予使用此类产品或服务的许可,也不构成对其的保证或认可。使用此类信息可能需要获得第三方在其专利或其他知识产权下的许可,或获得 NVIDIA 在其专利或其他知识产权下的许可。

仅当事先获得 NVIDIA 书面批准,在不进行更改且完全遵守所有适用的出口法律和法规的情况下复制,并附带所有相关的条件、限制和声明,才允许复制本文档中的信息。

本文档和所有 NVIDIA 设计规范、参考板、文件、图纸、诊断程序、列表和其他文档(统称为“材料”)均按“原样”提供。NVIDIA 对材料不作任何明示、暗示、法定或其他形式的保证,并明确声明不承担所有关于不侵权、适销性和特定用途适用性的暗示保证。在法律未禁止的范围内,在任何情况下,NVIDIA 均不对因使用本文档而引起的任何损害(包括但不限于任何直接、间接、特殊、附带、惩罚性或后果性损害,无论如何造成且无论责任理论如何)承担责任,即使 NVIDIA 已被告知此类损害的可能性。尽管客户可能因任何原因遭受任何损害,但 NVIDIA 对本文所述产品的客户的总体和累积责任应根据产品的销售条款进行限制。

HDMI

HDMI、HDMI 标志和 High-Definition Multimedia Interface 是 HDMI Licensing LLC 的商标或注册商标。

OpenCL

OpenCL 是 Apple Inc. 的商标,已获得 Khronos Group Inc. 的许可使用。

商标

NVIDIA、NVIDIA 徽标以及 cuBLAS、CUDA、DALI、DGX、DGX-1、DGX-2、DGX Station、DLProf、Jetson、Kepler、Maxwell、NCCL、Nsight Compute、Nsight Systems、NvCaffe、PerfWorks、Pascal、SDK Manager、Tegra、TensorRT、Triton Inference Server、Tesla、TF-TRT 和 Volta 是 NVIDIA Corporation 在美国和其他国家/地区的商标和/或注册商标。其他公司和产品名称可能是与其相关的各自公司的商标。

© 2018-2025 NVIDIA Corporation & Affiliates。保留所有权利。 上次更新时间:2025 年 1 月 29 日。