jetson nx 安装环境之坑

2023-10-07 15:10
文章标签 安装 环境 nx jetson 之坑

本文主要是介绍jetson nx 安装环境之坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本来各种手动安装已经完成到tensorrt又是各种没对应, 而且engine模型在x86上转换完的在arm上也不能使用,先讲一下直接arm安装吧 docker的还没来及试验~~

1. 用sdkmanager安装ai环境

挺省事简单 也很快 安装到第3步可以暂停然后拔出,nvidia 容器及以下没实验过用处

jetpack4.6.2 对应 tensorrt8.2.1

先安装基础系统 - 然后连显示器 -初始化系统设置用户名密码-设置ip连上wifi或网线记住ip

在安装各种sdkcuda等 - 需要联网 之前的用户名密码和ip就有用了- 会弹框输入ip  用户名密码信息

安装的opencv没使用cuda编译

最后cuda cudnn valukan visionworks vpi 等轻松按上

2.自行指定版本安装

各种坑 jetpack4.6.2 安装pytorch 时各种依赖不对 还要先删 有的pip也安装失败

安装opencv4以上并使用cuda 3小时左右,而且opencv不能pip安装需要自行编译然后++和py的都有了

tensorrt 自行安装8.0.3.4 - 官网的版本都不太对应上 7/8 都对应的cuda11

最后官网下tensorrt代码编译安装 wts导engine模型时报错

报错1:  libnvmedia.so 没有网上还查不到

3.貌似官网是有docker镜像的


docker是预装的还挺好,但直接用docker跑不知道性能损耗多少,据别人说损耗也没这么大

地址 https://catalog.ngc.nvidia.com/containers

Query里填入jetson就可以选取自己需要的镜像了。

以镜像NVIDIA L4T PyTorch为例:
拉取镜像(可选择需要的pytorch和torchvision版本的镜像):
sudo docker pull nvcr.io/nvidia/l4t-pytorch:r32.5.0-pth1.7-py3

开启一个容器:
sudo docker run -it --rm --runtime nvidia --network host nvcr.io/nvidia/l4t-pytorch:r32.5.0-pth1.7-py3

​注意,若一个容器需要多次开启,最好上述命令不要带--rm,因为下次开启的时候传到里面的文件会被删除了。个人感觉最好是把文件夹通过-v挂载上去,需要注意的是:挂载的文件夹在外部如何改变,容器里面会相应改变;在容器里面对挂载的文件夹做改变,外部也会相应改变。这个就是docker基础了相信都会.

命令:
sudo docker run -it --rm --runtime nvidia --network host -v /home/xx:/location/in/container nvcr.io/nvidia/l4t-pytorch:r32.5.0-pth1.7-py

sudo docker run -it -name xx --runtime nvidia --network host -v /home/xx:/location/in/container nvcr.io/nvidia/l4t-pytorch:r32.5.0-pth1.7-py

最好还是起个名字~~

然后安装opencv-4.1.1, 注意opencv不能pip安装

(1). updating the packages: 
apt update
apt install -y build-essential cmake git libgtk2.0-dev pkg-config libswscale-dev libtbb2 libtbb-dev
apt install -y python-dev python3-dev python-numpy python3-numpy
apt install -y curl


(2). install video & image formats:
apt install -y libjpeg-dev libpng-dev libtiff-dev libjasper-dev
apt install -y libavcodec-dev libavformat-dev
apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
apt install -y libv4l-dev v4l-utils qv4l2 v4l2ucp libdc1394-22-dev

///注意这一步也很闹心了,直接arm安装的时候各种装不了其实已经有新版本了,还要在删了很烦

(3). download opencv & contribs modules:
curl -L https://github.com/opencv/opencv/archive/4.1.1.zip -o opencv-4.1.1.zip
curl -L https://github.com/opencv/opencv_contrib/archive/4.1.1.zip -o opencv_contrib-4.1.1.zip


(4). unzipping packages:
apt-get install unzip
unzip opencv-4.1.1.zip
unzip opencv_contrib-4.1.1.zip
cd opencv-4.1.1/


(5). create directory:
apt-get install mkdir
mkdir release
cd release


(6). build opencv using Cmake:
cmake -D WITH_CUDA=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.1.1/modules \
-D WITH_GSTREAMER=ON \
-D WITH_LIBV4L=ON \
-D BUILD_opencv_python2=ON \
-D BUILD_opencv_python3=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_EXAMPLES=OFF \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j4( 注意之间可能又会少点什么~ -j4或j几可以不要,要不错误很乱看不见都 )
make install

完事

docker的 大伙谁用过也交流一下哈~~ 还有dockerfile欢迎分享哦...

3.推理环境配置、Tensorrt加速

临时把这个加上, 应该也有需要注意的地方

/TensorRT-xxx/targets/x86_64-linux-gnu/lib 输出到你的 usr/aarch或x86下

rt <py包在rt的python里>

pip3 install tensorrt-*-cp3x-none-linux_x86_64.whl

uuf <uuf目录>

pip3 install uff-0.6.9-py2.py3-none-any.whl

graphsurgeon <graphsurgeon目录>

pip3 install graphsurgeon-0.4.5-py2.py3-none-any.whl

验证一下

import tensorrt

print(tensorrt.__version__)

#

生wts什么的过程不在描述

#1#

如果因为版本不对应可能会出现的问题:/home/tensorrtx/yolov5/yololayer.h(54): error: member function declared with "override" does not override a base class member

#2#

cd 到tensorrtx/yolov5/路径下 ,vim改yololayer.h中的类别数目(这个超级关键,不改会报错!!!)

vi yololayer.h

然后编译 - 编译可能遇到的问题: 

编译过程可能会遇到的问题:/home/tensorrtx/yolov5/yolov5.cpp:63: nvinfer1::ICudaEngine* build_engine(unsigned int, nvinfer1::IBuilder*, nvinfer1::IBuilderConfig*, nvinfer1::DataType, float&, float&, std::string&): Assertion u psample11' failed. 
解决方法:
修改下tensorrtx/yolov5/路径下的cmakelist

原版:

tensorrt
. #include_directories(/usr/include/x86_64-linux-gnu/)
. #link_directories(/usr/lib/x86_64-linux-gnu/)

改进如下:
把include,lib路径换成自己的

tensorrt
. #include_directories(/usr/include/aarch64-linux-gnu/)
. #link_directories(/usr/lib/aarch64-linux-gnu/)

改好在生成 新版本的tensorrtx指令都是不一样的!~~   ./yolov5 -s

#3#

生成engine可能遇到的问题:yolov5: /home/tensorrtx/yolov5/yolov5.cpp:396: void APIToModel(unsigned int, nvinfer1::IHostMemory**): Assertion ``engine != nullptr' failed. Aborted (core dumped)

查了下都是说类别要改,确实如果yololayer.h里的class不改会报错
但是我yololayer.h里的class num 已经改2类了。类别也改了,也报错,那就是训练的时候出错了!

解决方法

我是train.py的时候没有对应。一个weights是yolov5s.pt, cfg确实yolov5x.yaml
修改下triain.py看下是否出错了。重新训练后解决!!

还有个要注意的 就是wts也需要在你用的机器上生成,这个也不能通用86和arm上哈.

最后测试....    ./yolov5 -d ../images #-d 后面是你测试图片的路径

#4#

这个还是个大坑啊~~ 哪哪找不到问题~~  还特地去老外那提了个bug, 在百度搜不到 要去google

[utils.cpp::checkMemLimit::380] Error Code 2: Internal Error (Assertion upperBound != 0 failed. Unknown embedded device detected. Please update the table with the entry: {{1794, 6, 16}, 12660},)

老外给我的回复啊 

what variant of Jetson Xavier NX are you running? Is it Jetson Xavier NX 16GB? If so, I think you need to upgrade your version of JetPack / TensorRT

可能还要冲装了 我去~~ 我就在纳闷 大伙用nx 都是jetpack什么版本啊 ~~ 真的没人遇到吗?

最终安装完成 jetpack 4.6.2真是大坑啊

jetpack 5.0.1 以后都行了 ,不过cuda虽然可以用 , 但jtop里显示未安装....

4.gstreamer和ffmpeg 

#gstreamer sdkmanager里就有不说了,

#ffmpeg 安装及启动cuda 编码 , 也不是太麻烦,时间也好久 .... 不过都弄好了 也不错 巨快 好用

5.开发环境docker

之前用rog,想直接上ubuntu 结果显卡怎么都冲突都黑屏~~~ 

就在win10上装docker了 ,这样也挺好的也习惯了

只不过win10的docker 需要迁移wsl2 ext4文件也导出换地方 删镜像大小也不变还要手动压缩一下比较烦~~~

-------

这是gpu 下面说下所有xxxpu吧

APU -- Accelerated Processing Unit, 加速处理器,AMD公司推出加速图像处理芯片产品。

BPU -- Brain Processing Unit, 地平线公司主导的嵌入式处理器架构。自动驾驶

CPU -- Central Processing Unit 中央处理器, 目前PC core的主流产品。

DPU -- Deep learning Processing Unit, 深度学习处理器,最早由国内深鉴科技提出;另说有Dataflow Processing Unit 数据流处理器, Wave Computing 公司提出的AI架构;Data storage Processing Unit,深圳大普微的智能固态硬盘处理器。

FPU -- Floating Processing Unit 浮点计算单元,通用处理器中的浮点运算模块。

GPU -- Graphics Processing Unit, 图形处理器,采用多线程SIMD架构,为图形处理而生。

HPU -- Holographics Processing Unit 全息图像处理器, 微软出品的全息计算芯片与设备。

IPU -- Intelligence Processing Unit, Deep Mind投资的Graphcore公司出品的AI处理器产品。

MPU/MCU -- Microprocessor/Micro controller Unit, 微处理器/微控制器,一般用于低计算应用的RISC计算机体系架构产品,如ARM-M系列处理器。

NPU -- Neural Network Processing Unit,神经网络处理器,是基于神经网络算法与加速的新型处理器总称,如中科院计算所/寒武纪公司出品的diannao系列。

RPU -- Radio Processing Unit, 无线电处理器, Imagination Technologies 公司推出的集合集Wifi/蓝牙/FM/处理器为单片的处理器。

TPU -- Tensor Processing Unit 张量处理器, Google 公司推出的加速人工智能算法的专用处理器。目前一代TPU面向Inference,二代面向训练。另外,

VPU -- Vector Processing Unit 矢量处理器,Intel收购的Movidius公司推出的图像处理与人工智能的专用芯片的加速计算核心。

WPU -- Wearable Processing Unit, 可穿戴处理器,Ineda Systems公司推出的可穿戴片上系统产品,包含GPU/MIPS CPU等IP。

XPU -- 百度与Xilinx公司在2017年Hotchips大会上发布的FPGA智能云加速,含256核。

ZPU -- Zylin Processing Unit, 由挪威Zylin 公司推出的一款32位开源处理器。

---

whaosoft aiot http://143ai.com

未完待续....

这篇关于jetson nx 安装环境之坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/158604

相关文章

VSCode配置Anaconda Python环境的实现

《VSCode配置AnacondaPython环境的实现》VisualStudioCode中可以使用Anaconda环境进行Python开发,本文主要介绍了VSCode配置AnacondaPytho... 目录前言一、安装 Visual Studio Code 和 Anaconda二、创建或激活 conda

Pycharm安装报错:Cannot detect a launch configuration解决办法

《Pycharm安装报错:Cannotdetectalaunchconfiguration解决办法》本文主要介绍了Pycharm安装报错:Cannotdetectalaunchconfigur... 本文主要介绍了Pycharm安装报错:Cannot detect a launch configuratio

pytorch+torchvision+python版本对应及环境安装

《pytorch+torchvision+python版本对应及环境安装》本文主要介绍了pytorch+torchvision+python版本对应及环境安装,安装过程中需要注意Numpy版本的降级,... 目录一、版本对应二、安装命令(pip)1. 版本2. 安装全过程3. 命令相关解释参考文章一、版本对

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

大数据spark3.5安装部署之local模式详解

《大数据spark3.5安装部署之local模式详解》本文介绍了如何在本地模式下安装和配置Spark,并展示了如何使用SparkShell进行基本的数据处理操作,同时,还介绍了如何通过Spark-su... 目录下载上传解压配置jdk解压配置环境变量启动查看交互操作命令行提交应用spark,一个数据处理框架

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP

2025最新版Python3.13.1安装使用指南(超详细)

《2025最新版Python3.13.1安装使用指南(超详细)》Python编程语言自诞生以来,已经成为全球最受欢迎的编程语言之一,它简单易学易用,以标准库和功能强大且广泛外挂的扩展库,为用户提供包罗... 目录2025最新版python 3.13.1安装使用指南1. 2025年Python语言最新排名2.

Python依赖库的几种离线安装方法总结

《Python依赖库的几种离线安装方法总结》:本文主要介绍如何在Python中使用pip工具进行依赖库的安装和管理,包括如何导出和导入依赖包列表、如何下载和安装单个或多个库包及其依赖,以及如何指定... 目录前言一、如何copy一个python环境二、如何下载一个包及其依赖并安装三、如何导出requirem

Windows环境下安装达梦数据库的完整步骤

《Windows环境下安装达梦数据库的完整步骤》达梦数据库的安装大致分为Windows和Linux版本,本文将以dm8企业版Windows_64位环境为例,为大家介绍一下达梦数据库的具体安装步骤吧... 目录环境介绍1 下载解压安装包2 根据安装手册安装2.1 选择语言 时区2.2 安装向导2.3 接受协议