一稠炬、準備工作
1沮趣、安裝以下軟件:
??cmake
??git
??swig
其中屯烦, cmake和git需要配置環(huán)境變量;swig不需要安裝房铭,下載下來直接可以使用驻龟。
2、編譯環(huán)境
??介紹一下編譯時使用的環(huán)境:python3.5缸匪,tensorflow-r1.9翁狐,vs2015,cuda9.0凌蔬,cudnn7.1.4(因為編譯的是cpu版本露懒,所以實際上cuda和cudnn這里不需要)
3闯冷、編譯目錄
??tensorflow-r1.9的存放位置需要注意,文件夾的位置不要放的太深懈词,因為編譯要求文件名的長度不能超過1024窃躲,要不然編譯過程中會報錯。(fatal error C1014: 包含文件太多 : 深度=1024)
二钦睡、編譯
??1蒂窒、找到下載的tensorflow-r1.9文件夾,打開tensorflow-r1.9\tensorflow\contrib\cmake文件夾荞怒,在這個文件夾下面新建一個build文件夾作為編譯結(jié)果的存放目錄洒琢。
??2、在cmd環(huán)境下打開build文件夾褐桌,然后輸入以下指令
cmake .. -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=Release -DSWIG_EXECUTABLE=D:\lib\swigwin-3.0.12\swig.exe -DPYTHON_EXECUTABLE=D:\Programs\Python\Python35\python.exe -DPYTHON_LIBRARIES=D:\Programs\Python\Python35\libs\python35.lib -Dtensorflow_BUILD_SHARED_LIB=ON
??因為我這里安裝了vs15和vs17衰抑,-G "Visual Studio 14 2015 Win64"
是為了選擇vs15來生成編譯文件。
??3荧嵌、運行上述指令之后會在build文件夾下出現(xiàn)vs的工程呛踊,找到tensorflow.sln,用vs15打開
??4啦撮、編譯之前有一個問題需要注意谭网,先掛一個vpn,然后設置vs的代理環(huán)境赃春。因為愉择,在編譯的過程中,需要下載一些文件织中,不掛vpn可能會出現(xiàn)無法連接到下載服務器的情況锥涕,特別是grpc模塊,經(jīng)常會下載不下來狭吼。如果出現(xiàn)下載失敗的情況层坠,在編譯的時候,有可能會出現(xiàn)100多個文件編譯失敗的情況刁笙。
??5破花、在vs里面,設置編譯的版本為Release和x64采盒,然后找到ALL_BUILD進行編譯旧乞,等待編譯完成即可。
??6磅氨、如果編譯的時候出現(xiàn)錯誤信息: fatal error C1060: 編譯器的堆空間不足尺栖,可以修改vs的選項:
??菜單欄中的工具(T)→選項(O)→項目和解決方案→生成并運行
??7、如果在編譯的時候出現(xiàn)LINK : fatal error LNK1181: 無法打開輸入文件“\pywrap_tensorflow_internal.lib”錯誤烦租,是因為3個項目的配置有問題延赌,修改如下:
# 修改這三個項目的配置項
_beam_search_ops
_gru_ops
_lstm_ops
??配置屬性==>連接器==>常規(guī)==>附加庫目錄==>添加:$(SolutionDir)$(Configuration);
??修改完成之后除盏,單獨編譯這三個項目,然后重新編譯ALL_BUILD即可挫以。整個項目編譯完成者蠕,會在tensorflow-r1.9\tensorflow\contrib\cmake\build\Release目錄下出現(xiàn)以下文件:
參考:
https://joe-antognini.github.io/machine-learning/build-windows-tf
https://blog.csdn.net/longji/article/details/72760409