遠程深度學習環境的搭建,可以採用pycharm
,其是一個IDE,可以採用遠程解釋器連接到遠程的服務器進行python代碼的運行,debug和同步等,但是pycharm
是一個商業軟件,而且其體量較大,打開速度慢,因此更爲輕量級的解決方案可以採用vs code
(以下簡稱vsc)。
環境
- ubuntu 18.04
- vs code
- vs code插件sftp
- vs code插件remote-fs
- git
首先先下載vsc,百度便可找到,其中vs code的插件可以在界面中的extensions
選項中找到,搜索需要的插件並安裝重啓vsc。
其中安裝sftp
的目的是實現遠程文件同步,可以在你修改本地代碼的同時,自動地將代碼同步到遠程服務器上,而remote fs
的作用是作爲遠程文件系統的,可以保管你的接入遠程服務器的密鑰和地址等。
配置
接下來需要配置sftp
,在你的項目根文件夾下面新建一個文件夾,名爲.vscode/
,進入裏面,新建一個文件,名爲sftp.json
,其中的內容如:
{
"remote": "server_alias_name",
"protocol": "sftp",
"remotePath": "/home/user_name/AI_workspace/research/project_name/",
"passive": false,
"interactiveAuth": false,
"uploadOnSave": true,
"syncMode": "update",
"ignore": [
"**/.git",
"**/dataset",
"**/workdir",
"**/datas/"
]
}
其中需要注意的基本上就這幾項,其中remote
是指定你的遠程服務器的名字,這裏我們結合remote fs
的配置,而沒有顯式地指定ip,是爲了在開源的時候,或者項目移交的時候的保密性和安全性考慮的。
protocol
是文件傳輸協議
remotePath
是你的項目同步的根目錄,如果這個目錄不存在,其將會自動新建。
uploadOnSave
每當保存文件的時候,都會自動上傳文件到服務器上
ignore
指定不需要同步的文件或者文件夾,支持正則表達式
隨後我們需要進行remote fs
的配置,快捷鍵輸入ctrl+shift+p
,輸入open user setting
找到擴展
選項欄中的remote-fs configuration
,在彈出的頁面中選擇在setting.json中編輯
.
我們發現,我們進入了一個配置的json文件,在這個文本文件中輸入:
"remotefs.remote": {
"server_alias_name": {
"scheme": "sftp",
"host": "xxx.xxx.xxx.xxx",
"port": xxxx,
"username": "user",
"privateKeyPath": "C:\\Users\\user\\.ssh\\id_rsa"
},
"server_alias_name_#2": {
"scheme": "sftp",
"host": "xxx.xxx.xxx.xxx",
"port": xxxx,
"username": "user",
"privateKeyPath": "C:\\Users\\user\\.ssh\\id_rsa"
},
}
在這裏我們要指定的是遠程服務器的別名,如server_alias_name
,和主機ip(host
),在username
中指定的是你的遠程服務器的賬戶名,privateKeyPath
中選擇你的私鑰的地址就可以自動安全的登陸了。如果恰好你有不只一臺服務器,那麼你可以設置多個這種別名,需要同步到不同服務器的時候,只需要在sftp.json
中修改別名就行了。
爲了讓ssh的rsa登陸能夠正常運行,通常在本地還需要用ssh-copy-id
這個命令進行的,這個讀者自行了解吧,也是非常簡單的。大家可以參考[1]的進行無密登錄的配置。
Reference
[1]. https://blog.csdn.net/liu_qingbo/article/details/78383892