听说树莓派也能玩 tensorflow ?

作者: 土豆豆一只 | 来源:发表于2018-10-21 12:01 被阅读33次

0x00 前言

有幸从公司拿了一个树莓派,听说 tensorflow lite 可以轻松在树莓派这样的配置上运行。本次吾将在树莓派上尝试一下如何编译其并运行,体验一把乐趣。


树莓派图片

本次实验环境清单:

树莓派 B3+

Ubuntu 16.04 (可不需要)

这里我使用了 Ubuntu 进行了交叉编译,当然我们也可以不使用(可以跳过0x01,直接看0x02 章节),如果你能接受较长的编译时间。(PS: 我才不会告诉你我在树莓派上直接编译遇到了多少麻烦~) (lll¬ω¬)

0x01 用 Ubuntu 交叉编译一下

安装 Ubuntu 16.04 64位,在 Document 文件夹中克隆一下tensorflow仓库。

$ git clone https://github.com/tensorflow/tensorflow.git

之后安装一下arm板的交叉编译环境,只需要执行一句(PS: 超简单的说,比我之前做交叉编译真的简单好多,以前做arm开发的时候,配环境超头大的说(*  ̄︿ ̄))

$ sudo apt install crossbuild-essential-armhf

OK,我们再下载一会儿编译所需要的文件。只需要执行一下这个脚本

$ ./tensorflow/contrib/lite/tools/make/download_dependencies.sh

文件都下载到了这里。(⚠️: 这个只需要执行一次)


下载的文件

之后,只需要执行一下下面这个脚本,就可以编译啦 ( ̄︶ ̄)↗。

$ ./tensorflow/contrib/lite/tools/make/build_rpi_lib.sh

(~ ̄▽ ̄)~ 悄咪咪的告诉你,上面的脚本其实是调用

Makefile.png
修改这个Makefile就可以换编译的文件了,这里的example在~/Documents/tensorflow/tensorflow/contrib/lite/examples中。

大概1分钟左右,


编译完成.png
在这个文件夹中会生成两个文件 编译生成的两个文件.png
如果没有Ubuntu的话,就按照下面的这个方案来尝试吧。

0x02 为啥非要直接编译呢?

唔,没事,标题就是用来吐槽的。我还是会“好好地”来给你演示怎么编译。

首先,我们将 tensorflow 克隆到 ~ 中。同样,我们需要下载一会儿编译需要的文件,我们只需要执行一下

$ ./tensorflow/contrib/lite/tools/make/download_dependencies.sh

之后,只需要执行一下下面这个脚本,就可以编译啦 ( ̄︶ ̄)↗。

$ ./tensorflow/contrib/lite/tools/make/build_rpi_lib.sh

我是绝对不会说这个编译用了好长时间 ╥﹏╥...

同样也会在~/tensorflow/tensorflow/contrib/lite/tools/make/gen/rpi_armv7l/bin生成两个文件。

0x03 运行看一下

把这两个文件移到树莓派中,再顺便添加一个tflite文件(可以从这里下载一下,不过好像文件都是在Google driver中,如果下载失败的话,就需要自己先办法啦),运行看一下效果。

执行结果.png
出现这个,我们就成功的编译完成啦!运行的速度还是蛮不错的说。(~o ̄3 ̄)~

0x04 尾记

这里我所编译使用的是tensorflow官方提供的案例,如果我们需要自己写的话,目前好像只能用C++语言版本的说(PS: 什么时候才能支持Python呢??,虽然在跨平台开发的时候我还是会选择C++,啦啦啦~.~)

参考文档:

  1. TensorFlow Lite for Raspberry Pi on github.com
  2. List of Hosted Models
  3. TensorFlow Lite for Raspberry Pi on tensorflow.org

相关文章

网友评论

  • 凌伊:想问一下,
    1、lite版本支持python2.7吗?
    2、树莓派一般有2.7和3.5的版本,你这样安装的话两个python都能用吗?
    土豆豆一只:@凌伊 我刚看了一下您发的这篇文章,我在开发的时候并没有使用Python的API,但是看到文章中应该是支持Python的API了,所以应该是两个Python版本都可以调用的,但是需要注意lite的版本,具体参考tenforflow官方的文档。
    凌伊:求教一下
    https://juejin.im/post/5ba5fb27e51d4539701e4736#heading-0
    这是个介绍lite的链接,我看到说面向于linux包括树莓派系统,是有pythonAPI的,我的意思是树莓派两个python版本都能调用吗?还是说您用的是C++API
    土豆豆一只:@凌伊 您好,lite准确来说只是依赖C++的,与Python的版本并没有直接的关系呢。至少在我运行这些的时候是这样认为的。🙃🙃

本文标题:听说树莓派也能玩 tensorflow ?

本文链接:https://www.haomeiwen.com/subject/bwcbzftx.html