在 Raspberry Pi 4 上安装 PyTorch_树莓派如何查看是否装了pytorch-程序员宅基地

技术标签: python  raspberryPi  深度学习  树莓派  opencv  

介绍。

本页将指导您在64 位操作系统的 Raspberry Pi 4 上安装PyTorch 1.11.0或更早版本、TorchVisionLibTorchCaffe2 。
PyTorch 是专门为深度学习开发的软件库。它消耗了大量的 Pi 资源。您可以在 Raspberry Pi 4 上运行 PyTorch,但不要期待奇迹。它运行你的模型,如果不是太复杂的话,但它不能训练新模型。它也不能执行所谓的迁移学习。
PyTorch 在 Python 上运行。有可用的 C++ API,但我们尚未对其进行测试。如果您希望您的 PyTorch 模型在您的 Raspberry Pi 上快速运行,请考虑将您的模型导出到 ONNX。保存为 ONNX 模型后,您可以将其导入 ARM 友好的 C++ 框架,例如 ncnn 或 MNN。它将大大加快您的模型。
如果您的 Raspberry Pi 上有 Ubuntu,则Ubuntu 18.0420.04有特殊的编译轮。

提示。

我们经常会遇到这样的问题,如果我们有一个带有预装框架和深度学习示例的 Raspberry Pi 4 的 SD 图像
我们很高兴遵守这一要求。请在我们的GitHub页面上找到专门用于深度学习的完整可用的 Raspberry Pi 4。从我们的 GDrive 站点下载 zip 文件,解压缩并将图像闪存到 16 GB SD 卡上,然后尽情享受吧!
我们只有 Raspberry Pi 64 位操作系统的指南。随着 PyTorch 的发展,在简单的 32 位机器上构建它变得越来越困难。例如,JIT 跟踪 不适用于 32 位操作系统。 此外,今天我们的大多数访问者在他们的 Raspberry Pi 上使用 64 位操作系统来构建他们的深度学习模型,因为它更快、更健壮。
 我们讨论了两种安装,一种带有 Python 3 wheel 。另一种方法是从头开始构建。不幸的是,没有可用于 Raspberry Pi 4 的官方 pip3 wheel 。但是,为了您的方便,我们创建了这些轮并将它们放在GitHub 上。

版本检查。

在 Raspberry 64 位操作系统上安装 PyTorch 之前,请检查您的操作系统。运行命令 uname -a 并使用下面的屏幕转储验证您的版本。

您还需要使用命令gcc -v检查您的 C++ 编译器版本。它还必须是aarch64-linux-gnu版本,如屏幕截图所示。如果您有 64 位操作系统,但您的 gcc 版本与上面给出的不同,请使用最新版本重新安装整个操作系统。该指南可在此处找到:在 Raspberry Pi 4 上安装 64 位操作系统。因为我们要构建库,所以需要一个 64 位 C++ 编译器。即使你使用 Python 轮子,gcc 也会在幕后被调用。
同样重要的是,根据我们的说明安装后的 zram 交换大小超过 3 GB。只要您不从头开始构建 PyTorch,Less 就没有问题。

wheel安装

PyTorch 由 Ninja 构建。完成整个构建大约需要 3 个小时。我们已经在我们的 GitHub 页面上发布了这些wheel。随意使用这些。完成所有繁琐的工作后,现在只需几分钟即可在 Nano 上安装 PyTorch。对于顽固分子,完整的程序将在本手册后面介绍。
整个过程如下。wheel太大,无法在 GitHub 上存储,因此使用了 Google 驱动器。请确保您安装了最新的 pip3 和 python3 版本,否则 pip 可能会出现消息“ .whl is not a supported wheel on this platform ”。

Python检查。

检查您的 Python3 版本。每个版本都需要一个独特的wheel。树莓派 64 位操作系统使用 Python 3.7.3。所以需要下载torch-1.XY- cp37 - cp37m -linux_aarch64.whl。如果你有最新的 Raspberry Pi Bullseye OS,你的 Python 版本是 3.9.2。
毫无疑问,Python 版本会随着时间的推移而升级,您将需要一个不同的轮子。查看所有wheel的GitHub 页面

PyTorch1.11.0版本安装

# get a fresh start
sudo apt-get update
sudo apt-get upgrade
#install the dependencies (if not already onboard)
sudo apt-get install python3-pip libjpeg-dev libopenblas-dev libopenmpi-dev libomp-dev
#above 58.3.0 you get version issues
sudo -H pip3 install setuptools==58.3.0
sudo -H pip3 install Cython
#install gdown to download from Google drive
sudo -H pip3 install gdown

Buster OS
#download the wheel
gdown https://drive.google.com/uc?id=1gAxP9q94pMeHQ1XOvLHqjEcmgyxjlY_R
# install PyTorch 1.11.0
sudo -H pip3 install torch-1.11.0a0+gitbc2c6ed-cp37-cp37m-linux_aarch64.whl
# clean up
rm torch-1.11.0a0+gitbc2c6ed-cp37-cp37m-linux_aarch64.whl

or Bullseye OS
# download the wheel
gdown https://drive.google.com/uc?id=1ilCdwQX7bq72OW2WF26Og90OpqFX5g_-
# install PyTorch 1.11.0
sudo -H pip3 install torch-1.11.0a0+gitbc2c6ed-cp39-cp39-linux_aarch64.whl
# clean up
rm torch-1.11.0a0+gitbc2c6ed-cp39-cp39-linux_aarch64.whl

PyTorch1.10.0版本安装

# get a fresh start
sudo apt-get update
sudo apt-get upgrade
# install the dependencies (if not already onboard)
sudo apt-get install python3-pip libjpeg-dev libopenblas-dev libopenmpi-dev libomp-dev
# above 58.3.0 you get version issues
sudo -H pip3 install setuptools==58.3.0
sudo -H pip3 install Cython
# install gdown to download from Google drive
sudo -H pip3 install gdown

Buster OS
# download the wheel
gdown https://drive.google.com/uc?id=1y-X1UGC43xUfnycJcuDp7tlyFi8QHxvs
# install PyTorch 1.10.0
sudo -H pip3 install torch-1.10.0a0+git36449ea-cp37-cp37m-linux_aarch64.whl
# clean up
rm torch-1.10.0a0+git36449ea-cp37-cp37m-linux_aarch64.whl

or Bullseye OS
# download the wheel
gdown https://drive.google.com/uc?id=10zJmU1f7PoxN8ARZol4mtbwok4G23XKZ
# install PyTorch 1.10.0
sudo -H pip3 install torch-1.10.0a0+git36449ea-cp39-cp39-linux_aarch64.whl
# clean up
rm torch-1.10.0a0+git36449ea-cp39-cp39-linux_aarch64.whl

PyTorch1.9.0版本安装

# get a fresh start
sudo apt-get update
sudo apt-get upgrade
# install the dependencies (if not already onboard)
sudo apt-get install python3-pip libjpeg-dev libopenblas-dev libopenmpi-dev libomp-dev
# above 58.3.0 you get version issues
sudo -H pip3 install setuptools==58.3.0
sudo -H pip3 install Cython
# install gdown to download from Google drive
sudo -H pip3 install gdown

Buster OS
# download the wheel
gdown https://drive.google.com/uc?id=18KztAf3W_kqFYP2f9uqLj3HBdhoMvVe4
# install PyTorch 1.9.0
sudo -H pip3 install torch-1.9.0a0+gitd69c22d-cp37-cp37m-linux_aarch64.whl
# clean up
rm torch-1.9.0a0+gitd69c22d-cp37-cp37m-linux_aarch64.whl

or Bullseye OS
# download the wheel
gdown https://drive.google.com/uc?id=1p9Sp5YmCJwIkmQIWkpuIkE4NgeYPOr-U
# install PyTorch 1.9.0
sudo -H pip3 install torch-1.9.0a0+gitd69c22d-cp39-cp39-linux_aarch64.whl
# clean up
rm torch-1.9.0a0+gitd69c22d-cp39-cp39-linux_aarch64.whl

成功安装后,您可以使用以下命令检查 PyTorch。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_41012767/article/details/124247281

智能推荐

2022-IOS-For-Fun_um-ios 2022-程序员宅基地

文章浏览阅读503次。2022 IOS Developer for funBasic stuffComputer Science fundamentalsMain parts of a computer system - CPU, memory, storageHow Operating System worksWhat is a databaseHow Internet worksGit version controlObject Oriented ProgrammingThe setupMacOSHomeb_um-ios 2022

PHP中的循环描述错误有哪些_PHP关于while循环中修改选取条件出现的错误-程序员宅基地

文章浏览阅读109次。业务需求是:读取某个表中每一行的的字段A、B、C的值如果C的值是0,就改成1或者2代码大概是这么写的:$query = "SELECT * FROM table WHERE C = 0";$result = mysqli_query($link, $query);if($result){while ($rows = mysqli_fetch_array($result)){if (判断条件为tru..._while循环报错php

ionic介绍-程序员宅基地

文章浏览阅读3.4k次。最近公司在使用ionic做混合APP,虽然是最后端,但是也查一下东西,介绍一下吧这是菜鸟教程的Ionic一.介绍ionic是一种老式的使用H5开发iOS和Android应用的方式,也可以使用新的语言React Native开发,当然对于H5实现复杂的或者交互性没有那么好的,就可以使用iOS和Android的插件实现;二.Ionic特点a.开发方面:1.ionic 基于Angular..._ionic

C/C++ 用什么软件编程_c++编程软件-程序员宅基地

文章浏览阅读3.7k次,点赞2次,收藏8次。Lightly​ 是一款全平台都通用、轻量且功能强大的在线编辑器,用户不需要配置任何编译运行环境,选择开发语言后即可开始写代码。代码和项目文件可以实时保存在云端的,换台不同系统的电脑或者是用平板,也可以打开项目,继续编码。它还具备项目一键分享功能,对于有团队协作需求的开发者来说,是最合适的选择。_c++编程软件

KEIL文件移动脚本--网关脚本_nrfutil' 不是内部或外部命令,也不是可运行的程序-程序员宅基地

文章浏览阅读650次。上面是效果原因 每次都是编译在大文件里面我希望只有BIN文件在一个干净的地方写一个.BAT在任何地方都是可以执行的 最后挂在KEIL里面内容 mv.batFOR /F %%I IN ('DIR /B /S "D:\TSBrowserDownloads\DA145xx_SDK_for_handover\DA145xx_SDK\old\projects\Izar\src\Node_Dialog_DA14531_SHENNONG\Keil_5\out_DA14531\Ob..._nrfutil' 不是内部或外部命令,也不是可运行的程序

全面解析并解决计算机缺失msvcp80.dll文件的问题-程序员宅基地

文章浏览阅读427次,点赞24次,收藏17次。在使用计算机过程中,有时会遇到“计算机缺失msvcp80.dll文件”的错误提示,这直接影响了部分应用程序的正常运行。msvcp80.dll是Microsoft Visual C++ 2005 redistributable runtime library(即VC++ 2005运行时库)的一部分,对于基于VC++ 2005编译的应用程序至关重要。本文将深入探究此问题产生的原因,并提出切实可行的解决方案。_msvcp80.dll

随便推点

Oracle 常用语句_oracle查询导入目录常用语句-程序员宅基地

文章浏览阅读112次。https://download.csdn.net/download/u014096024/21109113oracle练习1.如何查询一个角色包括的权限 a.一个角色包含的系统权限 select * from dba_sys_privs where grantee='DBA'; b.一个角色包含的对象权限2.oracle究竟有多少种角色 (查询oracle中所有的角色,一般是dba) select * from dba_roles;3.查询o..._oracle查询导入目录常用语句

数据可视化之美:经典案例与实践解析_数据可视化经典-程序员宅基地

文章浏览阅读9.3k次,点赞25次,收藏93次。随着DT时代的到来,传统的统计图表很难对复杂数据进行直观地展示。这几年数据可视化作为一个新研究领域也变得越来越火。成功的可视化,如果做得漂亮,虽表面简单却富含深意,可以让观测者一眼就能洞察事实并产生新的理解。可视化(visualization)和可视效果(visual)两个词是等价的,表示所有结构化的信息表现方式,包括图形、图表、示意图、地图、故事情节图以及不是很正式的结构化插图。基本的可视化展..._数据可视化经典

8086汇编4位bcd码_[走近FPGA]之二进制转BCD码-程序员宅基地

文章浏览阅读1.3k次。注:本文由不愿透露姓名的 @Bulingxx 撰写。以下为正文。在上一篇文章中介绍了数码管如何在FPGA开发板上实现动态显示,其文章链接如下:人生状态机:[走近FPGA]之数码管动态显示​zhuanlan.zhihu.com本文的所有实例都使用硬木课堂Xilinx Aritx 7 FPGA板实现,且附有上板演示视频,该开发板的链接如下:硬木课堂 Xilinx Aritx 7 FPGA板 Arm C..._8086汇编语言 实现二进制数到bcd码的转换

使用nfs之后初始化mysql失败_influxdb数据库 nfs存储初始化失败-程序员宅基地

文章浏览阅读1.7k次。将nfs作为mysql的数据目录输出后,在另一台主机上启动mysql进程时,会出现如下这样的错误,究其原因,其实还是nfs自身设计的缺陷。 初始化就是使用特定的用户,去特定的目录去更新mysql,虽然说添加mysql用户之后,所有的对数据的修改权限都是以mysql用户执行的,而且nfs的数据目录也都设计成了mysql,常理是没有问题的。但是,执行mysql_ins_influxdb数据库 nfs存储初始化失败

ORC事务表与Hyperbase表的区别_星环 hyperbase、orc、text表区别-程序员宅基地

文章浏览阅读2.5k次。今天有客户问了我一下关于ORC事务表与Hyperbase表的区别问题,我回答的不是特别好,所以这里总结一下他们两个的区别,以便能掌握得更加深入些。ORC事务表:轻量级索引,支持CRUD操作,但是不建议大规模的单条增删改查,因为TDH(TDH是星环自研的一套大数据平台,类似于CDH,但是进行了很多的优化)是大数据数仓系统,是需要使用批量进行增删改查,索引单条操作的性能会降低;事务表需要进..._星环 hyperbase、orc、text表区别

Mybatis_"mybatis the content of element type \"choose\" mu-程序员宅基地

文章浏览阅读261次。Mybatis环境:JDK1.8Mysql5.7maven 3.6.1IDEA回顾JDBCMysqlJava基础MavenJunit1. 简介1.1 什么是MybatisMyBatis 是一款优秀的持久层框架它支持自定义 SQL、存储过程以及高级映射MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java _"mybatis the content of element type \"choose\" must match \"(when*,otherwise?)"

推荐文章

热门文章

相关标签