[筆記分享] 我如何在 Anaconda 上,安裝 TensorFlow 2.x,並開啟 GPU 加速
Evernote 網址: https://bit.ly/33K77F9
--------------
最近我正在台大計算機中心,教授「深度學習」這門課程。整門深度學習,用得最多的函式庫就是 TensorFlow 了。它可以用來建構深度學習所需要的「神經網路」架構,所以任一個深度學習工程師,都得要會安裝。
深度學習的開發環境很多!我個人偏好 Google Colab(線上環境)與 Anaconda(本地端環境)。Colab 的執行環境,Google 工程師已經幫你裝好了。你只要點擊 https://colab.research.google.com 就能用。比泡麵還簡單!但你也只能被動接受 Google 工程師幫你裝好的執行環境。畢竟「線上平台」彈性還是比「本地端平台」要小一點。
早期(TensorFlow 1.x 時期)要裝 TensorFlow,並開啟 GPU 圖形加速功能,只要開啟 Anaconda Prompt 命令列視窗,輸入下面這一行就可以了:
conda install tensorflow-gpu
但 TensorFlow 2.x 之後,Anaconda 並沒有把 conda 這個指令調整得很好。大家已經用到 TensorFlow 2.3 了,conda 安裝出來的最新版居然只到 TensorFlow 2.1。更慘的是,開啟 GPU 加速時,所需搭配的 cuDNN 函式庫與 CUDA Toolkit 版本,也跟 TensorFlow 2.1 這個版本衝得亂七八糟!總之,就是一堆同學裝不起來!機器空有獨立顯卡,但無法發揮 GPU 加速平行運算的能力!
有鑑於此,我今天早上就親自「試水溫」,想辦法找出這幾樣東西的排列組合,到底怎麼樣是對的:
Python版本 x nVidia驅動程式版本 x TensorFlow版本 x cuDNN 函式庫版本 x CUDA Toolkit版本
也順便找出最順暢的安裝流程,分享給大家。希望有需要的朋友能喜歡!
祝福大家都能釋放顯卡平行處理的威力,讓你跑神經網路時,硬是比別人快好幾倍!
有我說明不足的地方,歡迎在下方留言。不敢說一定有能力解決,但我會盡力的! :-)
PS: 本文歡迎轉發、按讚、留言鼓勵我一下!您的隻字片語,都是讓我繼續提供好物的動力喔!
--------
看更多的紀老師,學更多的程式語言:
● YOTTA Python 課程購買: https://bit.ly/2k0zwCy
● YOTTA 機器學習 課程購買: https://bit.ly/30ydLvb
● Facebook 粉絲頁: https://goo.gl/N1z9JB
● YouTube 頻道: https://goo.gl/pQsdCt
如果您覺得這個粉絲頁不錯,請到「評論區」給我一個好評喔!
https://www.facebook.com/pg/teacherchi/reviews/
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「python平行運算」的推薦目錄:
- 關於python平行運算 在 紀老師程式教學網 Facebook 的最佳解答
- 關於python平行運算 在 コバにゃんチャンネル Youtube 的最佳貼文
- 關於python平行運算 在 大象中醫 Youtube 的最佳解答
- 關於python平行運算 在 大象中醫 Youtube 的最佳貼文
- 關於python平行運算 在 Re: [問題] 請問有什麼辦法加快這個for loop 嗎? - 看板Python 的評價
- 關於python平行運算 在 嗡嗡的隨手筆記- 前言在python 中有thread 與multiprocess... 的評價
- 關於python平行運算 在 Python GPU平行運算的問題包括PTT、Dcard、Mobile01 的評價
- 關於python平行運算 在 Python GPU平行運算的問題包括PTT、Dcard、Mobile01 的評價
- 關於python平行運算 在 Python GPU平行運算的問題包括PTT、Dcard、Mobile01 的評價
- 關於python平行運算 在 openmp C++平行化程式算Fibonacci費式數列 - YouTube 的評價
- 關於python平行運算 在 有沒有大佬研究過多部電腦平行運算? 的評價
- 關於python平行運算 在 [問題] 新手請教multiprocessing - Python 的評價
- 關於python平行運算 在 平行處理是什麼 :: 博碩士論文下載網 的評價
python平行運算 在 コバにゃんチャンネル Youtube 的最佳貼文
python平行運算 在 大象中醫 Youtube 的最佳解答
python平行運算 在 大象中醫 Youtube 的最佳貼文
python平行運算 在 嗡嗡的隨手筆記- 前言在python 中有thread 與multiprocess... 的美食出口停車場
... python 中有thread 與multiprocess 兩種平行處理程式的方式, 若 ... 而多核心真正的實現「平行運算的功能」,當任務較為複雜時,效率一定比較好 ... ... <看更多>
python平行運算 在 Python GPU平行運算的問題包括PTT、Dcard、Mobile01 的美食出口停車場
Python GPU平行運算的問題包括PTT、Dcard、Mobile01,我們都能挖掘各種有用的問答集和懶人包 · 全格局使用PyTorch - 深度學習和圖神經網路- 基礎篇 · 極化碼之解碼演算法平行 ... ... <看更多>
python平行運算 在 Re: [問題] 請問有什麼辦法加快這個for loop 嗎? - 看板Python 的美食出口停車場
※ 引述《CaptPlanet (ep)》之銘言:
: 有list_a, list_b兩個list
: list_a 有大約 70000 個 elements
: list_b 大約 3 million 個 elements
: 程式大致如下:
: res_li = []
: for x in list_b:
: try:
: res_li.append(list_a.index(x))
: except:
: res_li.append("")
: 對 list_b 中的每一個 element
: 在 list_a 中找到一樣 element 把他的 index 加到新的 list 中
: 隨著 iteration 增加 速度變得越來越慢,
: 想請教各位為何會有這個現象以及有什麼方法加速這個 for loop 呢?
: 謝謝各位高手
雖然這是 Python 版
我用 R 來比較一下速度
先講結論
使用小 data 測試速度, list_a = 7,000筆, list_b = 300,000筆
python 耗時 : 24.7 秒
R 使用平行運算(mclappy) 耗時 : 1.2 秒
R 使用單核運算( sapply ) 耗時 : 2.9 秒
#==========================================
data 數量改為與原 po 相同, list_a = 70,000筆, list_b = 3,000,000筆
R 使用平行運算(mclappy) 耗時 : 69 秒
以下提供 code
#==========================================
# Python 版本
import numpy as np
import random
import time
import datetime
list_a = random.sample(range(0,10000),7000)
list_b = random.sample(range(0,500000),300000)
res_li = []
s = datetime.datetime.now()
for x in list_b:
try:
res_li.append( list_a.index( x ) )
except:
res_li.append("")
t = datetime.datetime.now() - s
print(t)
# 0:00:24.748111
# 耗時 24s
#==========================================
# R 版本
library(data.table)
library(dplyr)
library(parallel)
list_a = sample(c(0:10000),7000,replace = FALSE)# 7,000
list_b = sample(c(0:500000),300000,replace = FALSE)# 300,000
# case 1, 這裡使用 R 的多核心運算
res_li = c()
s = Sys.time()
res_li = mclapply(c(list_b),function(x){
if( x %in% list_a ){
map = which(list_a==x)
#res_li = c(res_li,map)
}else{
map = ''
#res_li = c(res_li,map)
}
return(map)
}, mc.cores=8, mc.preschedule = T)
res_li = do.call(c,res_li)
t = Sys.time() - s
print(t)
# Time difference of 1.229357 secs
#===============================================
# case 2, 這裡使用一般單核運算
res_li = c()
s = Sys.time()
res_li = sapply(c(list_b),function(x){
if( x %in% list_a ){
map = which(list_a==x)
#res_li = c(res_li,map)
}else{
map = ''
#res_li = c(res_li,map)
}
return(map)
})
t = Sys.time() - s
print(t)
# Time difference of 2.913066 secs
#===========================================
# 使用多核心, data 數與原 po 相同
list_a = sample(c(0:100000),70000,replace = FALSE)# 70,000
list_b = sample(c(0:5000000),3000000,replace = FALSE)# 3,000,000
res_li = c()
s = Sys.time()
res_li = mclapply(c(list_b),function(x){
if( x %in% list_a ){
map = which(list_a==x)
#res_li = c(res_li,map)
}else{
map = ''
#res_li = c(res_li,map)
}
return(map)
}, mc.cores=8, mc.preschedule = T)
res_li = do.call(c,res_li)
t = Sys.time() - s
print(t)
# Time difference of 1.151484 mins
提供不同的觀點參考參考
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.229.89.102
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1519804063.A.817.html
其實 R 速度也不輸給 Python
根據 celestialgod 大 跟 vfgce 大的意見進行修正
以下是 R and Python code
#==================================
# python
import random
import datetime
list_a = random.sample(range(0,100000),70000)
list_b = random.sample(range(0,5000000),3000000)
list_a = { i:list_a[i] for i in range(len(list_a))}
res_li = []
s = datetime.datetime.now()
for x in list_b:
res_li.append( list_a.get(x,'') )
t = datetime.datetime.now() - s
print(t)
# 0:00:01.056265
#==================================
# R
install.packages('fastmatch')
library(fastmatch)
list_a = sample(c(0:100000),70000,replace = FALSE)
list_b = sample(c(0:5000000),3000000,replace = FALSE)
s = Sys.time()
res_li = fmatch(list_b,list_a, nomatch = -1)
res_li[res_li==-1]=''
t = Sys.time() - s
print(t)
# Time difference of 0.5497556 secs
PS : 單純做個比較,兩個語言各有優缺點,多會一點也不壞
※ 編輯: f496328mm (36.229.89.102), 02/28/2018 19:48:51
... <看更多>