Colab?是谷歌提供的免費?Jupyter?服務,可使用?GPU。但由于每次的 VM (虛擬機)登出后所有文件都會連同VM被毀掉。如何將一個項目里的程序或數據同步到?Colab則往往比較麻煩。盡管谷歌盤也可以掛到?Colab?里用,但步驟也比較麻煩,另外?github?或?gitlab?的項目和谷歌盤的同步也并不直接。因而能直接將Colab?的?VM?與?github?或?gitlab?同步就可以節省時間。而且,程序在 Colab?上運行完后的結果也可以在VM消失前及時同步到github?或?gitlab?上保存。
用 git 同步Colab?與 gitlab、github 之間的文件共三步。
- 生成 ssh 私鑰-公鑰對,將公鑰添加到?gitlab 或?github?戶頭,私鑰拷到系統剪貼板里備用。
linux里可以用?ssh-keygen,?Win里可以用?puttygen,github、gitlab 也可以生成私鑰-公鑰對。
Linux?里的私鑰-公鑰對在 .ssh?里,私鑰文件是 id_rsa,?公鑰是?id_rsa.pub
(github 戶頭添加公鑰參考文檔鏈接,gitlab戶頭添加公鑰參考文檔
鏈接)
- 在colab里的 jupyter?里運行:
key?=?\
'''
私鑰拷到這里
'''
!?mkdir?-p?/root/.ssh
with?open(r'/root/.ssh/id_rsa',?'w',?encoding='utf8')?as?fh:
????fh.write(key)
!?chmod?600?/root/.ssh/id_rsa
! ssh-keyscan?gitlab.com?>>?/root/.ssh/known_hosts? #?這一步是將?gitlab.com?的指紋寫到 .ssh/known_hosts?里,避免第一次運行時的yes/no交互 - 然后就可以按正常?git?管理運作了:
!?git?...?
同樣的思想可用于?rsync?同步?colab?和本機的文件。親測可用。