Jeston NANO 配置并安装 torch+ torchvision

news2024/12/28 19:25:23

由于nano的arm64架构,所以用它进行深度学习配置部署时会与用普通电脑(x86)有所不同:

x86架构

x86架构是最常用的计算机架构之一,它是基于英特尔的8086处理器所设计的,后来又逐渐发展成x86-64架构,支持64位处理。x86架构主要用于个人计算机和服务器,它具有广泛的软件支持,流行的操作系统如Windows和Linux都可以在x86架构上运行。x86架构的处理器运行速度较快,但功耗较高。x86架构最初是为个人计算机设计的,后来逐渐成为服务器领域的主流架构之一。它主要用于桌面和笔记本电脑、服务器以及数据中心,因为它具有高性能和广泛的软件支持。目前,x86架构的处理器覆盖了从低功耗移动设备到高性能服务器的整个范围。其中,英特尔和AMD是x86架构处理器的主要制造商。

ARM架构

ARM架构是一种低功耗、高效能的处理器架构,主要用于移动设备、物联网设备和嵌入式设备。ARM架构的处理器较小且功耗较低,因此在移动设备上广泛使用,如智能手机和平板电脑。除了低功耗之外,ARM架构还支持多核处理、高效的功耗管理和可扩展性,因此它也在其他领域,如服务器、物联网设备和工业自动化设备中得到了广泛的应用。目前,ARM架构的处理器覆盖了从低功耗嵌入式设备到高性能服务器的整个范围。ARM公司本身不制造处理器,而是授权给其他公司进行制造,其中包括高通、三星、苹果等。

以下记录一下Jeston NANO配置并安装 torch 1.7.0 + torchvision 0.8.0

  我的nano是已经配好了基本的CUDA,cuDNN,TensorRT的,如果你不确定自己的装好没有就在命令行输入 nvcc -V ,如果正常输出,说明CUDA路径配置成功,没配置好的话就先去配,这里不多说。直接将怎么配torch 1.7.0 + torchvision 0.8.1。

1. 版本选择

torch和torchvision的搭配是有讲究的,参考下图:

我是用jetson nano来做YOLO深度学习的,环境要求 torch>=1.7.0,所以选择torch 1.7.0 + torchvision 0.8.1,一定要注意你要用来实现的项目对各类部署版本的要求,我之前就下成了torch 1.6.0 + torchvision 0.7.0,后面卸载重下的时候又遇到了一些bug,浪费不少时间。

 

2.安装步骤

安装torch1.6

由于NANO是NANO架构torchvision和torch的下载与x86的不一致,torch下载链接

 建议电脑下载拷过来jetson nano 

先解决torch依赖问题

sudo apt-get update
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev 
sudo apt-get install libjpeg-dev zlib1g-dev
pip3 install Cython
pip3 install torch-1.7.0-cp36-cp36m-linux_aarch64.whl

验证torch

>>> import torch
>>> print(torch.__version__)
1.6.0

安装torchvision

torchvision githup地址:GitHub - pytorch/vision: Datasets, Transforms and Models specific to Computer Vision


# 安装一些必要的包
sudo apt-get install libjpeg-dev zlib1g-dev
 
 
# 下载torchvision
git clone -b v0.8.1 https://github.com/pytorch/vision torchvision
 
# 安装torchvision
cd torchvision
sudo python3 setup.py install

根据个人需求安装对应的版本

测试torchvision

import torchvision

print(torchvision.__version__)

安装pycuda,深度学习所需要的包就已经基本完成

pip3 install pycuda

温馨提示&可能遇到的问题

1. torch1.6的nano版只支持python3.6,请勿尝试其他python版本。

2.请勿修改python3优先级高于python2,之后会出现环境依赖的问题

3. 需要使用apt安装的包,请先安装好,后续修改环境配置时会出现问题。

4. 在安装完jupyter后若使用命令显示`command jupyter not found`,请将其加入环境变量,具体参考(安装jupyter后,使用时显示找不到命令(command not found))

先使用find -name jupyter,然后使用命令
	sudo vim /etc/profile
	添加如下代码
	export PATH=$PATH:~/.local/bin
	退出编辑
	source  /etc/profile//执行配置

5.安装torch过程中遇到缺少别的安装包,比如libmpi_cxx.so.20和libhwloc.so.5

可以到这个网站https://pkgs.org/去下载对应的安装包再进行安装即可

进入pkgs网站,右上角搜索缺少的库,选择操作系统对应的版本,点击进入下载和安装页面

进入到下载和安装页面

安装有两种方式

官网提出的使用apt-get安装

sudo apt-get install libopenmpi2

使用dpkg安装指令进行安装

dpkg -i libopenmpi2_2.1.1-8_arm64.deb

安装完之后,再次进行torch测试还会提示缺少别的包,操作如上。

文章参考:Jeston NANO配置并安装torch

Jetson nano安装Pytorch详解

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

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

相关文章

开放原子训练营(第二季)RT-Thread Nano学习营刘玉宽

4月22日周六,早早起床充满期待的来到了北京艾丽华酒店,参加“2023年RT-Thread线下培训”。这是疫情三年以来开放原子在北京第一次组织的线下活动。 进入到会场,被震撼了,好火爆啊————满满一屋子人,有白发苍苍的老者…

MySQL运维36-排队论

文章目录 1、排队模型2、什么是排队论3、李特尔法则(Little’s law)3.1、李特尔法则的内容3.2、李特尔法则的意义 4、肯德尔排队表示法4.1、肯德尔表示法的核心要素A/S/m4.2、肯德尔表示法中对顾客达到分布的表示:4.3、用肯德尔表示法表示的常…

day03_注释丶关键字丶标识符丶常量

​注释 注释的概念:在编写程序的过程中,对程序代码进行解释说明。 代码本身和人类的自然语言相比,可读性肯定是要差一些,所以为了更快能够知道代码的含义、作用、需要注意地方,所有程序员都应该养成写注释的好习惯。 …

【安卓源码】Binder机制1-Servicemanager 进程的启动和defaultServiceManager

1. servicemanager 进程的启动 对于用户空间,不同进程之间彼此是不能共享的,而内核空间却是可共享的。Client进程向Server进程通信,恰恰是利用进程间可共享的内核内存空间来完成底层通信工作的,Client端与Server端进程往往采用io…

Linux客观题错题笔记

目录 第一章课后测试 课堂测试一 课堂测试2 第二次课后测试 课堂测验4 第4次课后作业 Linux 课堂测试5 第五次课后测试 自测一 实验疑难点 第一章课后测试 a 课堂测试一 d 课堂测试2 bb 第二次课后测试 a , b c,d,c 课堂测验4 a 第4次课后作业 c.dc,c Lin…

自动化测试系列-Selenium三种等待详解

一. 强制等待 sleep 在华为工作了10年的大佬出的Web自动化测试教程,华为现用技术教程!_哔哩哔哩_bilibili在华为工作了10年的大佬出的Web自动化测试教程,华为现用技术教程!共计16条视频,包括:1. 【web自动…

[POJ - 1015]Jury Compromise(01背包问题)

[POJ - 1015]Jury Compromise(01背包问题) 一、问题二、分析1、状态表示2、状态转移3、方案输出 三、代码 一、问题 二、分析 这道题可以转化为一个01背包问题,问题描述可以改为,每个物品具有两个属性 a a a和 b b b,…

异构系统的事务统一处理模型Saga

承接上文分布式事务Seata-TCC事务模式 Saga事务模式相对来说是最复杂的,用的不多,只需要把概念理解透就可以了。 Saga是Seata提供的长事务解决方案,在业务流程中每个参与者都提供本地事务,当出现某个参与者失败的情况则补偿前面已…

如何设计一个牛逼的API接口

在日常开发中,总会接触到各种接口。前后端数据传输接口,第三方业务平台接口。一个平台的前后端数据传输接口一般都会在内网环境下通信,而且会使用安全框架,所以安全性可以得到很好的保护。这篇文章重点讨论一下提供给第三方平台的…

[自注意力神经网络]Mask Transfiner网络-论文解读

本文为CVPR2022的论文。国际惯例,先贴出原文和源码: 原论文地址https://arxiv.org/pdf/2111.13673.pdf源码地址https://github.com/SysCV/transfiner 一、概述 传统的Two-Stage网络,如Mask R-CNN虽然在实例分割上取得了较好的效果&#xff…

OSCP-Twiggy(ZeroMQ、SaltStack)

目录 扫描 ​编辑WEB 扫描 WEB 80端口 运行着一个名为Mezzanine的东西。快速的谷歌搜索显示这是一个内容管理系统,所以让我们看看它是否对任何可以在我们的目标机器上获得shell的东西都是脆弱的: mezzanine版本是4.3.1,并且此漏洞已在4.2.1中修补。 searchsploit没有返回…

说说MySQL中MVCC机制的原理

一、概述: 了解了MySql的底层架构后,我们今天要深入了解下什么是MVCC。 MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种多并发控制的方法,一般在数据库管理系统中,实现对数据…

NAS私有云存储 - 搭建Nextcloud私有云盘并公网远程访问

文章目录 摘要视频教程1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问 4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名 转载自内网穿透工具的文章:使用Nextcl…

LVS负载均衡集群

引言 如今,在各种互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求也越来越高,单台服务器也将难以无法承担所有的访问需求。 一、群集的含义 集群、群集 由多台主机构成,但对外,只表现为一…

ubuntu-18.0.04 鸿蒙HarmonyOS系统源码(HOSP)下载

最近小编在研究鸿蒙开发,想要研究下鸿蒙源码,这里记录下源码下载中遇到的问题及解决,也为HarmonyOS的生态的建设提供下帮助,希望能帮到需要的人。 前置步骤:如果你之前下载过AOSP源码,那这里下载鸿蒙源码应…

第五章-数字水印-2-原理及实现

数字水印原理 根据之前图像获取位平面的操作可知,最低位位平面对整体图像的影响最小,因此数字水印的原理为在图像的最低有效位上嵌入隐藏信息,即在图像的最低位替换为数字水印位平面,完成数字的嵌入操作,对已嵌入数字…

Jenkins+Python自动化测试持续集成详细教程(全网独家)

目录 一、前言 二、环境准备 三、创建Jenkins Job 四、编写Python自动化测试脚本 五、测试报告生成与展示 六、持续集成流程优化 七、实战演练 八、常见问题及解决方案 九、结论 一、前言 Jenkins是目前最为流行的CI/CD工具之一,它可以支持多种语言和技术…

如何使用ffmpeg给视频减震去抖

之前自己发过一些记录仪拍下来的画面,你们可能已经看过了,例如: 最适合骑行的罐装饮料 然而,自己这个骑行记录仪,仅仅是很低端的一款,防抖功能很差,远远比不了GoPro那些高端的户外运动记录仪&am…

使用PCL滤波器实现点云裁剪

主要目的就是根据已知的ROI区域,对点云进行裁剪。要么留下点云ROI区域,要么去除。 ROI区域一般都是一个矩形,即(x,y,width,height)。 那么封装的函数形式一般如下: pcl:…

《死锁》与《CAS ABA》问题

文章目录 什么是死锁常见死锁情况❗️死锁的必要条件❗️如何避免死锁呢?CASCAS中ABA问题解决ABA问题 什么是死锁 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象 。 常见死锁情况❗️ 1.一个线程一把…