参考文档

  1. https://github.com/tensorflow/models Tensorflow官方预训练模型下载地址
  2. http://blog.csdn.net/michael_yt/article/details/74737489 Tensorflow 模型持久化
  3. http://blog.csdn.net/czq7511/article/details/72452985 tensorflow使用freeze_graph.py将模型文件和权重数据整合在一起并去除无关的Op
  4. https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/g3doc/models.md Tensorflow Lite预训练模型下载
  5. https://github.com/ShuangXieIrene/mobilenet-v2 Tensorflow Mobilenet V2预训练模型下载
  6. https://github.com/ethereon/caffe-tensorflow caffe模型转tensorflow模型
  7. https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/g3doc/apis.md Tensorflow Lite C++ API文档

本文档将介绍Tensorflow在Arm-Linux平台上的几种部署方法:

  • Tensorflow原生
  • Tensorflow-mobile
  • Tensorflow-lite

模型持久化

在一般的训练情况下,因为训练过程会耗费很长的时间,为了防止出现不可预知的错误导致的训练进度数据丢失,在Tensorflow训练过程中会使用模型持久化(ckpt格式数据)来暂时存储训练的中间结果。

如下图所示:

  • ckpt.data:存储模型中所有变量的内容
  • ckpt.meta:存储整个计算图的结构

当我们只需要使用模型来进行前向预测的部署时就需要固定模型(freeze_graph)到pb模型文件,这样使用单一pb文件后比较方便在终端部署和测试。

在运行固定模型的相关脚本之前需要先安装Tensorflow的训练环境,具体的脚本位置为:

python -m tensorflow/python/tools/freeze_graph -h
# 通过-h选项了解freeze_graph的具体使用方法

Tensorflow-lite

Tensorflow-lite为了兼容android和ios两种移动操作系统向两个系统提供了统一的 C++ API接口,并且还为android提供了更上层的java接口。在这里Arm-Linux平台直接采用C++ API来进行部署。

results matching ""

    No results matching ""