系统环境: Ubuntu 20.04 Cuda 11.3 Cudnn 8 Python3.8 gcc9.3
Step 1. google下载最新版Tensorflow 2.6.2 根据"C++调用Tensorflow”,需安装protobuf,absl,eigen3,bazel 需要注意版本问题,因此需参考tensorflow下的workspace.bzl文件中所提及的版本来安装对应版本的包,版本过高会导致编译问题
Step 2. Protobuf安装
运行protoc --version,输出版本信息则表示安装成功
Step 3. 下载对应版本eigen3以及abseil-cpp,cp -r所有*.h及*.so到对应的/usr/local/include或/usr/local/lib下
Step 4. 安装对应版本的bazel
Step 5. 在tensorflow子目录下
./configure
bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package //tensorflow:libtensorflow_cc.so
编译后将所需的*.so及*.h分别cp -r至/usr/local/lib及/usr/local/include中
至此完成全部安装
测试:
#include <tensorflow/core/platform/env.h>
#include <tensorflow/core/public/session.h>
#include <iostream>
using namespace std;
using namespace tensorflow;
int main()
{
Session* session;
Status status = NewSession(SessionOptions(), &session);
if (!status.ok()) {
cout << status.ToString() << "\n";
return 1;
}
cout << "Session successfully created.\n";
}
CMakeLists.txt部分
cmake_minimum_required (VERSION 2.8.8)
project (main)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -std=c++11 -W")
add_executable(main main.cpp)
target_link_libraries(main tensorflow_cc tensorflow_framework)
|