一开始觉得配置树莓派应该和电脑上差不多,先安装anaconda然后在里面建立tensorflow环境,但这过程比我想的艰难多。下面给出我尝试的三种配置tensoflow的方法,前两种失败了,最后一种成功。(前两种虽然失败但这里也记录一下)
首先要确定我们树莓派的架构,输入uname -a ,可以看到我们是armv7架构。
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 5.10.17-v7l+ #1403 SMP Mon Feb 22 11:33:35 GMT 2021 armv7l GNU/Linux
方法一:miniconda法
先安装miniconda,然后在miniconda里面配置tensorflow环境
根据我的armv7架构去这个清华镜像网站选择对应你操作系统的版本下载nimiconda:
我的对应的版本是:
于是复制链接然后在终端下载:
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda-latest-Linux-armv7l.sh
下载完后如果文件在home/pi/Download里,那就cd Download下面,我的就在home/pi下所以直接安装:
pi@raspberrypi:~ $ sudo bash Miniconda3-latest-Linux-armv7l.sh
enter
yes
就安装成功了。
添加环境:
sudo nano /home/pi/.bashrc # -> add: export PATH="/home/pi/miniconda3/bin:$PATH"
然后
ctrl+x
安装完成,测试一下(重启后测试):
conda -V
会显示miniconda版本
或者输入:
python
会显示python3.4
到这里miniconda就安装完成了,现在就是去寻找我的armv7对应的tensorflow版本了。各种版本下载地址:
https://github.com/lhelontra/tensorflow-on-arm/releases
里面有tensorflow1.0~2.4.0之间的版本,但armv7架构的tensorflow2.0以上只支持python3.5或者python3.7(cp35,cp37表示需要python3.5,python3.7),而我们安装的miniconda只能提供最高python3.4版本,所以minconda方法安装失败。也就是说我需要能提供python3.5,或者python3.7的环境,后面的方法2对应提供python3.5,方法3对应提供python3.7
方法2 berryconda法
berryconda 是一款为树莓派定制基于 conda python 发行版的开源软件。我们可以使用它来实现类似 Miniconda 和 Anaconda 的功能。
berryconda 提供了 python2.7 的 Berryconda2 和 python 3.6 的 Berryconda3,同时还支持 树莓派 0 1 2 3各个系列,我们可以根据自己的树莓派版本选择适合的版本安装即可。具体步骤:
下载
wget https://github.com/jjhelmus/berryconda/releases/download/v2.0.0/Berryconda3-2.0.0-Linux-armv7l.sh
安装
bash Berryconda3-2.0.0-Linux-armv7l.sh
安装过程中不需要使用 sudo,程序默认会安装到 /home/pi/berryconda3 中。在安装脚本程序的最后一步,输入 yes,脚本会自动将路径添加到 .bashrc 中。
安装完成后,可以升级一下conda,操作如下:
conda update conda
完成后可以查看以下 conda 的版本:
conda --version
>> conda 4.3.29
下面就可以通过conda来创建tensorflow环境了,具体步骤:
创建名为tensorflow的python=3.5的环境
conda create --name tensorflow python=3.5
然后下载tensorflow,各版本下载地址:
https://github.com/lhelontra/tensorflow-on-arm/releases
我的armv7支持的tensorflow2.4.0 对应python3.5的地址:
https://github.com/lhelontra/tensorflow-on-arm/releases/download/v2.4.0/tensorflow-2.4.0-cp35-none-linux_armv7l.whl`在这里插入代码片`
先激活创建的tensorflow环境:
conda activate tensorflow
下载
wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v2.4.0/tensorflow-2.4.0-cp35-none-linux_armv7l.whl
安装(安装前先升级一下pip:python -m install --upgrade pip)
pip install tensorflow-2.4.0-cp37-none-linux_armv7l.whl
然后就发现有几个包安装不了导致tensorflow2.4.0安装失败,于是我尝试安装armv7支持的tensorflow 对应python3.5的其他版本…然后发现老是有几个包安装失败,导致tensorflow安装失败,绝望了已经(可能的原因是python3.5已经不维护,现在就只能指望tensorflow对应python3.7版本可以安装了,但barryconda最高只支持到python3.6,所以只能换方法)
方法3 virtualenv和virtualenvwrapper法
通过这连个软件来创建tensorflow所需的python3.7环境。
安装virtualenv和virtualenvwrapper
sudo apt-get install virtualenv
sudo apt-get install virtualenvwrapper
配置virtualenvwrapper
sudo nano ~/.bashrc
将以下命令行加入到加入到~/.bashrc的最后
#export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=$HOME/.virtualenvs
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
输入命令运行
source ~/.bashrc
创建虚拟环境(创建在home/pi下名为tensorflow)
virtualenv -p /usr/bin/python3.7 tensorflow
开启虚拟环境
source /home/pi/tensorflow/bin/activate
以后可能用到的指令
退出虚拟环境
deactivate
删除环境:
rmvirtualenv 环境名`)
进入到激活后的tensorflow环境(以下所以步骤(黑底代码)都是在激活后的tensorflow下完成)
然后在下面这个地址里找到armv7支持的tensorflow2.4.0及对应的python3.7版本
https://github.com/lhelontra/tensorflow-on-arm/releases
下载我需要的版本
wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v2.4.0/tensorflow-2.4.0-cp37-none-linux_armv7l.whl
安装(安装前先升级pip: python -m install --upgrade pip)
pip install tensorflow-2.4.0-cp37-none-linux_armv7l.whl
测试
python
import tensorflow as tf
不报错
安装完成后需要替换及继续安装一些所需要的包
安装numpy==1.19.2 tensorflow2.4.0支持这个版本,所以环境例numpy版本不对的话就卸载重装指令如下:
pip numpy==1.19.2
这个环境里对应的scipy版本为3.6(我开始安装的3.7.3会与numpy冲突导致没有)
pip install scipy==3.6
如果会用到PIL 里面的Image,不是安装PIL(python2是安装这个)要安装pillow
pip install pillow
我安装后的版本是pillow9.0,实测有用,用法是
from PIL import Image
参考文章:
https://blog.csdn.net/qq_43629743/article/details/105408164
https://blog.csdn.net/weixin_39759247/article/details/107055215
https://www.jianshu.com/p/ccad38dbb897
https://blog.csdn.net/weixin_51331359/article/details/119489940