tensorflow C++ 环境部署

tensorflow C++ 环境部署

本次部署的是1.15.2版本的 tensorflow, cuda 10.0,cudnn7.6.0 具体流程如下:

  1. 安装bazel
    查询得知,1.15.2版本的tensorflow需要的bazel 版本是0.26.1,所以安装此版本的bazel,具体流程如下:
    1.1. 在 " https://github.com/bazelbuild/bazel/releases " 中找0.26.1版本bazel, " bazel-0.26.1-installer-linux-x86_64.sh "
    1.2. 运行 " chmod +x bazel-0.26.1-installer-linux-x86_64.sh " ,"./bazel-0.26.1-installer-linux-x86_64.sh --user"
    1.3. 添加环境变量 : 键入 “sudo bash gedit ~/.bashrc”,在最后添加 export PATH=“ P A T H : PATH: PATH:HOME/bin” , 键入"source ~/.bashrc"
    1.4. 打开终端,键入 " bazel version " 查看版本

  2. 源码编译c++ tensorflow
    2.1. 下载源码;" git clone -b v1.15.2 --recursive https://github.com/tensorflow/tensorflow && cd tensorflow"
    2.2. 配置参数; 键入 " ./configure "
    tensorflow C++ 环境部署_第1张图片
    tensorflow C++ 环境部署_第2张图片
    2.3. 键入 " bazel build --config=opt --config=cuda //tensorflow:libtensorflow_cc.so --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" "
    2.4. 键入 " bazel build --config=opt --config=cuda //tensorflow:libtensorflow_framework.so --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" "
    2.5. 键入 " ./tensorflow/contrib/makefile/build_all_linux.sh " (有条件尽量科学上网,要不有下载失败的可能)

  3. 安装 eigen3.3.4
    参考 " https://www.jianshu.com/p/41ff7b4502d5 ", 选择源码安装

  4. tensorflow c++ 测试
    CMakeLists.txt:

cmake_minimum_required (VERSION 2.8.8)
project (example)

#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -std=c++11 -W")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -D_GLIBCXX_USE_CXX11_ABI=0 -W")
aux_source_directory(./src DIR_SRCS)
link_directories(【tensorflow源码路径/bazel-bin/tensorflow)
include_directories(
#./include
 #如果没有拷贝相关头文件到include目录,需要添加以下包含目录
 【tensorflow源码路径】
  【tensorflow源码路径】/bazel-genfiles
  【tensorflow源码路径】/tensorflow/contrib/makefile/gen/protobuf/include
  【tensorflow源码路径】/tensorflow/contrib/makefile/downloads/absl
  【eigen源码路径】
  )
add_executable(example  ${
     DIR_SRCS}) 
target_link_libraries(example tensorflow_cc tensorflow_framework)

main.cc

#include 
#include 
#include 
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";
}

在工程中建立" build " 文件夹 -> " cd build " -> " cmake … " -> " make " -> " ./example "
当出现下面界面,则构建成功:

在这里插入图片描述

你可能感兴趣的:(各种安装笔记)