在Ubuntu上编译好tensorflow,并且将其移植到另一台ubuntu系统。
现在需要在移植的系统上调用tensorflow训练好的pb模型。
1.安装eigen库
对于已经建立好软链接的tensorflow文件夹,需要进行Eigen库的安装。打开./tensorflow/tensorflow/contrib/makefile/downloads/eigen文件夹,在该文件夹下打开终端,依次输入
1 | mkdir build |
安装完毕后,在usr/local/include目录下会出现eigen3文件夹
2.protobuf的安装
由于在服务器使用的是protobuf-3.5进行编译的,因此在本机上要用protobuf还原环境。
下载protobuf-3.5.0源码,解压,进入文件夹
1 | sudo apt-get install automake libtool |
3.使用qtcreator读取pb文件
(1)将“tensorflow/bazel-genfiles/tensorflow/”中的cc和core文件夹中的内容copy到“tensorflow/tensorflow/”中,选择合并覆盖
(2)进入tensorflow/bazel-bin/tensorflow 文件夹,会有一个编译生成的libtensorflow_cc.so文件。若是通过bazel build –config=opt //tensorflow:libtensorflow_cc.so指令进行编译的,将libtensorflow_cc.so和libtensorflow_framework.so两个文件复制到/usr/local/lib文件夹下:
1 | sudo cp libtensorflow_cc.so /usr/local/lib/ |
若是通过bazel build –config=monolithic // tensorflow:libtensorflow_cc.so编译的,只需将libtensorflow_cc.so文件复制到/usr/local/lib文件夹下:
1 | sudo cp libtensorflow_cc.so /usr/local/lib |
(3)配置opencv,见博文
(4)配置.pro文件,将libtensorflow_cc.so包含进去
1 | TEMPLATE = app |
(5)加载pb模型
1 | include <QGuiApplication> |
其中tools.h包含如下函数:
1 | ifndef TOOLS_H |
具体实现在tools.cpp中:
1 | include "tools.h" |
运行main函数,最终得到结果
