【边缘端环境配置】英伟达Jetson系列安装pytorch/tensorflow/ml/tensorrt环境(docker一键拉取)

news2025/4/8 23:45:04

【边缘端环境配置】英伟达Jetson系列安装pytorch/tensorflow/ml/tensorrt环境(docker一键拉取)

  • 0.JetPack
  • 1.安装输入法
  • 2.安装docker和nvidia-docker
  • 3.拉取l4t-pytorch镜像
  • 4.拉取l4t-tensorflow镜像
  • 5.拉取l4t-ml镜像
  • 6.拉取tensorrt镜像
  • 7.镜像换源
  • 8.其他
    • (1)设置开机风扇自启
    • (2)安装miniconda
    • (3)下载vscode
  • 参考文章

Jetson系列板卡是算法边缘端部署无法避开的一道坎,作为英伟达旗下产品,可以使用tensorrt加速,因此用户较多,生态较好;但是由于是ARM架构,因此无法使用x86部署方式,用过的都有一堆血泪史可以诉说,以下是英伟达官方介绍:
NVIDIA® Jetson™ 是适用于自主机器和其他嵌入式应用的先进平台。该平台包括 Jetson模组(外形小巧的高性能计算机)、用于加速软件的 NVIDIA JetPack™ SDK,以及包含传感器、SDK、服务和产品的生态系统,从而加快开发速度。Jetson 与其他 NVIDIA 平台上使用的相同 AI软件和云原生工作流兼容,并提供客户构建软件定义的自主机器所需的节能性能。

在这里插入图片描述

0.JetPack

Jetson Development Pack (JetPack) 是一个按需提供的一体化软件包,捆绑并安装了适用于 NVIDIA Jetson 嵌入式平台的所有开发用软件工具,JetPack 包括适用于以下功能的工具:

深度学习:TensorRT、cuDNN、NVIDIA DIGITS™ 工作流程
计算机视觉:NVIDIA VisionWorks、OpenCV
GPU 计算:NVIDIA CUDA、CUDA 库
多媒体:ISP 支持、摄像头图像、视频 CODEC

同时,它还包括 ROS 兼容性、OpenGL、高级开发者工具等等。

在选择JetPack的时候需要注意其版本号,JetPack 4.x版本使用的是ubuntu18.04+cuda10.2+tensorrt8.2及以下版本,而JetPack 5.x版本使用的是ubuntu20.04+cuda11.x+tensorrt8.4及以上版本;秉持着选旧不选新的原则,推荐选择JetPack 4.6.x版本,如果你想使用yolov7以上的tensorrt加速,建议选择JetPack 5.0.2版本,因为JetPack 4.x版本最高支持的tensorrt只有8.2.1,而将onnx转engine的时候会报错,这个bug在8.4.1的时候修复了(当然也有可能只是部分人的问题)

JetPack 5.0.2 是生产级质量版本,可取代仅用于开发的 JetPack 5.0/JetPack 5.0.1开发者预览版本。JetPack 5.0.2 包括搭载 Linux 内核 5.10 的 Jetson Linux 35.1 BSP、基于Ubuntu 20.04 的根文件系统、基于 UEFI 的引导加载程序以及作为可信执行环境的 OP-TEE。JetPack 5.0.2 包括Jetson 上的新版计算栈,配备了 CUDA 11.4、TensorRT 8.4.1 和 cuDNN 8.4.1。

1.安装输入法

工欲善其事必先利其器,而输入法是我们通向未知世界的大门钥匙,在jetson安装谷歌拼音相对比较简单,可以参考这篇教程:
Jetson Nano安装中文输入法

2.安装docker和nvidia-docker

本文推荐使用docker来配置我们的环境,第一个是因为他安装相对方便,第二个是因为安装失败也不会影响我们宿主机的环境;一般烧录完系统后docker和nvidia-docker是系统自带的,但是有时候也会出现一些意外,这时就需要重新安装,安装教程参看这篇:
NVIDIA Jetson板子上安装nvidia docker

3.拉取l4t-pytorch镜像

先去英伟达官方提供的docker拉取地址,找到自己想要的docker包
NVIDIA L4T PyTorch官方地址
在这里插入图片描述

通过Copy Image Path可以将docker仓库复制到剪切栏,粘贴到终端即可:

sudo docker pull nvcr.io/nvidia/l4t-pytorch:r35.1.0-pth1.13-py3
sudo docker run -it --gpus all --name torch -p 6010:6010 -w /workspace -v /home/xxx/:/workspace  nvcr.io/nvidia/l4t-pytorch:r35.1.0-pth1.13-py3 /bin/bash

进入容器后,可以使用pip3 list查看已经安装了哪些包,这个仓库里是不带tensorrt的,如果需要额外安装tensorrt的话,需要从sdk manager中下载对应jetpack的tensorrt安装包进行映射安装。

4.拉取l4t-tensorflow镜像

拉取tensorflow的方式和pytorch一样,直接进入拉取即可
NVIDIA L4T Tensorflow官方地址

5.拉取l4t-ml镜像

l4t-ml集成了pytorch、Tensorflow、pandas等多个框架,以5.0.2版本为例,有如下包:

  • TensorFlow 1.15.5
  • PyTorch v1.12.0
  • torchvision v0.13.0
  • torchaudio v0.12.0
  • onnx 1.12.0
  • CuPy 10.2.0
  • numpy 1.22.4
  • numba 0.56.0
  • PyCUDA 2022.1
  • OpenCV 4.5.0 (with CUDA)
  • pandas 1.4.3
  • scipy 1.9.0
  • scikit-learn 1.1.1
  • JupyterLab 3.4.4

因此,l4t-ml镜像中还包含了cuda加速的opencv,建议直接拉这个镜像即可:
NVIDIA L4T ML官方地址

6.拉取tensorrt镜像

tensorrt镜像的拉取方式和上述一致,但是里面只有cuda+cudnn+tensorrt基础环境,如果需要配置pytorch或者tensorflow需要自行安装
tensorrt官方docker地址
NVIDIA L4T TensorRT官方地址

  • pytorch的安装可以直接使用对应的编译好的whl安装包
    PyTorch for Jetson whl下载地址
  • torchvision则需要去github下载,然后本地编译安装
    torchvision github地址

7.镜像换源

通过修改/etc/apt/sources.list,可以将容器内的apt源换为国内源(宿主机也一样)

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe # for opencv
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-proposed main restricted universe multiverse

8.其他

(1)设置开机风扇自启

执行以下命令可以手动开启风扇,“150” 表示 pwm 速度,但是此命令重启失效,因此需设置开机自启动此命令,添加至 /etc/rc.local脚本中

sudo sh -c "echo 150 > /sys/devices/pwm-fan/target_pwm

(2)安装miniconda

进入miniconda官网,下载arm架构版本的miniconda
官网链接
在这里插入图片描述

(3)下载vscode

vscode作为轻量级代码工具,怎能少的了它?
vscode下载地址
在这里插入图片描述

参考文章

jetson TX2安装TensorRT

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/387510.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三数之和(双指针 or hash表)

给你一个整数数组nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]]满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 3 < …

ubuntu22.04 Desktop 服务器安装

操作系统 使用的是Uubntu22.04 Desktop的版本&#xff0c;系统安装后&#xff0c;默认开启了53端口和631端口 关闭udp 5353、53791端口&#xff08;avahi-daemon服务&#xff09; sudo systemctl stop avahi-daemon.socket avahi-daemon.service sudo systemctl disable ava…

[1.2]计算机系统概述——操作系统的发展与分类

文章目录第一章 计算机系统概述操作系统的发展与分类&#xff08;一&#xff09;手工操作阶段&#xff08;二&#xff09;批处理阶段——单道批处理系统&#xff08;三&#xff09;批处理阶段——多道批处理系统&#xff08;四&#xff09;分时操作系统&#xff08;五&#xff…

【Java开发】JUC进阶 01:Lock锁详解

1 Lock锁介绍已经在【JUC基础】04简单介绍过了&#xff0c;本文做进一步的拓展&#xff0c;比如公平锁和非公平锁、&#x1f4cc; 明白锁的核心四个对象&#xff1a;线程&#xff0c;共享资源&#xff0c;锁&#xff0c;锁操作包括线程如何操作资源&#xff0c;使用锁锁哪个资源…

xgboost: 分割查找算法:贪婪算法、分桶算法

1、Basic Exact Greedy Algorithm 树学习的关键问题之一是找到最好的分割&#xff0c;如Eq(7)所示。 贪婪算法:分割查找算法枚举所有特征上的所有可能的分割。精确的贪婪算法如Alg. 1所示。为了高效地完成这一任务&#xff0c;算法必须首先根据特征值对数据进行排序&#xff…

SpringMVC 参数绑定(视图传参到控制器)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

Vue组件基础(父向子、子向父、子向子传值)

Vue组件基础-父向子、子向父、子向子传值一、Vue组件概念,创建和使用1.1 组件概念1.2 组件基础使用1.3 组件-scoped作用二、Vue组件通信2.1 父向子传值(props)2.2 子向父传值($emit)2.3 子与子传值(EventBus)一、Vue组件概念,创建和使用 1.1 组件概念 组件是可复用的Vue实例,封…

【100个 Unity实用技能】 | 脚本无需挂载到游戏对象上也可执行的方法

Unity 小科普 老规矩&#xff0c;先介绍一下 Unity 的科普小知识&#xff1a; Unity是 实时3D互动内容创作和运营平台 。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者&#xff0c;借助 Unity 将创意变成现实。Unity 平台提供一整套完善的软件解决方案&#xff…

springboot使用ssh公钥连接mysql(含账号密码连接)

引言 在项目开发过程中&#xff0c;遇到了连接数据库时需要使用ssh公钥的情况。在本地使用navicat可以直接通过可视化界面去进行ssh的连接&#xff0c;但是在java中无法直接去进行连接。 后来经过查询资料&#xff0c;发现必须要在java中编写相关配置文件后才可以正常连接。 …

Linux内核源码进程原理分析

Linux内核源码进程原理分析一、Linux 内核架构图二、进程基础知识三、Linux 进程四要素四、task_struct 数据结构主要成员五、创建新进程分析六、剖析进程状态迁移七、写时复制技术一、Linux 内核架构图 二、进程基础知识 Linux 内核把进程称为任务(task)&#xff0c;进程的虚…

Linux下MQTT客户端消息订阅与发布实现

MQTT(消息队列遥测传输)是一个基于客户端-服务器的消息发布/订阅传输协议。它基于TCP协议&#xff0c;默认端口号为1883&#xff0c;为此&#xff0c;它也需要一个消息中间件 。MQTT协议是轻量、简单、开放和易于实现的&#xff0c;这些特点使它适用范围非常广泛。在很多情况下…

蓝桥杯三月刷题 第一天

文章目录&#x1f4a5;前言&#x1f609;解题报告&#x1f4a5;数列求值&#x1f914;一、思路:&#x1f60e;二、代码&#xff1a;&#x1f4a5;质数&#x1f914;一、思路:&#x1f60e;二、代码&#xff1a;&#x1f4a5;饮料换购&#x1f914;一、思路:&#x1f60e;二、代…

23.3.4打卡 AtCoder Beginner Contest 291(Sponsored by TOYOTA SYSTEMS)A~E

F题题面都看不懂嘞!开摆! 没找到合适的markdown, 截图网页翻译了我真是天才 比赛链接: https://atcoder.jp/contests/abc291 A题 题意 给出一个字符串, 找到第一个大写字母的下标 简单题就不多说了, 直接放代码 代码 void solve() {cin>>str;nstr.size();str"…

CentOS7操作系统安装nginx实战(多种方法,超详细)

文章目录前言一. 实验环境二. 使用yum安装nginx2.1 添加yum源2.1.1 使用官网提供的源地址&#xff08;方法一&#xff09;2.1.2 使用epel的方式进行安装&#xff08;方法二&#xff09;2.2 开始安装nginx2.3 启动并进行测试2.4 其他的一些用法&#xff1a;三. 编译方式安装ngin…

Kali、Metasploitable2部署

1、安装VMWare虚拟机及metasploitable2软件 链接&#xff1a;https://pan.baidu.com/s/1rqhjh1P9VJg5Q1esBgpZ-A 提取码&#xff1a;dc66 metasploitable2部署很简单&#xff0c;解压后&#xff0c;直接双击后缀.vmx文件&#xff0c;默认账户msfadmin/msfadmin&#xff0c;sud…

php实训报告

实训一 PHP语法基础 一、实训目的 掌握PHP数据类型知识。掌握PHP变量与常量的知识和运用方法。掌握PHP选择结构流程控制的知识及应用。掌握PHP循环结构流程控制的知识及应用。 二、实训工具或设备 主流 PC 机一台&#xff08;要求安装 windows 操作系统&#xff09;&#xff…

基于m-p条件查询代码生成

目录 起因 演示 使用 0.自定义注解 1.定义一个dto的条件查询类 2.调用主程序 效果图 小结 代码 注解 Dto类 完整代码 起因 最近两天一直写后台管理统计的增删改查(很少写增删改查&#xff0c;所以不是很熟练)&#xff0c;几乎每个表都要涉及到条件查询的业务&#xf…

7个常用的原生JS数组方法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 7个常用的原生JS数组方法一、Array.map()二、Array.filter三、Array.reduce四、Array.forEach五、Array.find六、Array.every七、Array.some总结一、Array.map() 作用&#…

Transformer 模型:入门详解(1)

动动发财的小手&#xff0c;点个赞吧&#xff01; 简介 众所周知&#xff0c;transformer 架构是自然语言处理 (NLP) 领域的一项突破。它克服了 seq-to-seq 模型&#xff08;如 RNN 等&#xff09;无法捕获文本中的长期依赖性的局限性。事实证明&#xff0c;transformer 架构是…

【数据结构初阶】详解“树”

目录 前言 1.树概念及结构 &#xff08;1&#xff09;树的概念 &#xff08;2&#xff09;树的名词介绍 &#xff08;3&#xff09;树的表示 ​编辑 2.二叉树概念及结构 &#xff08;1&#xff09;概念 &#xff08;2&#xff09;特殊的二叉树 &#xff08;3&#xff0…