win10[10.0.14393],有GPU的硬件。
vs2015 update3[14.0.25431.01 Update3]、
cmake 3.7.2。
git[git version 2.11.0.windows.1]、
python3.5.3、CUDA8.0、cuDNN5.1、swigwin-3.0.12、
numpy-1.12.1+mkl-cp35-cp35m-win_amd64.whl
wheel
[http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy]
cuda_8.0.61_win10.exe下载地址:
http://developer.download.nvidia.com/compute/cuda/8.0/secure/Prod2/local_installers/cuda_8.0.61_win10.exe?autho=1487739113_9ad462b1e508ab177490b79065da6a6a&file=cuda_8.0.61_win10.exe
安装后有如下环境变量:
CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
CUDA_PATH_V8_0=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
NVCUDASAMPLES8_0_ROOT=C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0
NVCUDASAMPLES_ROOT=C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0
NVTOOLSEXT_PATH=C:\Program Files\NVIDIA Corporation\NvToolsExt\
cuDNN下载需要注册个账号。下载cudnn-8.0-windows10-x64-v5.1-zip后解压到 C:\Program Files\cuda
https://developer.nvidia.com/compute/machine-learning/cudnn/secure/v5.1/prod_20161129/8.0/cudnn-8.0-windows10-x64-v5.1-zip
C:\Program Files\cuda下有bin、include、lib3个目录。
设置环境变量
CUDNN_ROOT=C:\Program Files\cuda
安装pthon3.5.3及必要组件
pytho3.5.3下载地址:https://www.python.org/ftp/python/3.5.3/python-3.5.3-amd64.exe
安装到c:\python35。安装时选择设置环境变量、勾选pip。
安装后,环境变量path中会加入如下两项(如果你安装了其他版本的python,请确保这个环境变量在path的较前位置)。
注意:
python安装在[Advanced Options]选项页中需要勾选
【Download debugging symbols】(可以不选)
【DownLoad debug binaries (requires VS 2015 later)】
# %path%环境变量中有如下两行
c:\Python35\Scripts\
c:\Python35\
从http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy下载numpy-1.12.1+mkl-cp35-cp35m-win_amd64.whl
并安装。
pip3 install numpy-1.12.1+mkl-cp35-cp35m-win_amd64.whl
下载:swigwin-3.0.12
https://sourceforge.net/projects/swig/files/latest/download?source=typ_redirect
解压到d:\install\swigwin-3.0.12
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
git submodule update --init --recursive
git checkout -b b1.2.0-rc0 v1.2.0-rc0
根据tensorflow\tensorflow\contrib\cmake\README.md说明,设置SWIG_EXECUTABLE、PYTHON_EXECUTABLE、PYTHON_LIBRARIES、CUDNN_HOME变量。
SWIG_EXECUTABLE=D:\install\swigwin-3.0.12\swig.exe
PYTHON_EXECUTABLE="c:\python35\python.exe"
PYTHON_LIBRARIES="c:\python35\libs\python35.lib"
CUDNN_HOME="C:\Program Files\cuda"
勾选除一下三项外的所有选项
tensorflow_BUILD_CC_TESTS
tensorflow_ENABLE__SSL_SUPPORT
tensorflow_WIN_CPU_SIMD_OPTIONS
设置CMAKE_INSTALL_PREFIX目录
D:/git/DeepLearning/tensorflow/tensorflow/contrib/cmake/build/tensorflow
指定:源码目录是编译目标目录
D:/git/DeepLearning/tensorflow/tensorflow/contrib/cmake
D:/git/DeepLearning/tensorflow/tensorflow/contrib/cmake/build
# 注意[D:/git/DeepLearning/tensorflow/tensorflow/contrib/cmake/build]的路径不要太长,
# 因为在编译时,build目录下还会有很多子目录,如果最终长度超过255,
# 将会因为文件拷贝操作失败导致编译失败。
# 至少在1.3.0-rc2中,使用[D:/git/DeepLearning/tensorflow/tensorflow/contrib/cmake/build1.3.0-rc2]
# 出现了文件名称过长的编译前、编译后文件操作命令错误。
依次点击[configure]和[Generate]按钮,并选择Visual Studio 14 2015 Win64
编译选项。生成的解决方案在D:\git\DeepLearning\tensorflow\tensorflow\contrib\cmake\build\tensorflow.sln
如下图所示:
使用vs2015打开D:\git\DeepLearning\tensorflow\tensorflow\contrib\cmake\build\tensorflow.sln
共有254个项目。先编译Release版本。(Debug有问题,编译未通过)
编译过程中会下载以来代码,比较漫长,耐心等待即可。
Release版最后出现:LINK : fatal error LNK1181: 无法打开输入文件“\pywrap_tensorflow_internal.lib”
错误。
这是因为3个项目的配置有问题,修改如下:
# 修改这三个项目的配置项
_beam_search_ops
_gru_ops
_lstm_ops
配置属性==>连接器==>常规==>附加库目录==>添加:$(SolutionDir)$(Configuration);
再次编译,即可全部编译通过。默认调过了
默认编译tensorflow会跳过tf_python_build_pip_package
项目。找到tf_python_build_pip_package
项目,右键单独生成一下,即可生成 tensorflow_gpu-1.2.0rc0-cp35-cp35m-win_amd64.whl
安装包。生成在目录:
D:\git\DeepLearning\tensorflow\tensorflow\contrib\cmake\build\tf_python\dist\