RTX3070的yolo训练模型迁移到NVIDIA JETSON XAVIER NX 上的踩坑经验,时机部署避雷点

embedded/2024/10/18 0:26:14/

NVIDIA JETSON XAVIER NX 的yolo环境部署

首先为了保证yolo的权重模型pt文件可以顺利迁移过去,要保证torch和cuda的版本一致

如何在NX上安装torch?

1.用 jtop工具 实时查看和控制板子状态

安装:

sudo -H pip3 install jetson-stats

使用:

sudo jtop

在这里是为了确保了解自己的板子的cuda和cudnn是否已经装好了

2.安装pytorch

PyTorch for Jetson - Jetson & Embedded Systems / Announcements - NVIDIA Developer Forums

这里选择自己自己架构适合的pytorch版本号

红色部分为安装的步骤流程,蓝色部分为需要注意更改的版本号

以及得注意pytorch和torchvision版本得对齐

验证部分也可以遵循下方的Verification

如何在RTX3070上安装对应的torch版本?

我安装了

# CUDA 10.2
pip install torch==1.12.0+cu102 torchvision==0.13.0+cu102 torchaudio==0.12.0 --extra-index-url https://download.pytorch.org/whl/cu102

问题:一直报错,显示的是cuda和pytorch不兼容,因为我主机系统是cuda12.0,按道理是可以兼容10.02的,

(VBee) iusl@iusl-MS-7D04:~/ultralytics-20240713/ultralytics-main$ python
Python 3.8.20 (default, Oct  3 2024, 15:24:27) 
[GCC 11.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> import torchvision
>>> print(torch.cuda.is_available())
True
>>> a = torch.Tensor(5,3)
>>> a=a.cuda()
/home/iusl/anaconda3/envs/VBee/lib/python3.8/site-packages/torch/cuda/__init__.py:146: UserWarning: 
NVIDIA GeForce RTX 3070 with CUDA capability sm_86 is not compatible with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_70.
If you want to use the NVIDIA GeForce RTX 3070 GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/warnings.warn(incompatible_device_warn.format(device_name, capability, " ".join(arch_list), device_name))
>>> print(a)
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/home/iusl/anaconda3/envs/VBee/lib/python3.8/site-packages/torch/_tensor.py", line 338, in __repr__return torch._tensor_str._str(self, tensor_contents=tensor_contents)File "/home/iusl/anaconda3/envs/VBee/lib/python3.8/site-packages/torch/_tensor_str.py", line 481, in _strreturn _str_intern(self, tensor_contents=tensor_contents)File "/home/iusl/anaconda3/envs/VBee/lib/python3.8/site-packages/torch/_tensor_str.py", line 447, in _str_interntensor_str = _tensor_str(self, indent)File "/home/iusl/anaconda3/envs/VBee/lib/python3.8/site-packages/torch/_tensor_str.py", line 270, in _tensor_strformatter = _Formatter(get_summarized_data(self) if summarize else self)File "/home/iusl/anaconda3/envs/VBee/lib/python3.8/site-packages/torch/_tensor_str.py", line 103, in __init__nonzero_finite_vals = torch.masked_select(tensor_view, torch.isfinite(tensor_view) & tensor_view.ne(0))
RuntimeError: CUDA error: no kernel image is available for execution on the device
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.

问题分析:

PyTorch提示当前安装的版本仅支持CUDA架构sm_37、sm_50、sm_60和sm_70,而你的显卡RTX 3070的CUDA架构是sm_86,不在支持列表中。因此,尽管可以检测到显卡,但无法正确使用其计算能力。

NVIDIA CUDA架构sm_86是为RTX 30系列(如RTX 3070、3080等)显卡设计的。因此,要支持sm_86架构,你需要使用与CUDA 11.x或更高版本兼容的PyTorch。

总结:

因为我的torch安装的是

torch==1.12.0+cu102

也就是低于cuda11.x,这里的坑点在于,之前我的印象都是cuda都向下兼容,但是sm_86不支持cuda11以下的pytorch

所以更改为安装这个版本的pytorch

pip install torch==1.12.0+cu113 torchvision==0.13.0+cu113 torchaudio==0.12.0 --extra-index-url https://download.pytorch.org/whl/cu113


http://www.ppmy.cn/embedded/128309.html

相关文章

计算机网络基础(1)

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 计算机网络基础 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 1. 计算机网…

Vert.x,Web - Restful API

将通过Vert.x Web编写一个前后分离的Web应用&#xff0c;做为Vert.x Web学习小结。本文为后端部分&#xff0c;后端实现业务逻辑&#xff0c;并通过RESTfull接口给前端(Web页面)调用。 案例概述 假设我们要设计一个人力资源(HR)系统&#xff0c;要实现对员工信息的增删改查。…

C++笔记之静态多态和动态多态

C++笔记之静态多态和动态多态 code review! 在C++中,多态(Polymorphism)是面向对象编程的一个核心概念,允许对象以多种形式存在。多态性主要分为静态多态(Static Polymorphism)和动态多态(Dynamic Polymorphism)。下面将详细解释这两种多态及其在C++中的实现方式、优缺…

前端打印功能(vue +springboot)

后端 后端依赖生成pdf的方法pdf转图片使用(用的打印模版是带参数的 ,参数是aaa)总结 前端页面 效果 后端 依赖 依赖 一个是用模版生成对应的pdf,一个是用来将pdf转成图片需要的 <!--打印的--><dependency><groupId>net.sf.jasperreports</groupId>&l…

opencv的相机标定与姿态解算

首先我们要知道四个重要的坐标系 世界坐标系相机坐标系图像成像坐标系图像像素坐标系 坐标系之间的转换 世界坐标系——相机坐标系 从世界坐标系到相机坐标系&#xff0c;涉及到旋转和平移&#xff08;其实所有的运动也可以用旋转矩阵和平移向量来描述&#xff09;。绕着不…

浮点数二进制制科学计数法理解

Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu 1. 引言 对于浮点数&#xff0c;主要是单精度-float、双精度-double两种类型。 对于浮点类型&#xff0c;我们知道其采用科学计数法&#xff0c;准确来说应该是二进制科学计数法。 为什么准确说是是二进制科学计数法&…

985研一学习日记 - 2024.10.17

一个人内耗&#xff0c;说明他活在过去&#xff1b;一个人焦虑&#xff0c;说明他活在未来。只有当一个人平静时&#xff0c;他才活在现在。 日常 1、起床6:00√ 2、健身1个多小时 今天练了二头和背部&#xff0c;明天练胸和三头 3、LeetCode刷了3题 旋转图像&#xff1a…

022 elasticsearch文档管理(添加、修改、删除、批处理)

文章目录 添加文档修改文档删除文档根据_id取文档使用批处理_bulk PortX&#xff1a; https://portx.online/zh MobaXterm&#xff1a; https://mobaxterm.mobatek.net/ FinalShell&#xff1a; http://www.hostbuf.com/ 添加文档 向索引中添加一行数据 使用json来表示 使用…