树莓派安装Tensorflow Lite

系列 - 树莓派开发
注意
本文最后更新于 2021-08-14,文中内容可能已过时。

树莓派64位系统虽然还在beta测试中,但是未来肯定会替代现在的32位系统,而且64位系统在寻址范围、内存容量、处理速度上都比32位系统好很多。当然如果只是做一些很基础的应用,不需要大量运算或者AI,32位够用了。

树莓派4一台(建议4G或8G,推荐8G)

树莓派64位系统,安装请参考树莓派64位系统安装

shell

uname -a
gcc -v

# 确认终端输出是aarch64
/books/2021/08/14/verification_64bitos.png
提示
虽然树莓派装了64位的系统,但是如果更改过编译器,GCC编译器可能变成32位的了,用gcc -v检查下是否安装了正确架构的GCC编译器。如果输出不是aarch64,重新安装下GCC编译即可。

虽然Tensorflow Lite也可以用Python调用,但是想要获得更好的时延和性能,还是需要C++库(题外话:考虑下Rust啊!!!)所以为什么要在上一步确保是64位编译器。比较幸运的是,安装Tensorflow Lite只需要执行脚本,不需要单独配置文件。

shell

cd sdk
#安装依赖
sudo apt-get install cmake curl
#下载Tensorflow Lite,其他版本号可从https://github.com/tensorflow/tensorflow/tags获得
wget -O tensorflow.zip https://github.com/tensorflow/tensorflow/archive/v2.4.3.zip
#解压压缩包
unzip tensorflow.zip
#重命名文件夹
mv tensorflow-2.4.3 tensorflow
cd tensorflow
#下载依赖
./tensorflow/lite/tools/make/download_dependencies.sh
#编译tensorflow-lite
./tensorflow/lite/tools/make/build_aarch64_lib.sh

编译过程比较久,大约需要10分钟。接着编译flatbuffer

shell

cd ~/sdk/tensorflow/tensorflow/lite/tools/make/downloads/flatbuffers
mkdir build
cd build
#配置cmake
cmake ..
#配置4并发任务,开始编译
make -j4
#安装到本机,并配置PATH
sudo make install
#更新库链接
sudo ldconfig
#清理文件
cd ~/sdk
rm -rf tensorflow.zip
/books/2021/08/14/tensorflow_binary.png
Tensorflow Lite库
技巧
Tensorflow Lite从2.3.0版本开始使用动态链接。在Tensorflow Lite运行前,动态库会被拷贝到内存然后重定向。这个方式给了Tensorflow Lite很大的自由度。所以需要glibc 2.28或更高版本来支持。编译程序的时候现在需要链接到libdl库,不然的话你就会看到undefined reference to symbol dlsym@@GLIBC_2.17 linker errors。符号链接可以在/lib/aarch64-linux-gnu/libdl.so.2或者/lib/arm-linux-gnueabihf/libdl.so.2找到。

相关内容