建立 Tensorflow 開發(fā)環(huán)境的最簡單方法

前言


建立一個(gè) Tensorflow 開發(fā)環(huán)境,是一件既簡單、又復(fù)雜的事兒。說簡單:只需要下載 1 個(gè)應(yīng)用,執(zhí)行 1 條命令,就可以搭建完成;說復(fù)雜:要想打磨一套既高效、又順手的工作環(huán)境,就需要搞清楚每件事兒背后的故事,靠著網(wǎng)上的資料,人云亦云,只能永遠(yuǎn)跟在別人后面。

打造一個(gè) Tensorflow 開發(fā)環(huán)境需要了解的事兒,可以參考另一篇文章 “基于 Thinkpad X1 Carbon 打造 Tensorflow 開發(fā)移動(dòng)工作站(完整版)”。

這里為想快速建立環(huán)境、進(jìn)入學(xué)習(xí)、不折騰的小白,編寫一個(gè) “極速版” ,真的只需要 1 個(gè)應(yīng)用,1 條命令,就 OK 了哦。

極速建立 Tensorflow 開發(fā)環(huán)境


  1. 下載 Anaconda 最新版(下載地址)。
  2. 安裝 Anaconda,一路 Next 就搞定,不需要任何選項(xiàng)。
  3. 運(yùn)行 “Anaconda Prompt”。
  4. 鍵入以下命令:
  • 安裝 Tensorflow CPU 版
conda create --name tf-cpu python=3.6 tensorflow
  • 安裝 Tensorflow GPU 版
conda create --name tf-gpu python=3.6 tensorflow-gpu

Tips:

  • 既然是小白,Windows 10 就是最佳選擇了。想折騰 Linux 也沒問題,本方法同時(shí)適用于:Windows 7 及以上版本、ubuntu 16.04 及以上版本。
  • Tensorflow GPU 版可以極大地提升深度學(xué)習(xí)的訓(xùn)練速度,但是硬件上需要一塊符合要求的 NVIDIA GPU,請(qǐng)參考“GPU 支持 | Tensorflow - 硬件要求”。簡單來說:NVIDIA GTX 950(桌面型顯卡)/ GTX 940M(筆記本型顯卡)及以上型號(hào)的顯卡,都符合要求。(對(duì)游戲迷來說:能 “流暢吃雞” 的 NVIDIA 顯卡,一般都符合要求)。
  • 使用本方法安裝 Tensorflow GPU 版,無需預(yù)先安裝 CUDA Toolkit 和 cuDNN,conda 將自行下載安裝以上軟件包。
  • 顯卡驅(qū)動(dòng)還是得自己裝,不過一般在安裝操作系統(tǒng)的時(shí)候,顯卡驅(qū)動(dòng)都是安裝好了的。請(qǐng)打開自動(dòng)更新,保證顯卡驅(qū)動(dòng)為最新版。
  • 無需設(shè)置任何的環(huán)境變量。
  • 你也可以同時(shí)安裝 Tensorflow CPU 版和 GPU 版,兩者不會(huì)發(fā)生任何沖突,也無需做任何特別的設(shè)置。你可以對(duì)比一下 CPU 版和 GPU 版的速度差異。

校驗(yàn)是否安裝成功


用一小段代碼(矩陣乘法),可以檢驗(yàn) Tensorflow 是否安裝成功。這里,你需要懂一點(diǎn)兒 conda 命令,和 python 語法:

  • 激活工作環(huán)境:conda activate tf-cpuconda activate tf-gpu
  • 退出當(dāng)前工作環(huán)境:conda deactivate
  • 啟動(dòng) Python:python
  • 從 Python 中退出:exit()

校驗(yàn) Tensorflow CPU 版


  1. 運(yùn)行 “Anaconda Prompt”,執(zhí)行以下命令,進(jìn)入 Python 環(huán)境。
conda activate tf-cpu
python
  1. 鍵入以下代碼:
import tensorflow as tf  
a = tf.constant([[3., 3.]])   
b = tf.constant([[2.],[2.]])  
product = tf.matmul(a, b)  
sess = tf.Session()  
result = sess.run(product)  
print(result)
  1. 輸出:
    如果得到如下的輸出,則表明安裝成功。
[[12.]]

校驗(yàn) Tensorflow GPU 版


  1. 運(yùn)行 “Anaconda Prompt”,執(zhí)行以下命令,進(jìn)入 Python 環(huán)境。
conda activate tf-gpu
python
  1. 鍵入以下代碼:
import tensorflow as tf  
a = tf.constant([[3., 3.]])   
b = tf.constant([[2.],[2.]])  
product = tf.matmul(a, b)  
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))  
result = sess.run(product)  
print(result)
  1. 輸出:
  • 鍵入 sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) 時(shí),系統(tǒng)大致輸出如下,則表明:已找到 GPU,列出 GPU 信息,并將運(yùn)算指向 GPU。
2019-02-28 22:34:32.503929: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
2019-02-28 22:34:32.779658: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 0 with properties:
name: GeForce RTX 2070 major: 7 minor: 5 memoryClockRate(GHz): 1.62
pciBusID: 0000:0a:00.0
totalMemory: 8.00GiB freeMemory: 6.57GiB
2019-02-28 22:34:32.786266: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1511] Adding visible gpu devices: 0
2019-02-28 22:34:33.436171: I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-02-28 22:34:33.440095: I tensorflow/core/common_runtime/gpu/gpu_device.cc:988]      0
2019-02-28 22:34:33.442374: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1001] 0:   N
2019-02-28 22:34:33.445215: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 6305 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2070, pci bus id: 0000:0a:00.0, compute capability: 7.5)
Device mapping:
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: GeForce RTX 2070, pci bus id: 0000:0a:00.0, compute capability: 7.5
2019-02-28 22:34:33.455824: I tensorflow/core/common_runtime/direct_session.cc:307] Device mapping:
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: GeForce RTX 2070, pci bus id: 0000:0a:00.0, compute capability: 7.5
  • 鍵入 result = sess.run(product) 時(shí),系統(tǒng)大致輸出如下,則表明:將 a、b 以及 matmul 運(yùn)算指向了 GPU。
MatMul: (MatMul): /job:localhost/replica:0/task:0/device:GPU:0
2019-02-28 22:35:17.405035: I tensorflow/core/common_runtime/placer.cc:927] MatMul: (MatMul)/job:localhost/replica:0/task:0/device:GPU:0
Const: (Const): /job:localhost/replica:0/task:0/device:GPU:0
2019-02-28 22:35:17.407979: I tensorflow/core/common_runtime/placer.cc:927] Const: (Const)/job:localhost/replica:0/task:0/device:GPU:0
Const_1: (Const): /job:localhost/replica:0/task:0/device:GPU:0
2019-02-28 22:35:17.412175: I tensorflow/core/common_runtime/placer.cc:927] Const_1: (Const)/job:localhost/replica:0/task:0/device:GPU:0
  • 最終得到運(yùn)算結(jié)果如下,則表明安裝成功。
[[12.]]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容