tensorflow2.0-gpu版本安裝


  初學DeepLearning,看到TensorFlow和pytorch框架用戶數和討論數比較多,最后選擇上手TensorFlow2.0版本。因為搜索了一圈總結:TensorFlow用戶基數還是比較大;2.0版本也改進了1.0版本代碼編寫、調試困難和API混亂等缺點,使其也有了pytorch好上手的優點。

  TensorFlow有cpu和gpu兩個版本,gpu可以並行處理,因此gpu版本運行起來更快,但需要有NVIDIA顯卡,且顯卡算力有一定要求。我的筆記本顯卡是:NVIDIA GeForce MX250。以下是在win10安裝TensorFlow2.0-gpu的步驟:

  1、安裝之前需要有anaconda,這個我之前裝了就不寫了;

   查看我們機器的NVIDIA顯卡算力是否滿足gpu計算要求:https://www.tensorflow.org/install/gpu

  

  顯卡算力查詢:https://developer.nvidia.com/cuda-gpus

  我的MX250在官網沒查到,百度了一下說滿足要求,就繼續安裝了。最后我安裝完成測試時看到了我的顯卡算力是6.1

  2、pip安裝TensorFlow-gpu

  用阿里雲的鏡像源下載安裝:cmd執行:

  pip install --default-timeout=100 --ignore-installed --upgrade tensorflow-gpu -i https://mirrors.aliyun.com/pypi/simple/

  3、https://www.tensorflow.org/install/source_windows查看CUDA、cuDNN要下載的版本

 

 

   我的python版本是Python 3.7.6,可以安裝2.0版本,另外需要安裝cuDNN7.4,CUDA10,中間的編譯器和構建工具不知道是什么沒理,最后也不影響。

  #python版本查詢:python -V

  #python安裝路徑:where ipython

  4、https://developer.nvidia.com/cuda-toolkit-archive,下載對應版本的CUDA,我下載的是10.2版本,安裝過程就是一直點點點,如果你不放心的話可以找別的資料參照下具體過程。另外,我搜到有人裝的10.0版本的,不知道區別大不大。我選擇的是默認安裝路徑:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2

  5、https://developer.nvidia.com/cudnn,下載對應版本的cuDNN,我下載的是cudnn-10.2-windows10-x64-v8.0.2.39.zip。這里我下錯了,導致后面運行時候有點小問題(具體下面說),我下成8.0版本了。下載前需要進行注冊賬戶和填寫問卷。

   我只看到“for CUDA 10.2”就下了,其他歷史版本在Archived cuDNN Releases里可以找到。下載得到的壓縮包,就地解壓后將里面的bin、include、lib里邊的文件放到CUDA的對應文件夾下(我的是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2)。

  6、添加環境變量:電腦 -> 右鍵 屬性 -> 高級系統設置 -> 環境變量 -> 系統變量里找到Path -> 編輯 -> 新建,將以下4個分別加上去。

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include

  7、測試:

  一、cmd中測試:

  activate tensorflow

  ipython

  import tensorflow as tf   //結果不報錯即正常

  tf.test.is_gpu_available()  //最后結果顯示True即gpu可以使用

  二、pycharm中測試:

  (1)加法測試,不要用1.x版本的session方式來測試,因為還要通過import tensorflow.compat.v1 as tf  tf.disable_v2_behavior()來啟用1.x版本的代碼編寫方式,這就是2.x想解決的一個TensorFlow缺點,直接用以下代碼即可:

1 import tensorflow as tf
2 
3 a = tf.constant(1.)
4 b = tf.constant(2.)
5 c = tf.add(a,b)
6 
7 print(float(c))

 

  (2)矩陣相乘測試,cpu和gpu分別計算10000×1000矩陣和1000×2000矩陣相乘的結果,輸出2個運算的時間。

 1 import tensorflow as tf
 2 import timeit
 3 
 4 with tf.device('/cpu:0'):
 5     cpu_a = tf.random.normal([10000, 1000])
 6     cpu_b = tf.random.normal([1000, 2000])
 7     print(cpu_a.device, cpu_b.device)
 8 
 9 with tf.device('/gpu:0'):
10     gpu_a = tf.random.normal([10000, 1000])
11     gpu_b = tf.random.normal([1000, 2000])
12     print(gpu_a.device, gpu_b.device)
13 
14 def cpu_run():
15     with tf.device('/cpu:0'):
16         c = tf.matmul(cpu_a, cpu_b)
17     return c
18 
19 def gpu_run():
20     with tf.device('/gpu:0'):
21         c = tf.matmul(gpu_a, gpu_b)
22     return c
23 
24 
25 cpu_time = timeit.timeit(cpu_run, number=10)
26 gpu_time = timeit.timeit(gpu_run, number=10)
27 print('warmup:', cpu_time, gpu_time)
28 
29 
30 cpu_time = timeit.timeit(cpu_run, number=10)
31 gpu_time = timeit.timeit(gpu_run, number=10)
32 print('run time:', cpu_time, gpu_time)

輸出結果:

   8、測試時遇到的問題:

  Could not load dynamic library ‘cudart64_101.dll’; dlerror: cudart64_101.dll not found,還有個是沒找到cudart64_7什么的文件

  解決:在CUDA安裝路徑下(我的是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2)搜索缺失的dll文件,將搜到的cudart64_102.dll改為cudart64_101.dll,另一個cudart64_7的也同理。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM