從0開始使用騰訊云GPU服務器

來源:簡書
作者:Frony_Lee
時間:2020-07-30
4616
很多朋友表示:出國沒辦法帶GPU主機or MacOS不方便安裝外接顯卡,在此演示一種基于騰訊云(阿里云Google云相同)的GPU主機訓練的配置指南。

很多同學表示:出國沒辦法帶GPU主機or MacOS不方便安裝外接顯卡

在此演示一種基于騰訊云(阿里云/Google云相同)的GPU主機訓練的配置指南

在本文將講解三種方法,配置難度依次升高:

1.SSH到GPU主機,然后使用shell命令運行python代碼,完成模型訓練

2.GPU主機開放Jupyter Web服務,瀏覽器中連接主機運行python代碼

3.Pycharm連接到遠程GPU主機,在Pycharm中運行代碼

PS:本文選擇騰訊云服務器的原因單純是因為便宜,沒有任何可用性/并發(fā)行/穩(wěn)定性的側(cè)重。

只要是SSH,那么連接方法都是通用的。意味著如果有連接實驗室服務器的經(jīng)驗就會簡單很多。有所不同的是實驗室服務器訓練時所需數(shù)據(jù)集可以在服務器磁盤上,而云服務器的訓練數(shù)據(jù)需要額外存儲/本地上傳。

1.示例代碼在CPU的訓練時間(1.8GHz i5,8G DRAM)需要62.9秒

16977200-e2047e1c11f999a7.webp.jpg

2.騰訊云官網(wǎng)cloud.tencent.com,點擊購買

16977200-8af5791e7a4f47c5.webp.jpg

3.選擇機器配置

一定要選【自定義配置】【按量計費】【地區(qū)選跟自己近的】【GPU機型】【具體機型看實際需要-此示例選擇最便宜的P4】【鏡像市場-GPU服務器Ubuntu 18.04帶tensorflow】【按使用流量】

16977200-3d2a8907965ecaa3.webp.jpg

4.在鏡像市場中選擇鏡像

16977200-fb2c565e1c784296.webp.jpg

5.配置機器

【端口情況任意-本例選擇“放空全部端口”】【設置密碼】【不啟動定時銷毀】。如果定時銷毀可能會導致訓練未完成則被銷毀。最好的辦法是在訓練的代碼最后保存模型,同時加一個云短信API,在訓練結(jié)束時可以收到通知。

16977200-29020add1896c25f.webp.jpg

6.這步直接默認開通

16977200-598c7342346117e2.webp.jpg

7.開通后可以在控制臺看到機器,記住IP地址,很重要。然后選擇登陸

16977200-3230148e11c569a2.webp.jpg

本次的IP是106.52.54.61

登陸有很多種,默認選擇云上的terminal,可以有圖形頁面

如果選擇zsh,bash登陸的話,則用命令:

ssh-q-l ubuntu-p 22 106.52.54.61

8.云上直接輸密碼登陸(或使用剛剛提到的SSH命令,兩者相同?。?/strong>

16977200-abf33be60518da73.webp.jpg

登陸后是這樣

16977200-3bf57bfff34e9394.webp.jpg

9.驗證GPU是否可以使用(可跳過本步)

使用三個命令來查看“PCI總線外接設備、CUDA版本、GPU使用情況”:

lspci

cat/usr/local/cuda/version.txt

nvidia-smi

16977200-cc8241bd18e6f601.webp.jpg

10.驗證tensorflow是否可用GPU(可跳過本步)

在shell中使用python3

使用python語句:

import tensorflow as tf

sess=tf.Session(config=tf.ConfigProto(log_device_placement=True))

quit()#退出python,返回shell

16977200-2a140d4f3c3e9f87.webp.jpg

到此為止,全部配置就完成了??梢灾苯釉赽ash中創(chuàng)建python文件,使用python3命令運行.py文件(tensorflow代碼)。

下面配置Jupyter Web服務

11.安裝Jupyter

按順序在bash中輸入命令:

pip3 install jupyter

echo PATH=~/.local/bin:$PATH>>.bashrc

echo export PATH>>.bashrc

source.bashrc

jupyter notebook--ip=0.0.0.0--port=8000

16977200-e31d561a7c3d5b15.webp.jpg

復制第二個紅框中的token?。?!

12.遠程登陸jupyter

瀏覽器輸入“IP:端口”,此例是https://106.52.54.61:8000。輸入剛才復制的token進入jupyter。

16977200-74862f239228449d.webp.jpg

新建python3運行環(huán)境

16977200-525f30f994fbd4d1.webp.jpg

13.運行代碼

在這寫代碼運行or把代碼粘到這運行

16977200-26668d69e20a8863.webp (1).jpg

運行結(jié)果:

16977200-de68f176903bc312.webp.jpg

只要11.2秒,遠小于本地CPU所用的62.9秒

Jupyter Web可以遠程訪問,通過瀏覽器運行代碼。

最后是使用Pycharm,直接用Pycharm連接遠程服務器

14.Pycharm中添加服務器

16977200-009a10ccda633ce8.webp.jpg

在【Preferences】中選【Deployment】【+】【SFTP】

16977200-754d4fea1dfbb9be.webp.jpg

輸入【服務器地址-106.52.54.61】【用戶名-ubuntu】【密碼】,然后測試連接是否成功

16977200-a40e3198a589f243.webp.jpg

連接成功

16977200-642451e4f324db9b.webp.jpg

配置“本地-服務器文件映射”【mapping】【本地路徑】【云上路徑(可直接寫“/”,會自動配置。沒特殊要求,單純運行代碼的話,此處不重要)】

15.配置運行環(huán)境

在【preferences】中選擇【project interpreter】【V】【show all】(不選擇本地解釋器,選擇remote解釋器)

16977200-33e0df1ab8d1e76e.webp.jpg

點擊【+添加】

16977200-bf0d97aeac518e65.webp.jpg

選擇【SSH interpreter】【existing server configuration】【列表中選擇剛才的服務器】【Move this server to IDE setting】

16977200-1e45ed58980b55b1.webp.jpg

手動寫明python3的路徑

16977200-e7e6383c2ae9e5d7.webp.jpg

成功后可以看到遠程運行環(huán)境中的配置,什么依賴Lib都沒有的話說明導入失敗??梢钥吹絫ensorflow-GPU(還有Pytorch也在)

16977200-d9f0dc65fa129a48.webp.jpg

16.運行

16977200-e8dcd4c9c60192f7.webp.jpg

點擊運行

16977200-1ddb72d6f02b154d.webp.jpg

只需要7.7秒

寫在最后。本地CPU 62.9秒,Jupyter Web 11.2秒,Pycharm連接7.7秒。

阿里云和騰訊云在登陸名上有所差別,阿里云一般直接為root。

用完記得銷毀服務器

16977200-382e58ce04196f1e.webp.jpg

面向初次使用者,略了很多驗證的步驟。改進可以寫在下面。

一些答疑:

1.為什么示例代碼中沒有指定GPU的部分?tensorflow默認調(diào)用最優(yōu)資源,這是配置云環(huán)境文章,不是tensorflow-GPU代碼教程。

2.為什么阿里云的服務器沒有這個鏡像?阿里云有一個基于CentOS的,一樣用。服務器的用戶登錄名不同,其他無所謂。

3.如何預估我的訓練時間?沒辦法,靠經(jīng)驗or先跑小樣本。

4.為什么我的Pycharm中沒有這個功能?professional版本才有這個功能,社區(qū)版沒有。

5.為什么我代碼在云上無法運行?請查看對應的tensorflow版本,請以云上版本為準。如果有import 3rd Lib依賴,請寫在requirement.txt中。

6.我怎么知道我的代碼能不能運行?先買小機器,再買大機器······

立即登錄,閱讀全文
原文鏈接:點擊前往 >
版權(quán)說明:本文內(nèi)容來自于簡書,本站不擁有所有權(quán),不承擔相關法律責任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務商推薦
更多