TF-搭建tensorflow-gpu GPU環境
看完官方的例子,自己憑著記憶敲出來mnist卷積的例子。跑起來才發現,憑著CPU跑不是一般的慢啊!
train過程要叠代20000次,跑了1個小時沒跑完。也是怪我機子太差了。
於是下決心把機子上的顯卡用起來。
之前了解過TF借力GPU需要安裝cuda和cudnn,一直沒實踐過,這次終於開動了。過程如下:
1、確認自己顯卡是否支持:
到https://developer.nvidia.com/cuda-gpus,點擊CUDA-Enabled GeForce Products查看是否自己的顯卡支持cuda。後面那列是顯卡的運算能力,如我自己的是GT730運算能力是3.5,畢竟是老卡了,比較差勁。
2、下載CUDA。
確定自己的卡可以支持後,接下來根據自己的系統版本下載cuda版本,如果你是windows,必須是64位系統哦,如果不是最好就重裝吧。網址是這個
https://developer.nvidia.com/cuda-downloads
選擇下exe(local)這個,network那個要邊裝邊下,很容易失敗。
3、下載Cudnn。
Cudnn就是個NVIDIA公司在cuda基礎上為了方便深度學習調用而加的接口。(The NVIDIA CUDA? Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for deep neural networks),兩種方法下載,1) 去N卡官網下載http://developer.nvidia.com/cudnn。2) 看國內有些好人下完了傳到百度網盤或者CSDN,你直接下來用。推薦第二種,因為去官網下載需要註冊填表等一系列麻煩事才能下。我由於是win7所以在http://download.csdn.net/detail/zhangjianbinn/9821263下載了(需要註冊CSDN)。
4、安裝CUDA,CUDNN
現在你已經下載了cuda_8.0.61_windows.exe和cudnn-8.0-windows7-x64-v5.1.zip,版本號可能不同,可以開始安裝了。關掉360等安裝軟件防止一會點擊到手軟。
1) 首先安裝cuda,一路默認,等待他裝完(大概幾十分鐘)。
2) 再裝Cudnn。解壓後進入cudnn-8.0-windows7-x64-v5.1\cuda目錄,裏面有bin include lib 3個目錄,拷貝,然後進入C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0,後面的v8.0根據版本號會有不同。粘貼,彈出提示已存在,選擇合並目錄。
5、安裝tensorflow-gpu。
以下安裝是建立在之前已經正常運行tensorflow CPU版本的基礎上的。
首先關閉你的python開發環境,停止所有運行的python程序,這點很關鍵,可能會導致安裝失敗。之後打開cmd,運行pip install --upgrade --ignore-installed setuptools。
再執行pip install --upgrade tensorflow-gpu
看到成功安裝即可。
6、驗證。
重新打開tf的環境,跑起來,就可以看到調用GPU的日誌了,比如下面是我的。
2017-05-13 23:04:56.361497: W c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn‘t compiled to use SSE instructions, but these are available on your machine and could speed up CPU computations. 2017-05-13 23:04:56.361497: W c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn‘t compiled to use SSE2 instructions, but these are available on your machine and could speed up CPU computations. 2017-05-13 23:04:56.361497: W c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn‘t compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations. 2017-05-13 23:04:56.362497: W c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn‘t compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations. 2017-05-13 23:04:56.577509: I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:887] Found device 0 with properties: name: GeForce GT 730 major: 3 minor: 5 memoryClockRate (GHz) 0.9015 pciBusID 0000:01:00.0 Total memory: 1.00GiB Free memory: 825.37MiB 2017-05-13 23:04:56.577509: I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:908] DMA: 0 2017-05-13 23:04:56.577509: I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:918] 0: Y 2017-05-13 23:04:56.578509: I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:977] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 730, pci bus id: 0000:01:00.0) step=0,train_accuracy=0.09999999403953552 step=100,train_accuracy=0.8200000524520874
爽呆了,比CPU快1倍不止!
TF-搭建tensorflow-gpu GPU環境