谷歌云盘Colab使用心得
1 連接Colab
1.1 上傳文件夾到云端硬盤
?
1.2 安裝必要的包和軟件
在代碼段輸入以下代碼:
!apt-get install -y -qq software-properties-common python-software-properties module-init-tools !add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null !apt-get update -qq 2>&1 > /dev/null !apt-get -y install -qq google-drive-ocamlfuse fuse from google.colab import auth auth.authenticate_user() from oauth2client.client import GoogleCredentials creds = GoogleCredentials.get_application_default() import getpass !google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} &1 | grep URL vcode = getpass.getpass() !echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}1.3 Colab上掛載Google Drive
from google.colab import drive drive.mount("/content/drive")1.4?進入到文件所在的目錄
import os path="/content/drive/MyDrive" os.chdir(path) os.listdir(path)?path="/content/drive/MyDrive"包含內容為如下界面內容:
?得到的結果為:['Colab Notebooks', 'Untitled', 'Untitled0.ipynb', 'colab']
2 下載圖像數據集
最近在用谷歌云盤的colab跑目標檢測的代碼,要把KITTI圖像數據集保存在谷歌云盤,但是在官網上好像需要發送到郵箱然后再下載比較麻煩,所以在CSDN上找到了這個好鏈接,可以直接在colab上用代碼下載保存在谷歌云盤,非常nice! 分享給大家
2.1 下載地址
各類圖像數據集下載地址
2.2 下載代碼
在云盤中要保存的地址
import os os.chdir('/content/drive/MyDrive/Colab')下面是下載數據集的代碼,只需要【!wget 網址】
# 下載數據集,后面記得換上自己需要的數據集網址 !wget https://s3.eu-central-1.amazonaws.com/avg-kitti/data_object_image_2.zip3 命令說明
3.1 查詢GPU性能
!/opt/bin/nvidia-smi3.2 查詢當前位置所在目錄
!ls3.3?查看當前的工作路徑
!pwd3.4?新建文件夾
!mkdir? XXX? 新建文件夾,XXX是你的路徑與文件名,例如下圖是在根目錄下創建data文件夾。
!mkdir ./data3.5 設置工作路徑
#設置根目錄為此路徑,即工作路徑 import os os.chdir('/content/drive/MyDrive/paper/fastswa_semi_metric_files/')上面代碼是設置云端硬盤項目主目錄為工作根目錄,這樣子的話就無需改動,項目里面的路徑了,對了項目中要使用相對路徑,否則會報錯。如實在需要使用絕對路徑,那么一定要是 /content/drive/MyDrive/ 開頭。這樣的話,我們就進入到了我們的項目中了,再執行下面的命令就可以運行我們的mian.py 了,前面感嘆號一定要是英文感嘆號。
! python main.py3.6 復制解壓數據集
如此一來就可以在Colab中連接到谷歌云端硬盤,然后再進入項目主目錄運行我們的代碼了。但是又有個問題來了,就是我們的Colab服務器與云端硬盤并不是在一臺服務器上,所以如果我們的項目中有大量的數據需要讀取,那么這個I/O操作是非常消耗時間的。這個時間簡直讓人瘋了,比我本機還慢,所以為了解決這個問題,需要把云端的數據加載到上文的 content 路徑下,例如上文的data 目錄下。首先把數據打包成zip壓縮包上傳到云端硬盤中,例如我的數據是data-local.zip,放在Demo路徑下,使用如下命令進行copy到./data/下,也就是content/data路勁下,Linux中./表示主目錄content/。
!cp /content/drive/MyDrive/paper/Demo/data-local.zip ./data/然后再進入到./data目錄下,解壓data-local.zip數據,這個過程都很快,前面copy數據也非???#xff0c;然后就需要改一下代碼中的讀取數據的路徑了,改成./data/data-local/XXX 即可讀取,這時候運行起來就非??炝?#xff01;
!cd ./data && unzip data-local.zip4 運行自己的py文件
不放心的話切換之后用!s命令查看是不是到指定目錄
? ? ?3. 運行代碼
!python xx.py5 注意事項
1. Linux系統下文件路徑使用‘/’而不是“\”,所有帶“\”路徑都會提示文件不存在
2. 使用云端硬盤保存數據
直接使用colab可以上傳臨時數據,保存臨時結果,一旦斷開連接,數據將會丟失,所以強烈建議使用云端硬盤保存數據。
3. 斷開連接的解決辦法
在使用Colab時,一段時間掛機未操作有可能導致連接斷開,但是要是想跑時間較長的項目時不可能一直盯著屏幕,解決辦法如下:
在瀏覽器中按F12,找到console將下面的代碼粘貼到控制臺運行即可。
4.?運行時間過長的項目
建議保存中間結果,下次使用時直接讀取中間結果繼續跑。
6 防中斷
在Firefox和Chrome中,在colab頁面,按Ctrl+Shit+i,打開檢查頁面(也可以右擊鼠標,選擇“檢查”),并切換到控制臺或terminal標簽,chrome中為Console。
function ConnectButton(){console.log("Connect pushed"); document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click() }setInterval(ConnectButton,60000);執行了代碼后,記下彈出的數字,那是intervalId,當想停止這段代碼的執行時,只需要執行
clearInterval(intervalId)7 在gdrive中保存調用模型
7.1 保存模型
要保存我們的模型檢查點(或任何文件),我們需要將其保存在驅動器的安裝路徑中。eg.
model_save_name = 'classifier.pt' path = F"/content/gdrive/My Drive/{model_save_name}" torch.save(model.state_dict(), path)7.2 調用模型
記住我們保存的路徑:
eg.
model_save_name = 'classifier.pt' path = F"/content/gdrive/My Drive/{model_save_name}" model.load_state_dict(torch.load(path))8 在需要同步的地方手動強制刷新
我想將訓練的中間結果寫到Drive里保存,需要等所有任務都完成,并且在這邊顯示已經存在,回到Drive目錄里查看仍然啥都沒有,這個時候就可能頁面關了,緩存文件還沒更新過去。實際使用中,可以在需要同步的地方手動強制刷新:
# 實現對網盤的同步 drive.flush_and_unmount()總結
以上是生活随笔為你收集整理的谷歌云盘Colab使用心得的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows 中自定义Error Co
- 下一篇: 给asterisk写app供CLI调用