Jeston Orin Nnao 安装pytorch与torchvision环境

news2024/11/25 6:42:54

        大家好,我是虎哥,Jeston Orin nano 8G模块,提供高达 40 TOPS 的 AI 算力,安装好了Jetpack5.1之后,我们需要配置一些支持环境,来为我们后续的深度学习开发提供支持。本章内容,我将主要围绕安装对应版本pytorch跟torchvision展开。

         安装好了Jetpack5.1之后,我才发现英伟达官方还没有正式发布适配的pytorch版本跟torchvision版本,但是我在官方的论坛里面发现了这个:Installing PyTorch for Jetson Platform - NVIDIA Docs

通过:PyTorch for Jetson - Jetson Nano - NVIDIA Developer Forums介绍,我们找到了对应的版本。

0、针对自己的系统选择对应版本

参考入口:PyTorch for Jetson - Jetson Nano - NVIDIA Developer Forums

 所以我们选择

Python 3.8 - torch-2.0.0+nv23.05-cp38-cp38-linux_aarch64.whl 296
PyTorch v2.0.0 - torchvision v0.15.1

1、JetPack 5.1.1

JetPack 5.1.1是一个生产质量版本,支持Jetson Orin Nano开发套件、Jetson AGX Orin 64GB、Jetson OrinNX 8GB、Jetson Orin Nano 8GB和Jetson Orin-Nano 4GB模块。它包括带有Linux内核5.10的Jetson Linux 35.3.1 BSP、基于Ubuntu 20.04的根文件系统、基于UEFI的引导加载程序和作为可信执行环境的OP-TEE。JetPack 5.1.1包CUDA 11.4、TensorRT 8.5.2、cuDNN 8.6.0和VPI 2.2,以及其他更新。

  • VPI (Vision Programing Interface) 是一个软件库,提供在Jetson上的多个硬件加速器上实现的计算机视觉/图像处理算法,如PVA(可编程视觉加速器)、GPU、NVDEC(NVIDIA解码器)、NVENC(NVID IA编码器)、VIC(视频图像合成器)等。

  • NVIDIA Isaac™ ROS 是一组硬件加速包,使ROS开发人员更容易在NVIDIA硬件(包括NVIDIA Jetson)上构建高性能解决方案。

    Isaac ROS DP3版本支持JetPack 5.1.1

如何在Jeston Orin Nnao 刷对应JetPack 5.1.1的系统,请参考我之前的文章。【Jeston Orin】Orin nano 8G模块使用官方系统包生成标准烧写系统测试_机器人虎哥的博客-CSDN博客

2、PyTorch on Jetson Platform

PyTorch(用于JetPack)是一个用于深度学习的优化张量库,用于自然语言处理等应用程序。它主要由Facebookd的人工智能小组开发,不仅能够 实现强大的GPU加速,同时还支持动态神经网络,这一点是现在很多主流框架如TensorFlow都不支持的。 PyTorch提供了两个高级功能:

  • 具有强大的GPU加速的张量计算(如Numpy)

  • 包含自动求导系统的深度神经网络

3、安装环境确认说明

Jetpack默认已安装opencv、cuda、cudnn,故只需再安装pytorch即可,留意jetson是arm架构,需要下载对应的安装文件加以安装

1、确认系统版本

nvidia@nvidia-desktop:~$ sudo lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.5 LTS
Release:    20.04
Codename:   focal

2、确认L4T版本版本

nvidia@nvidia-desktop:~$ head -n 1 /etc/nv_tegra_release
# R35 (release), REVISION: 3.1, GCID: 32827747, BOARD: t186ref, EABI: aarch64, DATE: Sun Mar 19 15:19:21 UTC 2023

说明使用的是R35.3.1系统。

3、确认Jetson版本

jetson_release -v

nvidia@nvidia-desktop:~$ jetson_release -v
Software part of jetson-stats 4.2.1 - (c) 2023, Raffaello Bonghi
Model: NVIDIA Orin Nano Developer Kit - Jetpack 5.1.1 [L4T 35.3.1]
NV Power Mode[0]: 15W
Serial Number: [XXX Show with: jetson_release -s XXX]
Hardware:
 - 699-level Part Number: 699-13767-0003-300 L.3
 - P-Number: p3767-0003
 - Module: NVIDIA Jetson Orin Nano (8GB ram)
 - SoC: tegra23x
 - CUDA Arch BIN: 8.7
 - Codename: P3768
Platform:
 - Machine: aarch64
 - System: Linux
 - Distribution: Ubuntu 20.04 focal
 - Release: 5.10.104-tegra
 - Python: 3.8.10
jtop:
 - Version: 4.2.1
 - Service: Active
Libraries:
 - CUDA: 11.4.315
 - cuDNN: 8.6.0.166
 - TensorRT: 8.5.2.2
 - VPI: 2.2.7
 - Vulkan: 1.3.204
 - OpenCV: 4.5.4 - with CUDA: NO

4、PYthon 版本:

nvidia@nvidia-desktop:~$ python --version
Python 2.7.18
nvidia@nvidia-desktop:~$ python3 --version
Python 3.8.10

4、PyTorch安装步骤

4.1 安装系统支持包

sudo apt-get -y update; 
sudo apt-get -y install autoconf bc build-essential g++-8 gcc-8 clang-8 lld-8 gettext-base gfortran-8 iputils-ping libbz2-dev libc++-dev libcgal-dev libffi-dev libfreetype6-dev libhdf5-dev libjpeg-dev liblzma-dev libncurses5-dev libncursesw5-dev libpng-dev libreadline-dev libssl-dev libsqlite3-dev libxml2-dev libxslt-dev locales moreutils openssl python-openssl rsync scons python3-pip libopenblas-dev;

国内安装经常会有网络无法连接发生各种错误,没事多执行几次命令行肯定可以安装成功的(我的个人经验)。

4.2 配置环境变量

#注意,我们安装的JetPack 5.1.1,所以找对版本对应
export TORCH_INSTALL=https://developer.download.nvidia.cn/compute/redist/jp/v511/pytorch/torch-2.0.0+nv23.05-cp38-cp38-linux_aarch64.whl
​
#`JP_VERSION`
#The major and minor version of JetPack you are using, such as `461` for JetPack 4.6.1 or `50` for JetPack 5.0.

4.3 在线安装

python3 -m pip install --upgrade pip; python3 -m pip install aiohttp numpy=='1.19.4' scipy=='1.5.3' export "LD_LIBRARY_PATH=/usr/lib/llvm-8/lib:$LD_LIBRARY_PATH"; python3 -m pip install --upgrade protobuf; python3 -m pip install --no-cache $TORCH_INSTALL

 类似的报错可以不用理会

4.4 验证安装是否成功

要验证PyTorch是否已成功安装在Jetson平台上,您需要启动Python提示并导入PyTorch。

$ export LD_LIBRARY_PATH=/usr/lib/llvm-8/lib:$LD_LIBRARY_PATH
$ python3

之后在python3的环境输入

>>> import torch
>>> print(torch.__version__)
>>> print('CUDA available: ' + str(torch.cuda.is_available()))
>>> print('cuDNN version: ' + str(torch.backends.cudnn.version()))
>>> a = torch.cuda.FloatTensor(2).zero_()
>>> print('Tensor a = ' + str(a))
>>> b = torch.randn(2).cuda()
>>> print('Tensor b = ' + str(b))
>>> c = a + b
>>> print('Tensor c = ' + str(c))

如果PyTorch安装正确,则执行此命令时应不会出现错误。

4.5 卸载(如果有需要)

PyTorch可以使用pip3卸载命令轻松卸载,如下所示:

$ sudo pip3 uninstall -y torch

5、torchvision 0.15.1安装

5.1 安装

安装好pytorch之后,使用下面的命令行从源码安装torchvision 0.15.1版本,先安装依赖,然后下载安装包,最后从源码编译安装,大概十分钟左右就好,相关命令行如下:

sudo apt install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-devpip3 install --upgrade pillowwget https://github.com/pytorch/vision/archive/refs/tags/v0.15.1.zipcd vision-0.15.1export BUILD_VERSION=0.15.1python3 setup.py install --user

官方指导步骤

$ sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libopenblas-dev libavcodec-dev libavformat-dev libswscale-dev
$ git clone --branch <version> https://github.com/pytorch/vision torchvision   # see below for version of torchvision to download
$ cd torchvision
$ export BUILD_VERSION=0.x.0  # where 0.x.0 is the torchvision version  
$ python3 setup.py install --user
$ cd ../  # attempting to load torchvision from build dir will result in import error
$ pip install 'pillow<7' # always needed for Python 2.7, not needed torchvision v0.5.0+ with Python 3.6

 我自己操作的步骤

$ sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libopenblas-dev libavcodec-dev libavformat-dev libswscale-dev
#这个官方教程没写
$ pip3 install setuptools
#$ sudo pip3 install --upgrade pillowwget https://github.com/pytorch/vision/archive/refs/tags/v0.15.1.zip
#$ git clone --branch v0.15.1 https://github.com/pytorch/vision torchvision
#克隆源代码
git clone --branch v0.15.1 https://github.com/pytorch/vision torchvision 
cd torchvision/
git checkout -b v0.15.1
#查看当前分支
git branch -a
#如果一直无法拉过来,可以选择使用迅雷下载包后拷贝到开发套件中
$ unzip v0.15.1.zip
$ cd vision-0.15.1
$ export BUILD_VERSION=0.15.1
$ python3 setup.py install --user

同样不行就执行几次,肯定会成功安装的,我安装与运行的截图如下:

 开始编译

 编译安装完毕。

5.2 验证安装

如果torchvision安装正确,则执行此命令时应不会出现错误。

>>> import torchvision
>>> print(torchvision.__version__)

6、python TensorRT支持

都安装好了用pip3 list查一下

pip3 list

发现如下信息,说明全部环境配置完毕

tensorrt                             8.5.2.2        
torch                                2.0.0+nv23.5 
torchvision                          0.15.1   
tensorrt 如果没有,记得用SDK manager 刷一下官方的cuda等支持库就有了

7、总结:

Jeston Orin Nnao -JetPack5.1.1环境下安装很还算顺利,按照以上步骤,中间可能会有几次反复,但是最终都可以完整的配置好环境。

以上就是我今天要分享的内容。纠错,疑问,交流: 911946883@qq.com

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

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

相关文章

OCR图片文字识别,人工手动图片标注软件安装过程

OCR图片文字识别&#xff0c;人工手动图片标注软件安装过程&#xff0c;本章关注标注软件的安装&#xff0c;启动过程 1. 下载 anaconda anaconda 下载慢的问题&#xff1a; 使用国内镜像地址下载&#xff1a; https://mirrors.bfsu.edu.cn/anaconda/archive/ https://www.ana…

OpenMMLab-AI实战营第二期——4.深度学习预训练与MMPretrain

文章目录 1. MMPreTrain算法库介绍1.1 算法库与任务组成1.2 框架概览 2. 经典主干网络2.1 ResNet2.2 Vision Transformer 3. 自监督学习3.1 SimCLR3.2 MAE3.3 iBOT 4. 多模态算法4.1 CLIP4.2 BLIP 视频链接&#xff1a;b站-深度学习预训练与MMPretrain 1. MMPreTrain算法库介绍…

NvM学习笔记(一)以TC387为例,分析为什么要使用Flash 模拟 EEPROM ?

在嵌入式软件系统中&#xff0c;管理非易失性的数据存储&#xff0c;如在系统启动时&#xff0c;从非易失性存储器中读取一些关键数据&#xff0c;在系统关闭阶段&#xff0c;同步应用程序RAM区的数据到非易失性存储器中&#xff0c;是一项十分必要的工作。 目前行业内用的最广…

Linux :: 时间日历指令【3】:cal 指令:查询当日是今年的第几天、输出当前月历、指定月历、输出当前年历、指定年历

前言&#xff1a;本篇是 Linux 基本操作篇章的内容&#xff01; 笔者使用的环境是基于腾讯云服务器&#xff1a;CentOS 7.6 64bit。 学习集&#xff1a; C 入门到入土&#xff01;&#xff01;&#xff01;学习合集Linux 从命令到网络再到内核&#xff01;学习合集 目录索引&am…

Redis分段锁实现超高并发秒杀

参考尼恩著&#xff1a;《Java高并发核心编程》 技术自由圈 业务情景 还是秒杀场景&#xff0c;假设抖音直播间小杨哥上架6000单螺蛳粉&#xff0c;价格9.9买10包&#xff0c;限时1分钟秒杀&#xff0c;此时准备秒杀的人有1万人。我们首先从技术上来看看如果不进行优化是否可以…

控制四旋翼飞行器以进行多目标航点导航的MPC算法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

信不信,3招就能测出你的网工水平

大家好&#xff0c;我的网工朋友 老话常谈一下&#xff0c;在网工这行发展&#xff0c;技术肯定是第一位的。 从你入行的第一步起&#xff0c;就很看重你的技术水平了&#xff0c;越往后&#xff0c;就更注重技术水平和项目经验的融合度。 再往后&#xff0c;技术要有&#…

网络安全实验室|网络信息安全攻防学习平台(脚本关1-6)

传送门&#xff1a; http://hackinglab.cn/ 1. key又又不见了 点击此处开启抓包&#xff0c;send ti repeater 模块 yougotit_script_now2. 快速口算 脚本来源&#xff1a; https://blog.csdn.net/hzxtjx/article/details/125692349 import requests,re# 自动处理cookies&a…

【PCB专题】案例:PCB封装中哪些禁布区我们最常容易忘记增加

USB等直插器件焊接面禁布区 USB器件面那大家都知道有座子有自己的Place_Bound。不同的器件如果Place_Bound重叠的话会报DRC。 但是因为器件是只在一个面上,另一个面是焊接脚,或是另一面不是焊接脚,但PCB封装上为通孔。比如有一些器件从PCB上看是通孔,但PCB Layout人员没见…

c#如何将数据缓存至Redis

环境准备 首先肯定是需要安装redis啦&#xff01;这是我跑在docker的redis&#xff0c;和安装在本地的是 一样的效果 可视化工具Redis Desktop Manager。 使用方法 第一步&#xff0c;安装nuget包 Microsoft.Extensions.Caching.StackExchangRedis 创建一个asp.net.core项目…

Ubuntu20.04 终端打开不了的问题排查

Ubuntu20.04 终端打开不了的问题排查 今天用virtualbox安装了ubuntu20.04 问题&#xff1a;右键打开终端&#xff0c;怎么也打开不了&#xff01; 点了也没反应&#xff0c;或者鼠标转小圈圈&#xff0c;然后也没有反应… 解决方法&#xff1a; 1、Ctrl Alt F6 先切换到终…

ChatGPT:求求你憋再问我关于C++多态的任何问题了...

文章目录 &#x1f490;专栏导读&#x1f490;文章导读&#x1f337;多态在继承中的表现&#x1f33a;虚函数的重写&#x1f33a;虚函数重写的两个例外&#x1f3f5;️1.协变&#x1f3f5;️2.析构函数的重写 &#x1f33a;C11 override 和 final关键字&#x1f3f5;️final&am…

msvcr110.dll丢失怎么修复

msvcr110.dll是Microsoft Visual C 2012 Redistributable的一部分&#xff0c;它是一种动态链接库&#xff08;DLL&#xff09;&#xff0c;旨在存储许多Microsoft Visual C应用程序共享的功能。这些功能包括数学运算、字符串处理、内存分配和释放等。它在Windows操作系统中起着…

精通Java数组的艺术:从初学者到高手的进阶之路(一)

⭐ 数组⭐ 数组的定义⭐ 创建数组和初始化⭐ 数组常见操作⭐ 数组的遍历⭐ for-each 循环⭐ 数组的拷贝⭐ java.util.Arrays 类 ⭐ 数组 数组的概念 ⭐ 数组的定义 数组是相同类型数据的有序集合。其中&#xff0c;每一个数据称作一个元素&#xff0c;每个元素可以通过一个索引…

Python+Selenium 网页自动化 exe 程序编程实现(最全避坑指南)

前言 在我的日常工作中&#xff0c;经常需要在内网&#xff08;不连接互联网&#xff09;的网页版办公系统中进行抓取网页数据、修改表单等大量重复性的操作。我就想是否可以编写出自动化的工具&#xff0c;将这些日常琐碎的操作变得轻松而高效。虽然本人非计算机相关专业&…

OpenGL 纹理

1.简介 纹理是一个2D图片&#xff08;甚至也有1D和3D的纹理&#xff09;&#xff0c;它可以用来添加物体的细节&#xff1b;你可以想象纹理是一张绘有砖块的纸&#xff0c;无缝折叠贴合到你的3D的房子上&#xff0c;这样你的房子看起来就像有砖墙外表了。 为了能够把纹理映射(M…

Day973.授权码许可类型中,为什么一定要有授权码? -OAuth 2.0

授权码许可类型中&#xff0c;为什么一定要有授权码&#xff1f; Hi&#xff0c;我是阿昌&#xff0c;今天学习的是auth2中为什么一定要有授权码的内容。 OAuth 2.0 的授权码许可类型&#xff0c;在小兔打单软件的例子里面&#xff0c;小兔最终是通过访问令牌请求到小明的店铺…

使用raspberry pi pico 制作红绿灯

需要的东西&#xff1a;一块面包版、一块raspberry pi pico、红绿黄led灯各一颗、220欧电阻3只、若干线 编程软件&#xff1a;thonny 操作系统&#xff1a;deepin 23 结果展示&#xff1a; 使用raspberry pi pico 制作红绿灯 from machine import Pin import utime yellowled…

4种整流电路和5种滤波电路

4种整流电路和5种滤波电路 基本电路&#xff1a;一般直流稳压电源都使用220伏市电作为电源&#xff0c;经过变压、整流、滤波后输送给稳压电路进行稳压&#xff0c;最终成为稳定的直流电源。这个过程中的变压、整流、滤波等电路可以看作直流稳压电源的基础电路&#xff0c;没有…

前端人必须知道的三种移动跨平台方案

跨平台技术是前端人必备技能&#xff0c;今天就来为大家解读一下近几年业界主流的三大移动端跨平台方案&#xff1a; Web 天然跨平台&#xff1a; Web App、PWA&#xff08;Progressive Web Apps&#xff09;、Hybrid App、PHA&#xff08;Progress Hybrid App&#xff09;都可…