Jetson NX 深度学习环境搭建:从零到一的避坑实战指南
如果你刚拿到一块 NVIDIA Jetson NX 开发板,想要在上面跑起 PyTorch 深度学习框架,可能会发现这条路并不像在普通 x86 服务器上那么顺畅。我最近在几个边缘计算项目中都用到了 Jetson NX,从最初的 JetPack 系统烧录到最终的 PyTorch 环境部署,踩过的坑足够写一本小册子。今天我就把这些经验整理出来,希望能帮你少走弯路。
Jetson NX 作为一款嵌入式 AI 计算平台,其 ARM 架构和有限的存储空间让环境配置变得有些特殊。很多开发者习惯的 pip install torch 在这里行不通,官方 PyPI 上的预编译包都是针对 x86_64 架构的。你需要找到专门为 Jetson 平台编译的版本,还要处理各种依赖库的兼容性问题。更麻烦的是,网络环境不稳定时,一个简单的包下载都可能让你卡上半天。
这篇文章面向的是有一定 Linux 和 Python 基础的嵌入式开发者、边缘计算工程师,或者任何需要在 Jetson NX 上部署深度学习模型的研究人员。我会从最基础的 CUDA 环境变量配置讲起,覆盖 Miniconda 安装、PyTorch 1.7 部署、依赖包缺失处理,一直到最后的验证测试。每个步骤都包含了我实际遇到过的错误和解决方案,有些技巧是你在官方文档里找不到的。
1. 基础环境准备与 CUDA 配置
在开始安装任何深度学习框架之前,确保你的 Jetson NX 已经正确安装了 JetPack SDK。JetPack 是 NVIDIA 为 Jetson 系列开发板提供的完整软件栈,包含了 Ubuntu 操作系统、CUDA、cuDNN、TensorRT 等核心组件。你可以通过运行 sudo apt-cache show nvidia-jetpack 来查看当前安装的 JetPack 版本。
注意:PyTorch 版本必须与 JetPack 中的 CUDA 版本匹配。对于 PyTorch 1.7,通常需要 CUDA 10.2,这对应 JetPack 4.6 版本。如果你的 JetPack 版本不同,可能需要调整 PyTorch 版本。
1.1 验证 CUDA 安装状态
虽然 JetPack 已经安装了 CUDA,但系统环境变量可能没有正确配置。首先检查 CUDA 是否可用:
nvcc -V
如果这个命令返回“command not found”,说明 CUDA 的路径没有添加到系统 PATH 中。别担心,这很常见,因为 NVIDIA 的安装脚本有时不会自动配置环境变量。
1.2 配置 CUDA 环境变量
打开你的 ~/.bashrc 文件,这是每次启动终端时都会执行的脚本:
sudo vim ~/.bashrc
或者如果你不熟悉 vim,可以用更简单的 nano:
sudo nano ~/.bashrc
滚动到文件末尾,添加以下几行:
export PATH=/usr/local/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-10.2
这里有几个细节需要注意:
- 路径准确性:首先确认
/usr/local/cuda-10.2这个路径确实存在。有时版本号可能不同,比如cuda-10.0。你可以用ls /usr/local/查看。 - 变量顺序:
$PATH放在后面,这样系统会优先使用我们添加的路径。 - 权限问题:如果你不是用 root 用户编辑的,保存时可能需要输入密码。
保存文件后,让配置立即生效:
source ~/.bashrc
现在再次运行 nvcc -V,你应该能看到类似这样的输出:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_21:14:42_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89
1.3 验证 CUDA 运行时
环境变量配置正确后,还需要验证 CUDA 运行时是否正常工作。创建一个简单的测试程序:
// test_cuda.cu
#include <stdio.h>
int main() {
int deviceCount;
cudaGetDeviceCount(&deviceCount);
printf("Number of CUDA devices: %d\n", deviceCount);
return 0;
}
编译并运行:
nvcc test_cuda.cu -o test_cuda
./test_cuda
如果输出显示有 1 个 CUDA 设备,说明 CUDA 环境基本正常。这一步很多人会跳过,但它在后续排查 PyTorch CUDA 不可用时非常有用。
2. Miniconda 安装与虚拟环境管理
在 Jetson NX 上,我强烈推荐使用 Miniconda 而不是系统自带的 Python 环境。原因很简单:嵌入式开发经常需要不同的 Python 版本和包组合,虚拟环境可以避免污染系统环境,也便于项目管理。
2.1 选择合适的 Miniconda 版本
由于 Jetson NX 是 ARM64 架构,你不能直接下载官方的 x86_64 版本。访问 Miniconda 官方页面时,要选择 Linux-aarch64 版本。不过这里有个坑:官方源下载速度可能很慢,特别是在国内网络环境下。
我推荐使用清华大学的镜像源。首先确定你的系统架构:
uname -m
如果返回 aarch64,说明是 ARM64 架构。然后下载对应的 Miniconda 安装包:
wget https://mirrors

1万+

被折叠的 条评论
为什么被折叠?



