iT邦幫忙

2

編譯Tensorflow.dll (r1.6) @ Windows 10 (VS 2015)

Tensorflow.dll (r1.6) @ Windows 10 (VS 2015)

官方文件不建議在visual studio的環境下自行編譯tensorflow的涵式庫。基於研究需求,需要在VC++的環境下使用tensorflow深度學習醫學影像的特徵;並且能夠及時互動並更新權重值。於是爬了很多分享文。沒想到看似簡單的編譯卻是如此的困難重重。

環境:

  • VS2015
  • Anacoda3 5.2.0
  • nVidia CUDA 9.0.176
  • nVidia CUDNN 8.0
  • cmake 3.12.2
  • tensorflow r1.6
  • Notepad++

下載tensorflow r1.6後, 新增至資料夾 c:\tf\

CMake的Command Mode

以系統管理員身分開啟命令提示字元
在cmake下新增build的資料夾
例如: c:\tf\tensorflow\contrib\cmake\build

cmake .. -G "Visual Studio 14 2015 Win64" -T host=x64 -DCMAKE_BUILD_TYPE=Release ^
-Dtensorflow_VERBOSE=ON ^
-Dtensorflow_ENABLE_GRPC_SUPPORT=OFF ^
-Dtensorflow_BUILD_PYTHON_BINDINGS=OFF ^
-Dtensorflow_BUILD_CC_EXAMPLE=OFF ^
-Dtensorflow_BUILD_SHARED_LIB=ON ^
-Dtensorflow_WIN_CPU_SIMD_OPTIONS=/arch:AVX2 ^
-Dtensorflow_ENABLE_GPU=ON

在Notepad++開啟 tensorflow\contrib\cmake\tools\create_def_file.py
在第48行用以下的宣告替代

EXCLUDE_RE = re.compile(r"RTTI|deleting destructor|::internal::|::`anonymous namespace'::|<lambda_[0-9a-z]+>|"
                        r"std::_Vector_iterator<|std::_Vector_const_iterator<|std::_Vector_alloc<|"
                        r"std::_Deque_iterator<|std::_Deque_alloc<|"
                        r"std::_Tree_iterator<|std::_Tree_const_iterator<|std::_Tree_unchecked_const_iterator<|std::_Tree_comp_alloc<|std::_Tree_node<|"
                        r"std::_List_iterator<|std::_List_const_iterator<|std::_List_unchecked_const_iterator<|std::_List_alloc<|"
                        r"std::_Iterator012<|std::_Compressed_pair<"
)

編譯

以系統管理員身分開啟 VS2015 X64 Native Tools 命令提示字元

Release Mode

到安裝的資料夾執行release編譯
例如: c:\tf\tensorflow\contrib\cmake\build

MSBuild /p:Configuration=Release /verbosity:detailed all_build.vcxproj

時間約 3小時
完成後可以在c:\tf\tensorflow\contrib\cmake\build\release
找到tensorflow.dll, tensorflow.lib

Debug Mode

到安裝的資料夾執行debug編譯
例如: c:\tf\tensorflow\contrib\cmake\build

MSBuild /p:Configuration=Release /verbosity:detailed all_build.vcxproj

時間約 6小時
完成後可以在c:\tf\tensorflow\contrib\cmake\build\debug
找到tensorflow.dll, tensorflow.lib


尚未有邦友留言

立即登入留言