热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

树莓派4开箱及PyTorch配置记录

开箱定了一个多月的树莓派44G版终于到货了,这一代接口上有些变化,4核A72的CPU发热也大很多,因此在等到货的过程中我就买了:水晶壳,主要是为了上风扇,到处搬的时候也要安全些;4

开箱

定了一个多月的树莓派4 4G版终于到货了,这一代接口上有些变化,4核A72的CPU发热也大很多,因此在等到货的过程中我就买了:

  1. 水晶壳,主要是为了上风扇,到处搬的时候也要安全些;4代我打算先测试AI性能,被动散热就先不弄了
  2. A1的TF卡,目前Linux还不支持A2的新增指令,加上A2的卡现在太贵,必要性不大;U1、U3这些无所谓,主要是随机读写性能
  3. 5V 3A的电源和Type-C的线,目前4代供电设计有Bug,最好用傻充、傻线,我就箱子里翻了个小米手机头子
  4. Micro HDMI转HDMI线,这个最关键

到手就开箱拍照了,Made in UK,感觉做工还是可以的。主要的芯片都贴在正面,散热相对好处理些,室温28度,有风扇无散热片低负载的情况下CPU在49度左右,感觉还是比较高的。

第一感觉,开机速度非常快,大概十来秒就显示桌面了,之前心心念念的USB-Boot也没有多大必要了,微型U盘随机读写也快不到哪儿去。手上没有4K屏,2K带鱼屏是可以直接点亮的。系统方面目前就只有Raspbian可以用,Ubuntu的适配还需要等待。多媒体方面,测试了下B站是可以流畅播放的,各种日常操作都是比较顺滑的,TF卡的读写性能也完全够用,装apt包、编译不存在IO瓶颈。

目前发现的主要问题是蓝牙适配MX Anywhere 2s鼠标还有些问题,会导致整个蓝牙挂掉,但是这个鼠标在Ubuntu下也有问题,应该不是树莓派的锅。折腾Linux还是搞套无线键鼠,比蓝牙稳定得多。

配置

  1. 软件源

首先不知什么原因,即使挂了代理Raspbian的源依然是龟速,需要切换到国内镜像,参考这里,把stretch改成buster就可以了。

2. 远程访问

直接在树莓派配置工具里点开ssh和vnc就可以了,人生苦短,有现成的就不要去折腾,即使我们玩树莓派本身就是折腾。访问vnc需要装realvnc的客户端,还是很稳定的,最近两年tightvnc变得很难配,realvnc是个不错的替代。

4代的WIFI是支持5G的,要注意设置地区,我的路由器为了支持Switch使用了日本地区和信道,同样需要在树莓派配置工具中配置。2.4G没有这个问题,但是容易和2.4G无线键鼠、蓝牙之类的相互干扰。

3. Berryconda

不建议安装Miniconda的armv7l二进制包,它的包都很久没有更新了。直接使用Berryconda,armv7l版本可以在rpi4上正常使用,下载并安装:

wget https://github.com/jjhelmus/berryconda/releases/download/v2.0.0/Berryconda3-2.0.0-Linux-armv7l.sh
chmod a+x Berryconda3-2.0.0-Linux-armv7l.sh
./Berryconda3-2.0.0-Linux-armv7l.sh

然后就可以建立虚拟环境:

conda create -n pytorch python=3.6

4. Pytorch

接下来参考这里、Pytorch官方源代码安装说明和官方Caffe2树莓派编译脚本,开始安装Pytorch。

首先是apt,能够在apt装的包就尽量不要用pip或者conda了,综合知乎文章和Caffe2官方脚本,目前找不到libatlas-dev,就不装了,Caffe2官方脚本也没有要这个。其他的像glog之类,是可以选装的,后面setup.py如果检测到就会自动使用:

sudo apt-get install libopenblas-dev m4 libblas-dev cmake

接下来安装Python依赖。apt、pip、conda三者是有一定重叠的,遇到问题可以灵活调整,反正目标就是满足依赖的版本要求。要小心虚拟环境有可能读不到apt安装的全局site,尽量使用conda和pip。

conda install opencv numpy pyyaml cython

Berryconda的numpy是1.15版本的,有个Bug会导致torch不能用,这里我们再用pip装一个1.16(是的,2个版本可以共存):

pip install numpy==1.16

接下来获取pytorch源码并切换到1.2.0分支,关闭不需要的依赖,具体的开关可以查看setup.py,里面有非常详细的说明。不用担心fpu配置,Pytorch会自动识别并添加相应的配置项:

git clone https://github.com/pytorch/pytorch.git
cd pytorch
git checkout v1.2.0
git submodule update --init --recursive
export NO_CUDA=1
export NO_DISTRIBUTED=1
export NO_MKLDNN=1
export NO_TEST=1

好了,可以开始编译wheel:

python setup.py bdist_wheel

1.2.0使用的protobuf有一个Bug会导致报undefined reference to `__atomic_fetch_add_8’的错误,参考Pytorch Issue,升级protobuf到最新即可解决:

git submodule update --remote third_party/protobuf

执行这一句之后重新编译就可以了。

由于有了4G内存,并行编译再也不用担心爆内存了。4个核心全开,整个编译过程中内存占用最多1.6G左右(所以2G版的应该也可以)。编译速度挺快的,用了NO_TEST,2个多小时搞定。编译的时候,有风扇无散热片的CPU在59度左右,感觉还好。

最后就是安装编译好的wheel包了:

cd dist
pip install ./torch-1.2.0a0+8554416-cp36-cp36m-linux_armv7l.whl

我已经在树莓派4上跑了一个人脸检测+跟踪的网络,由于模型比较大,每一帧需要500ms左右(显卡上几毫秒)。接下来就是找一些适合移动端的网络来试试了。


推荐阅读
  • 关于如何快速定义自己的数据集,可以参考我的前一篇文章PyTorch中快速加载自定义数据(入门)_晨曦473的博客-CSDN博客刚开始学习P ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • U盘测试の量产过程及量产前后性能比较
    测试优盘:亿捷速豹CM981优盘大小:4G优盘芯片:ITE(联阳)IT1167FlashID:E ... [详细]
  • 都会|可能会_###haohaohao###图神经网络之神器——PyTorch Geometric 上手 & 实战
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了###haohaohao###图神经网络之神器——PyTorchGeometric上手&实战相关的知识,希望对你有一定的参考价值。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
author-avatar
拉桑357_584
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有