windows编译tensorflow tensorflow单机多卡程序的框架 tensorflow的操作 tensorflow的变量初始化和scope 人体姿态检测 segmentation标注工具 tensorflow模型恢复与inference的模型简化 利用多线程读取数据加快网络训练 tensorflow使用LSTM pytorch examples 利用tensorboard调参 深度学习中的loss函数汇总 纯C++代码实现的faster rcnn tensorflow使用记录 windows下配置caffe_ssd use ubuntu caffe as libs use windows caffe like opencv windows caffe implement caffe model convert to keras model flappyBird DQN Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Neural Networks Fast-style-transfer tensorflow安装 tensorflow DQN Fully Convolutional Models for Semantic Segmentation Transposed Convolution, Fractionally Strided Convolution or Deconvolution 基于tensorflow的分布式部署 用python实现mlp bp算法 用tensorflow和tflearn搭建经典网络结构 Data Augmentation Tensorflow examples Training Faster RCNN with Online Hard Example Mining 使用Tensorflow做Prisma图像风格迁移 RNN(循环神经网络)推导 深度学习中的稀疏编码思想 利用caffe与lmdb读写图像数据 分析voc2007检测数据 用python写caffe网络配置 ssd开发 将KITTI的数据格式转换为VOC Pascal的xml格式 Faster RCNN 源码分析 在Caffe中建立Python layer 在Caffe中建立C++ layer 为什么CNN反向传播计算梯度时需要将权重旋转180度 Caffe使用教程(下) Caffe使用教程(上) CNN反向传播 Softmax回归 Caffe Ubuntu下环境配置

windows编译tensorflow

2018年12月21日

windows编译tensorflow

本测试环境Windows7+vs2015+cuda8.0+cudnn5

首先安装CMAKE:3.13.0(好像大于3.8就可以)

安装Python3.5(这个很重要,不管需不需要编译python lib都需要python3.5,而且目前只能是python3.5,在最后生成dll时候需要用到python)

安装swigwin3.0.12(这个大多数教程都说需要安装,好像实际可能并未使用到)

下载tensorflow源码,切换到r1.4分支,对应版本和机器环境有配对关系,需要完全对应否则有编译失败风险

https://github.com/tensorflow/tensorflow.git
git checkout r1.4

打开cmake-gui,设置cmake文件的路径和需要编译的位置,点击configure和generate生成项目解决方案。这里为了减少编译只选择必须要的项目编译

打开CMakeLists.txt,如下修改只编译需要的lib

# Options
option(tensorflow_VERBOSE "Enable for verbose output" OFF)
option(tensorflow_ENABLE_GPU "Enable GPU support" ON)
option(tensorflow_ENABLE_SSL_SUPPORT "Enable boringssl support" OFF)
option(tensorflow_ENABLE_GRPC_SUPPORT "Enable gRPC support" OFF)
option(tensorflow_ENABLE_HDFS_SUPPORT "Enable HDFS support" OFF)
option(tensorflow_ENABLE_JEMALLOC_SUPPORT "Enable jemalloc support" OFF)
option(tensorflow_BUILD_CC_EXAMPLE "Build the C++ tutorial example" OFF)
option(tensorflow_BUILD_PYTHON_BINDINGS "Build the Python bindings" OFF)
option(tensorflow_BUILD_ALL_KERNELS "Build all OpKernels" ON)
option(tensorflow_BUILD_CONTRIB_KERNELS "Build OpKernels from tensorflow/contrib/..." ON)
option(tensorflow_BUILD_CC_TESTS "Build cc unit tests " OFF)
option(tensorflow_BUILD_PYTHON_TESTS "Build python unit tests " OFF)
option(tensorflow_BUILD_MORE_PYTHON_TESTS "Build more python unit tests for contrib packages" OFF)
option(tensorflow_BUILD_SHARED_LIB "Build TensorFlow as a shared library" ON)
option(tensorflow_OPTIMIZE_FOR_NATIVE_ARCH "Enable compiler optimizations for the native processor architecture (if available)" ON)
option(tensorflow_WIN_CPU_SIMD_OPTIONS "Enables CPU SIMD instructions")
option(tensorflow_ENABLE_SNAPPY_SUPPORT "Enable SNAPPY compression support" OFF)

下面按大多数教程指出改为

if (tensorflow_OPTIMIZE_FOR_NATIVE_ARCH)
  include(CheckCXXCompilerFlag)
  CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_OPT_ARCH_NATIVE_SUPPORTED)
  if (COMPILER_OPT_ARCH_NATIVE_SUPPORTED)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
  else()
    CHECK_CXX_COMPILER_FLAG("/arch:AVX" COMPILER_OPT_ARCH_AVX_SUPPORTED)
    if(COMPILER_OPT_ARCH_AVX_SUPPORTED)
      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:AVX")
    endif()
  endif()
endif()

千万要确保PYTHON_EXECUTABLE的python.exe为python3.5,如下图

1

打开vs2015下的project,只能用release下x64 build编译,点击ALL_BUILD编译全部项目。

这里为了保证有些编译错误,需要把re2\src\re2\re2\testing\search_test.cc和re2\src\re2\re2\testing\re2_test.cc和re2\src\re2\re2\testing\re2_test.cc改为ANSI编码(实际上不改也应该不会影响最后生成dll).

另外在实际编译的时候有可能create_def_file.py会报Python FileNotFoundError: [WinError 2] 系统找不到指定的文件的错误,这时候需要在lib中找到subprocess.py,搜索class Popen(object):将__init__中的shell=False修改为shell=True. 其他可能会报compiler is out of heap space,我的电脑8G内存并未遇到。

最后编译成功,在Release下生成tensorflow.lib和tensorflow.dll.

2


blog comments powered by Disqus