树莓派CM4运行轻量级算法(包含conda,torch,tqdm,thop,以及报错解决)

1 架构分析与参考选择

树莓派CM4作为一个工业级树莓派模块,其与4B性能相似,且可以通过接口与拓展底板连接,实现自定义功能,使用更加灵活。

同样的,CM4的架构也与4B相似,为aarch64架构,其实也可以叫做armv8架构

首先,我们选择这篇文章作为参考:

一文讲解———树莓派安装Ubuntu18.04(aarch64),anaconda3,vscode,python3.7.2,tensorflow2.4.0(包含keras),opencv,-CSDN博客

当然了,要是没遇到问题,就不会有这篇文章了,咱们慢慢说,各位看官也可以看看有没有遇到和我相似的问题。

2 问题分析

2.1 系统问题

硬件上的限制,使得Ubuntu18.04无法使用,这里只能退而求其次,选择了20.04,python大版本的变换就很容易埋下隐患。

2.2 miniconda安装问题

如果说系统问题可以退而求其次,conda的安装问题就是一道绕不过的坎。由于架构特殊,首先排除使用Anaconda,选择Miniconda,而当你wget到lastest版本并想直接进行安装时,会告诉你无法安装,或者在安装成功,你conda init的时候,来个illegal instruction (core dump)。注意,这里就算你下载对了aarch64架构的whl安装包,也是不行的,这个时候,根据报错,我搜索到了一些文章,大体都将矛头指向了版本不对应。我查了一下,我的系统,默认python版本为3.8.10,但镜像网站提供的文件中,只有统一的py38对的上,后面有23.x.x的,也有4.x.x的,这里我选择了不少种版本,从最新的版本一直到4.10.2版本(记住这个4.10.2),都会出现相同的安装问题,当时没留图,这篇文章主要是记录成功方法的,按照后面的解决方法直接来估计也就碰不到这个问题了,这里就不放图了。对了,至少我这里,archiconda也不好使哈。

2.3 miniconda装上了,pip不能用,torch装不上

好不容易安装好了conda,该装torch了,好嘛,问题又来了,首先,是torch的安装出现问题,安装torch的时候,直接illegal instruction (core dump),不讲道理,没有任何的价值,在conda外装torch的时候,报错有所变化,变成了这个安装包不适合这个平台(platform),不管你是架构选错了,还是版本错了,统统是不适合这个平台,conda命令好像还安装不了下载好的安装包,得用pip。而pip出的问题是,只要使用pip指令,根本不给你干活,也是直接给你illegal instruction (core dump),就没了,不干活前面安装conda也会出现这个问题。检查一下,发现pip在创建环境的时候,默认是23.x.x,乐,肯定是版本问题了,也就是这个时候,我发现conda连个pip都装不了,才排查出来conda换源的问题。conda换源嘛,不同的文章里面给出的不同,本倒霉蛋用的正好是一篇只添加了两个源的文章。。。严重影响了后面的各种软件的安装,也逼着我不得不修复pip的问题。

2.4 网络跑起来过程中出现的问题

我个人是想在树莓派上实现一个轻量级网络的,但是又遇到了一些小问题,比如说。。。跑起来之前,please use torch.load with map_location=torch.device(‘cpu’) to map your storages to the CPU,也就是我把在GPU上训练出来的权重喂给网络,网络不给吃,跑起来之后,too many open files,吃撑了不给干活这种事情,后面简单列个清单吧。

3 解决问题

3.1 解决conda的问题

这个问题贼好解决,我也就是凌晨五点惊醒然后搜了十来分钟就解决了,请看文章

树莓派4b安装miniconda_miniconda树梅派4b安-CSDN博客

说来也简单,在知道了自己的python版本后,选择4.9.2之前的版本就可以了。。。当然了,重头戏在下面的pip上面

哦,记得创建conda环境,用这句话

conda create -n yourname python==3.x
conda activate yourname

3.2 解决torch、pip的问题

首先!conda换源要谨慎:

conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes

按照这个来,或者你能找到更全的也行,越全越好,缺源害人不浅啊。

换好之后可以用这句验证一下:

conda config --show channels

出现七个网址加一个defaults就对了

随后,卸载pip,反正也用不了,直接卸载,随后,安装20.2.2版本的pip,我这里亲测兼容,不兼容就再往前找版本。为什么直接卸载再安装呢?因为其他文章的解决方法多是利用pip自我修复,但是这里pip根本用不了,所以就只能自己找版本了。去这里找:Links for pip

conda uninstall pip
conda install pip==20.2.2

安装好pip后,你可能会惊喜的发现,你这个环境的python版本,甚至是你系统环境的python版本都不对了,这时可以靠一句话改回来,建议是改成3.8哈,或者和你的系统原python版本一样

conda install python==3.8

这个时候,进入这个网站,去挑选你需要的torch安装包吧!https://download.pytorch.org/whl/torch_stable.html

这俩下载下来,在你的conda环境中找到他们,就可以利用pip install进行安装了,非常简单愉快。

至此,问题解决。

3.3 一些网络的问题(可能会持续更新)

3.3.1 please use torch.load with map_location=torch.device(‘cpu‘) to map your storages to the CPU.

好说,程序里加一句话的事儿please use torch.load with map_location=torch.device(‘cpu‘) to map your storages to the CPU.-CSDN博客

3.3.2 too many open files

也好说,命令行里一句话的事儿

程序 too many open files 问题排查及解决-CSDN博客

3.3.3 可能存在的警告问题

这个可有可无吧,好像是batch_size设置的有问题才会出现,没啥事,就是一大片很烦,给结果都盖住了,也是一句话解决

 export OMP_NUM_THREADS=1

文章在这里:树莓派问题解决-CSDN博客

ok,暂时就这些。

  • 24
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值