Pytorch
简介
在嵌入式边缘设备上部署PyTorch模型是将AI应用程序变为现实的关键一步。NVIDIA Jetson平台凭借其强大的GPU计算能力和全面的AI软件栈,已成为运行PyTorch模型的理想选择。
然而,由于Jetson基于ARM架构,与常见的x86服务器环境不同,在其上设置PyTorch环境无法通过简单的pip install命令完成。开发者经常面临诸如寻找正确版本的预编译包、管理复杂依赖关系以及执行必要的性能优化等挑战。
本文旨在提供一份清晰实用的指南,重点介绍如何在Jetson平台上快速正确地配置PyTorch环境,帮助您在Jetson上开始PyTorch开发之旅。
图片来源:
pypi
在reComputer Nvidia Jetson上安装PyTorch
设置您的环境
-
JetPack 5/6: 确保您的reComputer上已安装NVIDIA JetPack 5或6。JetPack包含在NVIDIA Jetson平台上开发所需的所有必要库和工具。
-
CUDA: 验证CUDA已安装并正确配置。PyTorch依赖CUDA进行GPU加速。请确保已安装的CUDA版本与您计划安装的PyTorch版本兼容。
在终端中输入
cat /etc/nv_tegra_release和nvcc -V。如果返回的内容与下面的屏幕截图类似,则表明相应的环境已在您的Jetson上正确安装。
使用.whl文件安装PyTorch
要在具有指定JetPack和CUDA版本的reComputer上安装PyTorch,请按照以下步骤操作:
下载PyTorch Wheel文件
根据您的JetPack、CUDA版本和Python版本选择正确的wheel文件:
-
JetPack 7:
-
JetPack 6.1 & 6.2 (L4T R36.4) + CUDA 12.6:
-
如果出现
ImportError: libcusparseLt.so.0: cannot open shared object file: No such file or directory,请安装新版本cuSPARSELt 0.8.1(选择Linux>arrch64-jetson>Native>Ubuntu>22.04>deb(Local))和CUDA 12.6(选择Linux>arrch64-jetson>Native>Ubuntu>22.04>deb(Local)) -
如果torchvision报告错误,请卸载它并按照后续步骤通过代码编译torchvision 0.20.0。
-
JetPack 6.0 (L4T R36.2 / R36.3) + CUDA 12.2:
- PyTorch 2.3 重命名为
torch-2.3.0-cp310-cp310-linux_aarch64.whl - torchvision 0.18 重命名为
torchvision-0.18.0a0+6043bc2-cp310-cp310-linux_aarch64.whl
- PyTorch 2.3 重命名为
-
JetPack 6.0 DP (L4T R36.2.0):
-
JetPack 5.x:
- JetPack 5.1 (L4T R35.2.1) / JetPack 5.1.1 (L4T R35.3.1) / JetPack 5.1.2 (L4T R35.4.1):
- JetPack 5.1 (L4T R35.2.1) / JetPack 5.1.1 (L4T R35.3.1):
- JetPack 5.0 (L4T R34.1) / JetPack 5.0.2 (L4T R35.1) / JetPack 5.1 (L4T R35.2.1) / JetPack 5.1.1 (L4T R35.3.1):
安装Wheel文件
-
打开终端:
- 导航到您下载
.whl文件的目录。
- 导航到您下载
-
安装:
bashsudo apt-get install python3-pip libopenblas-base libopenmpi-dev libomp-dev pip3 install 'Cython<3' pip3 install numpy sudo pip3 install <filename>.whl将
<filename>替换为下载的.whl文件的名称。
验证安装
要验证PyTorch已正确安装在您的系统上,请从终端启动一个交互式Python解释器并运行以下命令:
```python
import torch
print(torch.__version__)
print('CUDA available: ' + str(torch.cuda.is_available()))
print('cuDNN version: ' + str(torch.backends.cudnn.version()))
a = torch.cuda.FloatTensor(2).zero_()
print('Tensor a = ' + str(a))
b = torch.randn(2).cuda()
print('Tensor b = ' + str(b))
c = a + b
print('Tensor c = ' + str(c))
```
```python
import torchvision
print(torchvision.__version__)
```
更多教程内容
| 教程 | 类型 | 描述 |
|---|---|---|
| 官方PyTorch教程 | 文档 | 提供完整学习路径的官方PyTorch教程。 |
| PyTorch开发文档 | 文档 | PyTorch提供的官方PyTorch开发文档。 |
