Jeston NANO 配置并安装 torch+ torchvision

news/2024/11/15 3:55:55/

由于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 torchvisionprint(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.ppmy.cn/news/49029.html

相关文章

Java学习之匿名内部类(非常重要)

目录 一、匿名内部类介绍 基本语法 二、举例说明 1.传统方式实现接口 2.使用匿名内部类进行简化 一、匿名内部类介绍 1.匿名内部类也是类 2.匿名内部类也是内部类 3.匿名内部类没有名字(名字存在于JVM中,不会显示出来) 4.匿名内部类同时…

当我把chatGPT作为Java面试官,它问了我这些问题

向chatGPT提问 面试官:你好,欢迎参加我们的Java面试。请先自我介绍一下。 面试者:非常感谢,我是一名资深Java开发工程师,具有丰富的Java开发经验。我在过去的五年里,主要从事了企业级Java应用的设计、开发…

8. 优先队列

8. 优先队列 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在某些情况下,我们可能需要找出队列中的最大值或者最小值,例如使用一个队列保存计算机的任务,一般情况下计算机的任务都是有优先级…

设计模式-结构型模式之代理模式

6. 代理模式 6.1. 模式动机 在某些情况下,一个客户不想或者不能直接引用一个对 象,此时可以通过一个称之为“代理”的第三者来实现 间接引用。代理对象可以在客户端和目标对象之间起到 中介的作用,并且可以通过代理对象去掉客户不能看到 的内…

Linux --- 软件安装、项目部署

一、软件安装 1.1、软件安装方式 在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下: 1.2、安装JDK 上述我们介绍了Linux系统软件安装的四种形式,接下来我们就通过第一种(二进制发布包)形式来安装 JDK。 JDK…

最短路径Floyd与区间DP

floyd算法是求最短路径的算法,算法复杂度为n(o^3),其优点在于能够一次求解所有点到其他点的最短路径,不需要其他运算,使用二维数组存储。其三层循环自外向内分别为:中间点,起始点和终点。状态方程为: num[…

leetcode 879. Profitable Schemes(有利润的计划)

有几个工程,每个工程需要group[ i ]个人去做,做完了可以得到profit[ i ]的利润。 现有2个限制条件: 人数上限是n, 且参加了一个工程的人不能再参加其他工程。 利润下限minProfit, 至少要获得minProfit的利润。 问有多少种工程的选法&#xff…

C语言-字符串

sizeof和strlen 的区别: 区别1: 1.sizeof计算整个数组大小, 2.strlen 计算有效的数组大小 新建字符数组”hello“ char cdata[128]"hello"; printf("sizeof--cdata的长度:%d\n",sizeof(cdata)); pri…