基于GPU的GoogleCloud平臺深度學(xué)習(xí)
我知道,支持gpu的高端深入學(xué)習(xí)系統(tǒng)構(gòu)建起來非常昂貴,而且很難獲得。
這是在假設(shè)您有一臺可用GPU的裸機器的情況下編寫的,如果有部分預(yù)置,請隨意跳過某個部分,我還假設(shè)您有一個NVIDIA卡,我們只會在本教程中介紹TensorFlow的設(shè)置,它是最流行的深度學(xué)習(xí)框架(Kudos to Google!)
安裝CUDA驅(qū)動程序
CODA是NVIDIA的并行計算平臺,是TensorFlow的基本前提。但是,正如我們稍后將理解的,它實際上是更好的開始相反的方式,所以讓我們回到這個部分稍后。
安裝TensorFlow
啟動您的終端(或者SSH,如果是遠(yuǎn)程計算機)。找到特定應(yīng)用程序所需的TensorFlow版本(如果有的話),或者如果沒有這樣的限制,我們只需使用我目前使用的TensorFlow 1.8.0。
PIP安裝TensorFlow-GPU=1.8.0
讓它安裝?,F(xiàn)在運行Python shell,
Python
在Pythonshell中,鍵入:
進(jìn)口TensorFlow作為TF
此時,由于我們沒有安裝CUDA,您應(yīng)該會看到一個類似于以下內(nèi)容的錯誤:
ImportError:libcublas.so.9.0:無法打開共享對象文件:沒有這樣的文件或目錄
9.0和文件名可能取決于您選擇的TensorFlow版本。但相反的做法是要知道我們需要哪種版本的數(shù)據(jù)自動化系統(tǒng),在這個例子中是9.0。官方文件對TF版本和CUDA版本的對應(yīng)還不清楚,所以我總是發(fā)現(xiàn)這種逆向工程方法更好。
讓我們回到安裝CUDA。
使用
出口()
退出Pythonshell。
安裝CUDA驅(qū)動程序(這一次我們真的要這么做,保證)
所以導(dǎo)航到https://developer.nvidia.com/cuda-toolkit-archive。選擇剛才確定的版本。
Linux->x86_64->Ubuntu->16.04(或17.04)->DEB(網(wǎng)絡(luò))
下載DEB到您的機器,并按照NVIDIA頁面上的說明安裝CUDA。一旦完成,讓我們檢查一下是否一切順利。
回去,重新打開Python外殼,
進(jìn)口TensorFlow作為TF
因此,我們還沒有完成,您現(xiàn)在應(yīng)該看到一個不同的錯誤消息。(如果您看到的是前面相同的一個,請參閱下面的“故障排除”)
ImportError:libcudnn.so.7:無法打開共享對象文件:沒有這樣的文件或目錄
我們還需要一個名為cuDNN的NVIDIA庫,它用于對深層神經(jīng)網(wǎng)絡(luò)的GPU加速。再次注意我們需要的cuDNN版本,在本例中為7.0。
導(dǎo)航到https://developer.nvidia.com/cudnn注冊一個帳戶(這是免費的)。在您建立帳戶后,登錄并轉(zhuǎn)到https://developer.nvidia.com/rdp/cudnn-archive
選擇所需的cuDNN版本,并確保您選擇該版本的CUDA版本。在這種情況下我們需要
下載cuDNN v7.0.5(2017年12月5日),用于CUDA 9.0
在選擇中,
用于Linux的cuDNN v7.0.5庫
tgz文件將開始下載,將其移動到您的計算機,然后使用
tar-xzvf<CUDNN_TAR_filename>
將提取一個文件夾“Cuda”,將CD解壓縮到該目錄,并執(zhí)行這兩個文件,
我們已經(jīng)完成了(希望)。再次啟動Pythonshell,您就知道該做什么了。
如果這次沒有拋出任何錯誤,我們就沒事了。
為了確保TensorFlow檢測到GPU,在相同的Pythonshell上運行以下命令
tf.test.gpu_Device_name()
它應(yīng)該打印出所有可供您使用的GPU。這在較早版本的TF上可能不起作用,如果是這樣的話,可以在您的終端上嘗試這個版本:
NVIDIA-SMI
故障排除
如果您做的一切都正確,而TensorFlow仍然拋出相同的錯誤,即使NVIDIA-SMI工作中,這可能是環(huán)境路徑變量的一個問題。執(zhí)行這些來修復(fù):
縱然NVIDIA-SMI命令不工作,CUDA沒有正確安裝,如果您遺漏了什么,請重新啟動。