Windows下編譯tensorflow-gpu教程
首先是系統配置:
- OS:Windows Server 2012 R2(相當於Windows 8)
- GPU:NVIDIA Quadro K1200
然後是各種軟體版本:
- git 2.14
- Visual Studio 2015
- CUDA 8.0.61
- cuDNN 6.0
- Anaconda3-4.2.0(此版本非最新版本,之所以使用是因為其預設python版本為3.5.2)
- cmake 3.9.1
- swig 3.0.12
一、安裝CUDA
0. 首先需要在cuda-gpus檢查電腦的GPU是否支援cuda程式設計,要求Compute Capability 3.0及以上。
1. 安裝Visual Studio 2015(需要在CUDA之前安裝好)
2. 安裝CUDA toolkit 8.0(推薦下載離線版本)
3. 解壓下載好的cuDNN,將其中的 bin
、include
、lib
覆蓋到CUDA的安裝目錄
二、安裝tensorflow-gpu
1. 安裝anaconda
2. 進入python3.5環境,通過以下命令安裝tensorflow-gpu:
pip install --ignore-installed --upgrade tensorflow-gpu
3. 如果遇到各種lib、dll缺失的問題,可以嘗試通過新增對應的路徑到path中來解決
- 在CUDA_PATH後面新增bin和lib\x64路徑
- 將cudnn64_7改為cudnn64_6
4. 測試程式碼
如下:
#Creates a graph. a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a') b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b') c = tf.matmul(a, b) #Creates a session with log_device_placement set to True. sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) #Runs the op. print sess.run(c)
三、編譯tensorflow-gpu
一些說明:使用pip或anaconda等方式安裝的預編譯好的tensorflow沒有AVX2指令集加速,通過手動編譯可以更好的利用GPU。但是如果沒有AVX或者GPU的話,手動編譯幾乎沒有優勢。
官方只提供了Ubuntu和Mac OS X的編譯支援,在Windows下可以通過Bazel和CMake兩種方式進行編譯,但只是 “highly experimental”,可能會遇到各種錯誤。下面使用CMake來進行編譯。
0. 進行編譯之前安裝一下軟體:
- Cmake 3.5以上
- Git
- swig
swig安裝方法:
2 解壓 .zip 檔案到目錄,比如:D:\backupsoftware
3 新增環境變數到path, 比如: D:\backupsoftware\swigwin-2.0.9
4 新增環境變數 JAVA_INCLUDE 和 JAVA_BIN
JAVA_INCLUDE : Set this to the directory containing jni.h
JAVA_BIN : Set this to the bin directory containing javac.exe
Example using JDK1.3:
JAVA_INCLUDE: D:\jdk1.3\include
JAVA_BIN: D:\jdk1.3\bin
Note:D:\backupsoftware\swigwin-2.0.9 下面有 swig.exe 檔案,注意這個目錄。
簡單測試安裝是否成功:
開啟Dos,在命令列執行: swig --help, 顯示 Target Language Options即表明安裝成功。
Windows下的額外要求:
- Visual Studio 2015
- Python 3.5
- Numpy 1.11.0 or later
1. 設定環境變數
命令列執行:setPreferredToolArchitecture=x64
- 進入目錄
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\
,執行命令vcvarsall amd64
,從64位命令列編譯到64位的目標平臺。執行這一步可以避免編譯的時候出現記憶體不足的錯誤。 - 將CUDA dlls和cuDNN dll新增到環境變數:
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
cudnn-8.0-windows7-x64-v7\cuda\bin
- 將Cmake和git新增到環境變數
CMake\bin
2. 下載 Tensorflow原始碼, 選擇版本r1.6,然後下載,
在其中的 tensorflow\tensorflow\contrib\cmake
目錄下新建 build
目錄,用於存放編譯結果。
D:\temp> git clone https://github.com/tensorflow/tensorflow.git
D:\temp> cd tensorflow\tensorflow\contrib\cmake
D:\temp\tensorflow\tensorflow\contrib\cmake> mkdir build
D:\temp\tensorflow\tensorflow\contrib\cmake> cd build
D:\temp\tensorflow\tensorflow\contrib\cmake\build>
3. 呼叫cmake來產生Visual Studio solution 和project files.
D:\...\build> cmake .. -A x64 -T host=x64 -DCMAKE_BUILD_TYPE=Release ^ -DSWIG_EXECUTABLE=D:/soft/swigwin-3.0.12/swig.exe ^ -DPYTHON_EXECUTABLE=D:/ProgramData/Miniconda3/python.exe ^ -DPYTHON_LIBRARIES=D:/ProgramData/Miniconda3/libs/python36.lib ^ -Dtensorflow_ENABLE_GPU=ON ^ -DCUDNN_HOME="D:\soft\python\cudnn7"
如果編譯庫,需要加這個引數:
-Dtensorflow_BUILD_SHARED_LIB=ON
如果有NVIDIA顯示卡,且安裝好了cuDNN,那麼可以新增以下引數:
More? -Dtensorflow_ENABLE_GPU=ON ^
More? -DCUDNN_HOME="D:\...\cudnn"
4. 呼叫MSBiuld來編譯Tensorflow
使用以下命令產生.whl檔案
D:\...\build> MSBuild /p:Configuration=Release tf_python_build_pip_package.vcxproj
還有一種命令: MSBuild /p:Configuration=Release /p:Platform=x64 tf_python_build_pip_package.vcxproj
編譯成功後,whl路徑;
D:\soft\tensorflow-r1.6\tensorflow\contrib\cmake\build\tf_python\dist
遇到的問題:
點選生成解決方案,編譯的時間很長,我的膝上型電腦編譯一次大概3到4個小時,編譯到最後一般都會報錯
fatal error C1060: compiler is out of heap space 沒關係,等待整個工程全部編譯完成(據說記憶體特別大的電腦不會報)
- error C2001: newline in constant
開啟對應的檔案發現出現了亂碼,google之後發現可以通過修改locale為 英語(美國) 來解決。 - 編譯過程中下載失敗或者 git clone緩慢
使用命令nslookup
查詢失效ip(github.global.ssl.fastly.net
,storage.googleapis.com
等),修改host檔案。完了之後ipconfig /flushdns
。當然也可以嘗試手動下載到對應的目錄。
相關推薦
Windows下編譯tensorflow-gpu教程
首先是系統配置:OS:Windows Server 2012 R2(相當於Windows 8)GPU:NVIDIA Quadro K1200然後是各種軟體版本:git 2.14Visual Studio 2015CUDA 8.0.61cuDNN 6.0Anaconda3-4.2.0(此版本非最新版本,之所以使
Windows 下安裝 TensorFlow-gpu 教程
終於邁開了這一步,TensorFlow 大法好。 一、介紹 TensorFlow™ 是一個採用資料流圖(data flow graphs),用於數值計算的開源軟體庫。節點(Nodes)在圖中表示數學操作,圖中的線(edges)則表示在節點間相互聯絡的多維資
windows 下編譯tensorflow c++庫過程記錄
生成 native uil 定義 arch lin share lock bsp 1. 準備 windows 10系統、3.6GHz cpu、16G 內存 visual studio 2017 or 2015 下載安裝git 下載安裝cmake 下載安裝swi
windows下配置tensorflow-gpu
目錄 1-檢視是否有老版本的nvidia顯示卡驅動,沒有即下載** 2-下載並安裝cuda 1-檢視是否有老版本的nvidia顯示卡驅動,沒有即下載** #終端依次輸入如下命令列下載安裝:
Windows下CUDA + TensorFlow-gpu + Keras 配置的坑
最近在學習深度學習,然後在安裝CUDA,TensorFlow-gpu,Keras時遇到了一些坑...下面是我遇到的一些問題 首先我python這方面,是安裝的Anaconda3自帶的python v3.6.3,其實這裡也有個坑,順便說一下。在10月份的時候試了一下,wind
windows下編譯tensorflow原始碼 用其c++介面呼叫訓練好的模型
最近在研究如何用tensorflow的python庫訓練模型,生成pb檔案,再在c++中呼叫這個模型,完成前向的預測;所以就要使用其c++介面,這需要從原始碼編譯tensorflow。 根據官網給出的編譯器對應關係(詳見我的另一篇部落格),最新版(1.12版)的tensor
Windows下安裝TensorFlow-gpu
為了在windows上也能看看TensorFlow原始碼, 我決定也裝一下. 在這裡記錄一下遇到的一些坑. 安裝Cuda8.0和CuDnn 直接百度cuda和CuDnn, 下載對應的版本. 這一步按照官網的指導進行就能順利完成. 安裝Python3
[更新]windows 環境下編譯tensorflow 1.9及下載 ( CUDA 9.1 + CUDNN 7.0)
基本流程和上個文章的編譯過程相差不多。不過1.9新加了MKL的支援,不過據intel的朋友說是沒多大改善:( 所以大家自己決定要不要加MKL支援選項。 在編譯tensorflow前需要預編譯的工程有: farmhash nsync protobu
我的AI之路(23)--在Windows下編譯Bazel和使用Bazel編譯tensorflow
谷歌廢棄使用CMake改用併力推自己的Bazel看來這是大勢所趨,花了幾天時間琢磨了下Bazel的編譯和使用Bazel編譯tensorflow,一般人工作都沒同時配有幾臺機器,Windows日常工作又得時時開著,至於自己花錢攢機器的就不要說了,為了使用Linux環境弄
ubuntu16.04下安裝TensorFlow(GPU加速)----詳細圖文教程
寫在前面 一些廢話 接觸深度學習已經有一段時間,之前一直在windows下使用Theano,但是發現Theano天書般的原始碼真是頭大,在看到tensorflow中文教程後,發現它竟然邏輯清晰,教程豐富,實在是居家旅行必備良藥啊![偷笑][偷笑][偷笑]
win7下VS2015編譯tensorflow原始碼教程(線上和離線)及呼叫配置
這段時間一直用python程式碼import tensorflow和keras的庫,來搭建CNN框架進行影象的訓練和預測,現在想用tensorflow的c++版來改寫實現。故想自己編譯一份tensroflow的lib和dll檔案,建立工程呼叫其來實現相同的功能。本部落格主要
在Windows下編譯Lua
play pre functions aries programs mem lba other pil http://blog.csdn.net/yue7603835/article/details/41739085 http://blog.csdn.net/birdfl
在Windows下編譯WebRTC
obj 自己 war invalid bds amd clu out tail 前言 這篇文章的目的在於為你節省生命中寶貴的10小時(甚至更多),或者浪費你10分鐘。作為Google更新頻繁的大型跨平臺基礎庫,WebRTC的編譯一直被人稱為噩夢。如果恰巧你偏要在Windo
windows下編譯python3.6
python3 pytho sof 3.6 只需要 bsp .exe .cn 技術分享 在pcbuild文件夾下找到pcbuild.sln文件.在readme裏面有 Install Microsoft Visual Studio 2015, any edition. 所
windows下編譯qt的mysql驅動
dot god sql plugins dep .com .html path h+ windows下編譯qt的mysql驅動cd %QTDIR%\src\plugins\sqldrivers\mysqlqmake –o Makefile INCLUDEPATH
Windows下編譯MySQL 5.7源代碼
tro col uic align 安裝 nbsp 安裝路徑 目錄 img Windows下編譯MySQL 5.7源代碼 前提準備 ====== Visual Studio 2013: MySQL 5.7源代碼:可以從這裏下載: http://dev.mysql.co
Windows下編譯nginx-rtmp-module
win10 threshold tar ram 1.2 openss direct down 0.11 http://nginx.org/en/docs/howto_build_on_win32.html 官網上的操作說明。 官網的方法Nginx編譯方法,思路是一致的,只是
Windows下編譯Python2.7源碼
dll 虛擬 命令 src nco cnblogs arr appdata 配置 本文開始一個系列文章,深入理解Python源碼,算是閱讀《Python源碼剖析》一書的讀書筆記,是一項長期進行的工作。一共分三個部分:Python對象模型,Python虛擬機,Python模塊
windows下編譯調試nginx
無法 pat temp linux命令 setup 易用 down nag exe typora-copy-images-to: image windows下編譯調試nginx linux使用gdb跟蹤代碼效率不高,在通過跟蹤代碼進行源碼分析,與定位復雜邏輯問題時,如果有
Windows 下安裝 tensorflow & keras & opencv 的避坑指南!
amp markdown ras == lib pen 5.0 ont -m 安裝 Anaconda3 關鍵的一步: conda install pip 下面再去安裝各種你需要的包,一般不會再報錯。 pip install tensorflow-gpu ==1.5.0rc