tensorflow切换到gpu_使用免费的GPU进行深度学习
Colab簡介
Google做過一件很酷的事情——提供免費的GPU云服務器,內置Jupyter Notebook環境,叫做"Colaboratory"。因此它是一個很好的工具,可以幫助你快速開發深度學習應用。
Colab提供GPU,并且完全免費!當然也有一些限制,例如實例單次運行時間不能超過12小時,不過這對于一些中小規模的網絡已經足夠了,大規模的也可以通過斷電訓練來分多次訓練。
Colab的使用非常自由,你可以使用任何深度學習框架,例如PyTorch, Keras, TensorFlow, and OpenCV;你可以在Colab中創建notebooks、上傳notebooks,并存儲、分享它們;你可以掛載你的Google Drive(網盤),使用任何里面的文件;你可以上傳本機的notebooks、GitHub中的notebooks、上傳Kaggle文件...
參考:
- 官網:https://colab.research.google.com
- 有趣的項目:https://research.google.com/seedbank/
創建notebook
你不需要安裝任何軟件,只需要一個Chrome瀏覽器,打開Google Drive你就可以在任意目錄下創建note book。當然,有個大前提: 你能夠登陸得了Google,咳咳 :)
為了更好地管理代碼,我們單獨創建一個文件夾(雖然從技術上來說,這一步不是必須的)
進入創建好的文件夾,你可以在任何空白區域右鍵鼠標,選擇"Colaboratory"
基本語法
所有的用法基本與jupyter notebook一致,讓我們說一些區別;因為這里沒有命令行終端,你可以通過'!'符號 來執行一些Linux命令( 部分命令不加!前綴也可以直接運行)
!ls !pip !apt-getGPU實例
Colab的GPU實例是免費使用的,不過單次運行時間不能超過12小時;對于一些中小規模的網絡已經足夠了,非常適合初學者練習GPU訓練神經網絡
切換GPU實例
點擊上方的"代碼執行程序"=>"更改運行時類型"
選擇"硬件加速器",切換到GPU實例。保存后需要稍等片刻,系統會重新分配一個GPU虛擬機
查看GPU
!nvidia-smi # 查看GPU信息 !cat /proc/cpuinfo # 查看CPU信息 !cat /proc/meminfo # 查看內存信息Colab最早和Kaggle一樣,只提供K80的GPU;不過19年,新增了Tesla T4系列(這次谷歌真的太有誠意了...京東上查了下,這塊卡要18k...)
分配的GPU可能是根據當前空閑GPU的庫存決定的;我自己的使用經驗,有的時候是K80,有的時候能分配到T4
操作文件
由于是虛擬機環境,因此很多時候需要使用存儲在別的地方的文件
Google Drive
在虛擬機中掛載云端硬盤后,你就可以把網盤當作本地的文件夾,使用里面任意文件
from google.colab import drive drive.mount('/content/gdrive')!ls "/content/gdrive/My Drive/"請注意,此操作僅支持讀取、寫入和移動文件;要程序化地修改共享設置或其他元數據,請使用PyDriveTips:如果是訓練神經網絡,推薦把文件完全復制到虛擬機上;否則訓練時,可能會每個batch都要從網盤通過網絡讀取,這樣訓練的瓶頸就變成網絡IO了
下載網絡資源
使用wget命令直接下載資源,例如
!wget -cq https://s3.amazonaws.com/content.udacity-data.com/courses/nd188/flower_data.zip !unzip -qq flower_data.zip本機上傳小文件
在界面左側也有"Upload"按鈕,可以直接點擊上傳文件
也可以通過執行代碼后,點擊"Choose Files"按鈕 選擇本地的文件上傳
from google.colab import files files.upload() # 會返回已上傳文件的字典。 此字典的鍵為文件名,值為已上傳的數據補充: 將文件下載到本地文件系統
# 創建一個文件用來測試 with open('example.txt', 'w') as f:f.write('some content')from google.colab import files files.download('example.txt')從git拉取
找到感興趣的repository直接克隆就行
!git clone <git_URL>下載Kaggle DataSet
第一步:使用pip命令,安裝kaggle庫
!pip install kaggle第二步:登陸kaggle賬號,下載token文件(json格式),將token文件上傳到Colab
!mkdir -p ~/.kaggle # 創建隱藏目錄 !cp kaggle.json ~/.kaggle/ # 我將token文件放在了Drive里,這樣每次直接拷貝到虛擬機即可 !chmod 600 ~/.kaggle/kaggle.json第三步:找到想要導入的Kaggle Dataset,復制相應的API 在最前面增加!,然后執行
!kaggle competitions download -c severstal-steel-defect-detection -p /gdrive/'My Drive'/Kaggle/'Severstal Steel Defect Detection'/ --force我們以Kaggle某比賽的數據集為例,雖然文件有2G多,但是虛擬機能達到150M/s的下載速度,可以說相當快了
下載完成后,解壓數據:
# 命令行 !unzip *.zip# python代碼 from zipfile import ZipFilewith ZipFile("data.zip",'r') as zip:zip.extractall(path= './{}/'.format(file_name.split('.')[0]))print("Done")總結
現在能薅羊毛的平臺不止Colab一個,但我個人比較喜歡的就是Colab和Kaggle;因為真誠,不要問為什么,問就是"百度" :)
希望能夠幫助大家入門深度學習,來加速訓練大型網絡的時間
總結
以上是生活随笔為你收集整理的tensorflow切换到gpu_使用免费的GPU进行深度学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NETGEAR拒绝连接请求_破案:Kub
- 下一篇: 汇编中ah,al,ax;es,cs,ds