
1. 环境准备JetPack与PyTorch的版本匹配拿到JETSON AGX ORIN开发板的第一件事就是确认JetPack版本。这个步骤看似简单但很多新手都会在这里栽跟头。我遇到过不少开发者直接跳过版本检查结果后续安装的PyTorch和Torchvision全部不兼容白白浪费半天时间。查看JetPack版本有两种可靠方法dpkg -l | grep nvidia-jetpack sudo apt show nvidia-jetpack以我的JetPack 5.1.2为例对应的PyTorch版本必须选择v512目录下的torch-2.1.0a041361538.nv23.06-cp38-cp38-linux_aarch64.whl。这里有个关键细节ARM架构的whl文件命名都带有linux_aarch64后缀x86平台的安装包在这里完全不能用。安装前的系统准备也很重要。建议先执行以下命令安装基础依赖sudo apt-get -y update sudo apt-get -y install autoconf bc build-essential g-8 gcc-8 clang-8 lld-8特别注意gcc-8的安装——虽然系统可能自带更高版本但NVIDIA官方明确建议使用gcc-8以避免兼容性问题。我曾经因为没注意这个细节导致torch编译时出现莫名其妙的段错误。2. 解决PyTorch安装中的典型问题实际安装torch时我推荐先用wget直接下载whl文件到本地wget https://developer.download.nvidia.com/compute/redist/jp/v512/torch-2.1.0a041361538.nv23.06-cp38-cp38-linux_aarch64.whl然后用pip安装时大概率会遇到环境变量警告WARNING: The script isympy is installed in /home/nvidia/.local/bin which is not on PATH这个警告不能忽视否则后续运行yolov8时会找不到关键命令。解决方法很简单echo export PATH$PATH:/home/nvidia/.local/bin ~/.bashrc source ~/.bashrc验证安装是否成功时别只用简单的import torch测试。我建议运行一个实际的CUDA张量运算import torch print(torch.cuda.is_available()) # 应该返回True x torch.randn(3,3).cuda() # 测试GPU能否正常使用3. Torchvision的兼容性配置torchvision的版本必须严格匹配PyTorch。对于torch 2.1.0对应的torchvision是0.16.2。这里有个坑官网提供的torchvision可能缺少ARM架构的预编译包需要手动编译安装。先安装系统级依赖sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev如果遇到Unable to locate package错误可能是源没更新。我常用的解决方法是sudo apt-add-repository universe sudo apt-get update安装完torchvision后建议用以下代码验证功能完整性from torchvision.io import read_image img read_image(test.jpg) # 准备一个测试图片 print(img.shape) # 应该显示正确的图像维度4. YOLOv8的依赖处理技巧官方requirements.txt需要做两处关键修改删除torch和torchvision行避免版本冲突添加opencv-python-headless避免GUI依赖修改后的安装命令pip install -r requirements.txt pip install opencv-python-headless常见报错sentry_sdk缺失的解决方法pip install sentry_sdk如果遇到onnxruntime安装失败可以尝试pip install onnxruntime-gpu # 使用GPU加速版本5. 实战推理与性能优化基础环境配置完成后运行predict.py时还有几个实用技巧python predict.py --imgsz 640 --device 0 # 显式指定GPU在AGX Orin上我建议开启half-precision模式提升速度model YOLO(yolov8n.pt).half().cuda() # FP16推理如果遇到内存不足可以调整batch sizepython predict.py --batch 4 # 默认可能是86. 开发环境深度优化为了让yolov8发挥AGX Orin的全部性能还需要进行系统级调优。首先检查GPU运行模式sudo nvpmodel -q # 查看当前功率模式 sudo nvpmodel -m 0 # 切换到MAXN模式(50W)然后设置jetson_clocks锁定最高频率sudo jetson_clocks在Python代码中我习惯添加这些优化设置torch.backends.cudnn.benchmark True # 启用cuDNN自动调优 torch.set_flush_denormal(True) # 提高算术运算速度7. 常见问题排错指南当遇到Segmentation fault这类棘手错误时可以按以下步骤排查检查JetPack、torch、torchvision三者的版本匹配运行内存测试sudo memtester 1G # 测试1GB内存验证CUDA状态nvidia-smi # 查看GPU状态 /usr/local/cuda/bin/cuda-gdb python # 用调试器运行 如果Python版本混乱导致问题可以用update-alternatives管理 bash sudo update-alternatives --config python # 交互式选择版本对于顽固的依赖冲突我推荐使用venv创建隔离环境python3 -m venv yolov8_env source yolov8_env/bin/activate8. 模型部署进阶技巧要实现最佳性能可以考虑以下优化方案使用TensorRT加速python export.py --weights yolov8n.pt --include engine --device 0启用DLA核心适用于Orinimport torch torch.backends.cuda.enable_dla(True) # 启用深度学习加速器多流并行处理from threading import Thread # 创建多个推理线程分别处理不同视频流经过这些优化后我的yolov8n模型在AGX Orin上实现了超过300FPS的推理速度。关键是要根据实际应用场景灵活组合这些技巧——比如实时检测可以牺牲一点精度换取速度而离线分析则可以启用更复杂的后处理。