介绍

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

硬件准备

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

软件准备

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

检查

1
2
3
4
uname -a
gcc -v

# 确认终端输出是aarch64

提示

虽然树莓派装了64位的系统,但是如果更改过编译器,GCC编译器可能变成32位的了,用`gcc -v`检查下是否安装了正确架构的GCC编译器。如果输出不是aarch64,重新安装下GCC编译即可。

安装

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
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

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`找到。