1. 程式人生 > >Windows下編譯tensorflow-gpu教程

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,將其中的 binincludelib 覆蓋到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顯示卡驅動,沒有即下載**   #終端依次輸入如下命令列下載安裝:       

WindowsCUDA + 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中文教程後,發現它竟然邏輯清晰,教程豐富,實在是居家旅行必備良藥啊![偷笑][偷笑][偷笑]

win7VS2015編譯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