树莓派实现垃圾分类【深度学习图像识别】:keras+tensorflow
- 1.配置好ssh和vnc之后,换源:
- 2.python虚拟环境配置
- 3.安装tensorflow1.14.0
- 4.安装keras
- 5.开始测试;import keras前面加import os就能忽略提示。
系统环境:2020-08-20-raspios-buster-armhf-full
工程要求:Tensorflow 1.14.0 + Keras 2.2.4 + Python 3.7
1.配置好ssh和vnc之后,换源:
第一步,先备份源文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak
第二步,编辑系统源文件
sudo nano /etc/apt/sources.list
第三步,将初始的源使用#注释掉,添加如下两行清华的镜像源。Ctrl+O ++ Ctrl+X
【注意】这里的树莓派系统是Raspbian-buster系统,在写系统源链接时要注意是buster,网上很多教程都是之前stretch版本,容易出错!
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
第四步,保存执行如下命令 sudo apt-get update,完成源的更新软件包索引。
sudo apt-get update&&upgrade
第五步,还需要更改系统源
sudo nano /etc/apt/sources.list.d/raspi.list
用#注释掉原文件内容,用以下内容取代:用#注释掉原文件内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
第六步,配置换源脚本,更改pip源
新建文件夹:
mkdir ~/.pip
sudo nano ~/.pip/pip.conf
在pip.conf文件中输入以下内容:
timeout=100
index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
extra-index-url= http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=
pypi.tuna.tsinghua.edu.cn
mirrors.aliyun.com
2.python虚拟环境配置
首先进行系统软件包更新
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
然后更新自带的pip,由于Raspbian自带的pip3为9.0.1版本,较为老旧,我们使用以下命令来更新pip3:
python3 -m pip install --upgrade pip
尝试在更新完pip3后,键入命令:
pip3 list
新建个文件夹(虚拟环境用)
cd Desktop
mkdir tf_pi
cd tf_pi
安装虚拟环境这个好东西
python3 -m pip install virtualenv
增加环境变量,使得该好东西可以用起来
sudo chmod -R 777 /root/.bashrc
sudo nano ~/.bashrc
把
export PATH=/home/pi/.local/bin/:$PATH
放到最后,添加环境变量
source ~/.bashrc
成功了之后:整一个虚拟环境
virtualenv env
source env/bin/activate
此处插入图片
3.安装tensorflow1.14.0
用电脑下载:(链接)python3.7版本只能安装1.14.0-Buster版本的TensorFlow
link
此处插入图片
用U盘将这个文件拷到树莓派上,建一个bag文件夹存放
此处插入图片
安装依赖包:
sudo apt install libatlas-base-dev
安装一些环境
sudo apt-get install -y libhdf5-dev libc-ares-dev libeigen3-dev
python3 -m pip install keras_applications==1.0.8 --no-deps
python3 -m pip install keras_preprocessing==1.1.0 --no-deps
python3 -m pip install h5py==2.9.0
sudo apt-get install -y openmpi-bin libopenmpi-dev
sudo apt-get install -y libatlas-base-dev
python3 -m pip install -U six wheel mock
安装tensorflow
cd env
cd bag
pip3 install tensorflow-1.14.0-cp37-none-linux_armv7l.whl
此处插入图片
这里要安装二十分钟。。。出错了再来一遍就好了。。
测试是否成功并查看版本:
python
import tensorflow as tf
tf.__version__
此处插入图片
4.安装keras
安装一些依赖
sudo apt-get install libhdf5-serial-dev
pip3 install h5py
sudo apt-get install gfortran
sudo apt install libopenblas-dev
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pillow
sudo pip3 install pybind11
第一个下载numpy:第一次的时候发现安装成功但调用失败了,我觉得是numpy版本过高导致出错了
下载keras还是tensorflow的时候会自动下载numpy(之前已存在,它会先卸载再安装高版本的numpy,之前不存在,它会直接安装高版本的numpy),所以要先下载keras,再卸载numpy,然后再安装低版本的numpy
看一下子numpy版本,太高了
此处插入图片
重新安装
pip3 uninstall numpy
pip3 install numpy==1.16.0
第二个下载scipy【直接pip安装百分之九十九的可能都会失败。所以先下载再安装。。。先下载这个链接复制到树莓派上,然后解压到指定文件夹/home/pi/Desktop/tf_pi/env/lib/python3.7/site-packages下】
link
此处插入图片
cd /home/pi/Desktop/tf_pi/env/bag
tar -zxvf scipy-1.5.4.tar.gz -C /home/pi/Desktop/tf_pi/env/lib/python3.7/site-packages
然后进到这个文件夹里开启安装:【花里胡哨的各种代码配置呀啥的,会安装三十分钟左右】
cd /home/pi/Desktop/tf_pi/env/lib/python3.7/site-packages/scipy-1.5.4
python setup.py install
此处插入图片
pip3 list看一看:【太六了,终于成功了】
此处插入图片
再使用这个命令安装keras:
pip3 install keras\=\=2.2.4
请注意;由于在virtualenv里面,一定一定要避免sudo pip3 install,否则会安装到默认路径下!发现keras安装到 _默认 环境了,所以调用不成功,pip list没有
此处插入图片
此处插入图片
解决办法重新安装
<font color=red>pip3 install keras\=\=2.2.4</font>
此处插入图片
安装好了之后记得reboot重启一下子。
5.开始测试;import keras前面加import os就能忽略提示。
因为keras可以配合很多框架,我们用的tf所以会有backend的提示
进入虚拟环境:
cd ~/Desktop/tf_pi
source env/bin/activate
python
import tensorflow as tf
tf.__version__
import keras
print(keras.__version__)
此处插入图片
工作以来遇到的问题,64位基地系统安装tensorflow没有成功,我觉得问题如下:
①tensorflow与64位linux系统
②python语言与arm7与板载硬件cpu博通BCM2711和版本对应问题
③各类依赖与arm的硬件对应
此处插入图片