一、AutoDL服務(wù)器配置
(一)租用實(shí)例
1. 算力市場(chǎng)
1.1 充值
1.2 租用服務(wù)器
點(diǎn)擊1卡可租
,進(jìn)入租卡頁面。
2 基礎(chǔ)鏡像
之前實(shí)驗(yàn)室服務(wù)器的版本:torch 1.12.0,Ubuntu 18.04.1,cuda 11.3,python 3.8.13,torchaudio 0.12.0,torchvision 0.13.0,conda 4.12.0。
基礎(chǔ)鏡像有兩種方法:
2.1 可以選擇已給的基本鏡像PyTorch框架
但仍需要按照 一、AutoDL服務(wù)器配置 -> (三)配置環(huán)境 -> 5 -> 5.2 -> 5
開始來驗(yàn)證環(huán)境是否配置成功。
2.2 建一個(gè)Miniconda的鏡像,后續(xù)還需要進(jìn)行環(huán)境配置。下載鏡像,再上傳,再配置虛擬環(huán)境。
注意: 可以在關(guān)機(jī)的情況下,更換鏡像。
3 實(shí)例查詢
(二)數(shù)據(jù)傳輸
- 單個(gè)文件,如zip壓縮包時(shí),建議直接在
文件存儲(chǔ)
中上傳。因?yàn)椴恍枰_機(jī)。 - 多文件,Xftp傳輸或需要開機(jī)。
參考:
AutoDL網(wǎng)盤的使用
AutoDL使用教程
1. AutoDL網(wǎng)盤傳輸
1.1 AutoDL網(wǎng)盤初始化
1.2 AutoDL網(wǎng)盤上傳ZIP文件
1.3 AutoDL網(wǎng)盤解壓ZIP文件
1.3.1 進(jìn)入終端
注意: 選擇無卡開機(jī)
1.3.2 進(jìn)入文件存儲(chǔ)autodl-fs
1.3.3 解壓ZIP文件
- 直接解壓到當(dāng)前文件夾:
# 解壓到當(dāng)前的文件夾
unzip xxx.zip
- 解壓到指定的文件夾:unzip 解壓文件到指定目錄
# 解壓到指定的文件夾
unzip -d /train xxx.zip
- 終端解壓時(shí),注意root路徑
運(yùn)行結(jié)果:
1.3.4 壓縮ZIP文件
實(shí)現(xiàn):
將結(jié)果(文件名為prediction_00000.nii.gz、prediction_00001.nii.gz......
)壓縮,得到predictions.zip壓縮包。
zip predictions.zip prediction_*.nii.gz
2. Xftp數(shù)據(jù)傳輸
優(yōu)點(diǎn):
- 在Windows系統(tǒng)下,如果想和Linux系統(tǒng)進(jìn)行文件傳輸,可以使用Xftp工具。
- 不限制上傳的文件個(gè)數(shù),可直接上傳文件夾。
2.1 下載xshell 和 Xftp軟件
xshell 和 xftp官網(wǎng): xshell 和 xftp
2.2 安裝xshell 和 Xftp軟件
參考:Windows 下 xshell 和 xftp 安裝與使用
2.3 Xftp與AutoDL網(wǎng)盤連接
- AutoDL開機(jī), 可選無卡開機(jī)
- 開機(jī)后,獲得
登錄指令、密碼
- 打開XFTP,復(fù)制AutoDL上的登錄指令、密碼
# 登錄指令:ssh -p 22070 root@region-45.seetacloud.com
主機(jī):region-45.seetacloud.com(@后的所有內(nèi)容)
端口號(hào):22070(@前的數(shù)字部分)
用戶名:root
密碼:AutoDL上的密碼
2.4 Xftp與AutoDL數(shù)據(jù)傳輸
- 連接已建立的會(huì)議
- XFTP與AutoDL連接
- 上傳數(shù)據(jù)
3. 公網(wǎng)網(wǎng)盤傳輸
3.1 開機(jī)—選擇AutoPanel
3.2 選公網(wǎng)網(wǎng)盤——X里云盤、X度網(wǎng)盤
具體請(qǐng)參考:公網(wǎng)網(wǎng)盤(強(qiáng)烈推薦)
(三)配置環(huán)境
參考: 超詳干貨!Linux 環(huán)境變量配置全攻略
1. 知識(shí)(可選擇不看,不影響安裝)
1.1 PATH的作用
參考:初識(shí)腳本 理解 PATH 及 ~/.bashrc
- 每次在 Bash 里面輸入一個(gè)命令時(shí),Bash 都會(huì)去 PATH目錄里面尋找對(duì)應(yīng)的文件,如果找到了就執(zhí)行。
- 使用PATH:將 ~/local 添加到path 里面,分為永久設(shè)置PATH和臨時(shí)設(shè)置,具體如下:
-
先獲取 ~/local 的絕對(duì)路徑 : cd ~/local; pwd
-
臨時(shí)設(shè)置PATH :
-
export PATH=“l(fā)ocal的絕對(duì)路徑:$PATH”
-
任意位置(不是 ~/local)執(zhí)行: demo.txt
- 永久設(shè)置PATH:
-
創(chuàng)建 .bashrc : touch ~/.bashrc
-
進(jìn)入并編輯:start ~/.bashrc
-
寫入以下內(nèi)容: export PATH=“l(fā)ocal的絕對(duì)路徑:$PATH”
-
執(zhí)行 .bashrc : source ~/.bashrc
-
任意位置(不是 ~/local)執(zhí)行: demo.txt
1.2 bash
Bash (GNU Bourne-Again Shell) 是許多Linux發(fā)行版的默認(rèn)Shell,是Bourne shell的后繼兼容版本與開放源代碼版本,它的名稱來自Bourne shell(sh)的一個(gè)雙關(guān)語(Bourne again / born again):Bourne-Again SHell。
- bash是一個(gè)命令處理器, 運(yùn)行在文本窗口中, 并能執(zhí)行用戶直接輸入的命令;
- bash還能從文件中讀取Linux命令, 稱之為腳本;
- bash支持通配符, 管道, 命令替換, 條件判斷等邏輯控制語句 。
1.3 ~/.bashrc 的作用
~/bashrc: 為每一個(gè)運(yùn)行bash shell的用戶執(zhí)行此文件。當(dāng)bash shell被打開時(shí),該文件被讀取。
每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加載修改后的設(shè)置,使之生效。 一般會(huì)在.bash_profile文件中顯式調(diào)用.bashrc。登陸linux啟動(dòng)bash時(shí)首先會(huì)去讀取/.bash_profile文件,這樣/.bashrc也就得到執(zhí)行了,你的個(gè)性化設(shè)置也就生效了。
- .bashrc 這個(gè)文件主要保存?zhèn)€人的一些個(gè)性化設(shè)置,如命令別名、路徑等, 是bash的個(gè)人配置文件,在用戶目錄下,是個(gè)隱藏文件;
- 可以實(shí)現(xiàn)在進(jìn)入 Git Bash 前執(zhí)行任何命令;可以進(jìn)行命令別名縮寫;可以
設(shè)置環(huán)境變量及PATH
; - 新建 .bashrc文件:touch ~/.bashrc;
- 設(shè)置PATH:export PATH=“目錄的絕對(duì)路徑:$PATH”。
1.4 Linux環(huán)境變量配置
- ~/.bash_profile 是交互式、login 方式進(jìn)入 bash 運(yùn)行的,意思是只有用戶登錄時(shí)才會(huì)生效,.bash_profile只在會(huì)話開始時(shí)被讀取。
- ~/.bashrc 是交互式 non-login 方式進(jìn)入 bash 運(yùn)行的,用戶不一定登錄,只要以該用戶身份運(yùn)行命令行就會(huì)讀取該文件,.bashrc在每次打開新的終端時(shí)都會(huì)被讀取。。
1.4.1 Linux環(huán)境變量配置方法1:vim ~/.bashrc
通過修改用戶目錄下的~/.bashrc文件進(jìn)行配置:
vim ~/.bashrc
// 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin
注意事項(xiàng):
- 生效時(shí)間:使用相同的用戶打開新的終端時(shí)生效,或者手動(dòng)source ~/.bashrc生效
- 生效期限:永久有效
- 生效范圍:僅對(duì)當(dāng)前用戶有效
- 如果有后續(xù)的環(huán)境變量加載文件覆蓋了PATH定義,則可能不生效
1.4.2 Linux環(huán)境變量配置方法2:vim ~/.bash_profile
和修改~/.bashrc文件類似,也是要在文件最后加上新的路徑即可:
vim ~/.bash_profile
# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin
注意事項(xiàng):
- 生效時(shí)間:使用相同的用戶打開新的終端時(shí)生效,或者手動(dòng)source ~/.bash_profile生效
- 生效期限:永久有效
- 生效范圍:僅對(duì)當(dāng)前用戶有效
- 如果沒有/.bash_profile文件,則可以編輯/.profile文件或者新建一個(gè)
2. AutoDL配置環(huán)境-激活conda
參考:李沐+AutoDL深度學(xué)習(xí)環(huán)境配置
2.1 查看conda
conda activate base
2.2 激活conda
2.2.1 通過修改用戶目錄下的~/.bashrc文件進(jìn)行配置
vim ~/.bashrc
2.2.2 英文下輸入i,下面會(huì)出現(xiàn)一個(gè)INSERT
2.2.3 跳到頁末:按鍵盤上的pagedown,添加conda
注: 這個(gè)路徑只對(duì)minconda3的AutoDL的服務(wù)器管用,如果是其他服務(wù)器,自己改下路徑。
source /root/miniconda3/etc/profile.d/conda.sh
2.2.4 保存退出
-
按下ESC,退出編輯界面;
-
英文鍵盤輸入 :wq,然后回車,保存文件并退出。
-
回到終端界面
2.2.5 重啟終端:輸入 bash 或把終端關(guān)掉,重啟終端
2.3 進(jìn)入基本的conda環(huán)境
conda activate base
3. AutoDL配置環(huán)境-Python安裝
3.1 搭建自己的Python環(huán)境-py38(自己隨意起)
conda create -n py38 python=3.8
3.2 進(jìn)入py38環(huán)境
conda activate py38
4. AutoDL配置環(huán)境-PyTorch框架安裝
PyTorch框架安裝兩種方法:
- 官網(wǎng)快捷鍵安裝;
- 下載PyTorch等包,上傳到網(wǎng)盤,進(jìn)行安裝。
4.1 快捷鍵安裝
4.1.1 進(jìn)入官網(wǎng),選擇自己的版本
官網(wǎng):PyTorch
# CUDA 11.3
conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cudatoolkit=11.3 -c pytorch
4.1.2 安裝
- 復(fù)制、粘貼、安裝
- 安裝完成
4.2 網(wǎng)盤上傳的各種包的安裝
4.2.1 安裝包下載、上傳
具體參考:(二)數(shù)據(jù)傳輸 這一章。
注: 包的安裝、上傳已完成后,進(jìn)行下一節(jié)。
4.2.2 Torch、Torchvision等其他包的安裝
pip install autodl-fs/torch-1.10.0+cu111-cp38-cp38-linux_x86_64.whl
注: 一定要和自己創(chuàng)建實(shí)例的環(huán)境相對(duì)應(yīng),我隨便舉個(gè)例子。3個(gè)鏡像都在autodl-fs/目錄下。
注: 安裝torchvision、torchaudio等其他包方法相類似,不重復(fù)了。
另: 按下Tab鍵
可自動(dòng)補(bǔ)齊名稱。
5. AutoDL配置環(huán)境-JupyterLab頁面更新
5.1 原因
環(huán)境創(chuàng)建完后,JupyterLab頁面還只有基本環(huán)境,需要進(jìn)行更新。
5.2 JupyterLab頁面更新——在py38環(huán)境
- 在py38環(huán)境下,輸入下列代碼:
conda install ipykernel
2. 接著輸入下列代碼:
ipython kernel install --user --name=py38
3. 添加成功
4. 按照以上步驟配置好環(huán)境,就可以Notebook下的py38進(jìn)去寫代碼了。
5. 如果沒有按照以上的步驟配置,就選擇左邊的Python 3進(jìn)入Jupyter寫代碼。
6. AutoDL配置環(huán)境-驗(yàn)證
6.1 開機(jī)
注: 之前的步驟都是無卡開機(jī)模式,而為了驗(yàn)證環(huán)境已經(jīng)配置完成,需要關(guān)機(jī),再直接開機(jī),這次不是無卡開機(jī)。
6.2 進(jìn)入JupyterLab
6.3 進(jìn)入py38
6.4 輸入代碼,驗(yàn)證
import torchvision
import torch
print(torch.version.cuda)
print(torch.__version__)
print(torchvision.__version__)
print(torch.cuda.is_available())
# 11.3
# 1.12.0
# 0.13.0
# True
二、PyCharm連接(PyCharm2021.3專業(yè)版)
(一)安裝PyCharm專業(yè)版
1. 原因
注: 必須是PyCharm專業(yè)版才能進(jìn)行遠(yuǎn)程連接使用。
2. PyCharm專業(yè)版的安裝
2.1 學(xué)生認(rèn)證教育郵箱的安裝
- PyCharm官網(wǎng)
- PyCharm專業(yè)版免費(fèi)安裝教程
2.2 PyCharm2021.3專業(yè)版的安裝
- PyCharm2021.3專業(yè)版—提取碼:p923
- ※ 安裝的視頻教程 ※
- ※ 安裝的文章教程 ※
(二)AutoDL與PyCharm專業(yè)版連接
參考教程:
- AutoDL平臺(tái)Pycharm使用教程—官方視頻
- PyCharm遠(yuǎn)程開發(fā)—官方文檔
- 學(xué)生黨超實(shí)用的在線gpu加速服務(wù)器ATUODL,與pycharm連接使用教程。
1. AutoDL與PyCharm專業(yè)版連接
連接方法有兩種:
1.1 官方遠(yuǎn)程連接方法
- 隨便打開一個(gè)項(xiàng)目;
- [File] -> [Settings];
- 選擇[Python interpreter] -> 小齒輪;
- 選擇[Add];
- 將實(shí)例SSH指令中的Host、Port與Username進(jìn)行匹配和填寫;
-點(diǎn)[Yes]; - 輸入SSH的密碼 -> [Next];
- 定位到py38環(huán)境中的python解釋器 -> 配置同步目錄;※ noise_code,文件夾要用下劃線 ※
- 同步文件夾設(shè)置;
- 配置同步目錄,不建議使用默認(rèn)的/tmp目錄;
- 配置完成。
-
可以對(duì)python解釋器進(jìn)行修改;
1.2 從Tools進(jìn)行配置(可不看)
以下步驟來自:AutoDL使用教程,寫在這里主要是為了看方便,大家可以去看博主的原文。
- Tools -> Deployment -> Configuration;
- 添加SFTP;
SFTP(SSH File Transfer Protocol,也稱 Secret File Transfer Protocol) 是一種安全的SHH文件傳輸協(xié)議。
- 點(diǎn)擊…進(jìn)入SSH Configurations;
- 完成配置。
-
如果您在運(yùn)行時(shí)找不到Python文件,可能是沒有自動(dòng)同步代碼,那么可以選擇手動(dòng)同步:
2. 顯示云服務(wù)器的文件目錄
3. 切換到root/autodl-fs云盤目錄下,查看到上傳的數(shù)據(jù)和代碼
4. 連接到遠(yuǎn)程終端
5. 查看、修改代碼內(nèi)容
- 新建文件,自動(dòng)更新
說明: 因?yàn)檫x擇了自動(dòng)更新,所以新建文件、編寫的代碼都會(huì)自動(dòng)更新到云服務(wù)器上。 - 重新上傳更新代碼(如果需要的話)
6. 安裝項(xiàng)目的依賴包—requirements.txt
- PyCharm終端輸入命令(
cd RoGNoisyLabel-master
)進(jìn)入RoGNoisyLabel-master文件夾,然后直接輸入如下指令一鍵安裝所需依賴包:(一起全安裝)
#進(jìn)入項(xiàng)目文件夾,目的是找到requirements.txt
cd RoGNoisyLabel-master
# install
pip install -r requirements.txt
- PyCharm終端安裝依賴包 (一個(gè)一個(gè)安裝)
— 打開requirements.txt查看虛擬環(huán)境需要哪個(gè)安裝包;
— 進(jìn)入環(huán)境,如 py38;
— 安裝依賴包,如 pip install nibabel。
# 進(jìn)入環(huán)境
conda activate py38
# conda install 安裝包的名字 或是 pip install 安裝包的名字
pip install nibabel
注:
如果包太大,可以鏡像
安裝opencv出現(xiàn)問題:解決辦法參考安裝opencv3.4.1.15庫 (基于Python)
pip install opencv-python
# pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
可以用清華鏡像:(快)
pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple
7. 運(yùn)行代碼
7.1 PyCharm終端運(yùn)行
7.2 PyCharm直接執(zhí)行
注: 前提是autodl和本地文件都存在,且設(shè)置好同步,檢查好遠(yuǎn)程連接狀態(tài)。
-
代碼上傳。
-
遠(yuǎn)程連接,并修改好同步文件夾。
-
可以測(cè)試遠(yuǎn)程是否連接成功,以及設(shè)置自動(dòng)同步。
-
可以直接在PyCharm中運(yùn)行程序了。
運(yùn)行結(jié)果:
7.3 JupyterLab終端運(yùn)行(推薦)
終端運(yùn)行可參照 7.1 PyCharm終端運(yùn)行
來進(jìn)行操作。
- 通過JupyterLab的終端來執(zhí)行,只要JupyterLab不出現(xiàn)重啟(幾乎不會(huì)),JupyterLab的終端就會(huì)一直運(yùn)行,無論是本地主機(jī)斷網(wǎng)還是關(guān)機(jī)。
- 如果關(guān)機(jī)了這個(gè)終端tab,可以在左側(cè)欄正在運(yùn)行終端和內(nèi)核中找回。
- 打開時(shí)如果終端什么也不顯示,按回車鍵即可。在使用JupyterLab長(zhǎng)時(shí)間跑代碼的過程中強(qiáng)烈建議對(duì)日志重定向,防止斷網(wǎng)后中間的日志沒有了。使用方法:
# 日志重定向到train.log文件。即在你的命令后加上:> train.log 2>&1
python xxx.py > train.log 2>&1
# 實(shí)時(shí)查看日志
tail -f train.log
注:
在終端直接調(diào)試代碼也可以,可以直接雙擊py
文件,進(jìn)行修改保存,再終端運(yùn)行。
或建一個(gè)Jupyter
文件,復(fù)制代碼,調(diào)試、運(yùn)行代碼。
8. screen/tmux工具
8.1 原因
如果在PyCharm中長(zhǎng)時(shí)間使用實(shí)例的終端環(huán)境運(yùn)行任務(wù),可能因連接中斷導(dǎo)致任務(wù)失敗。因此需要開守護(hù)進(jìn)程來執(zhí)行程序。
8.2 screen工具
AutoDL自帶的Jupyterlab終端和screen工具。
參考:
1.官方文檔—守護(hù)進(jìn)程
2.Pycharm連接遠(yuǎn)程服務(wù)器(AutoDL)訓(xùn)練YOLOv5
8.2.1 screen工具安裝
- 打開JupyterLab終端
- 在命令行終端安裝screen:
apt-get update && apt-get install -y screen
8.2.2 JupyterLab終端
- 創(chuàng)建新會(huì)話(需要進(jìn)入你的環(huán)境,如py38,這里只做演示,沒有進(jìn)入環(huán)境)
-
終端輸入:screen
-
按
回車鍵
,此時(shí)會(huì)出現(xiàn)一個(gè)和之前完全一樣的終端(實(shí)際上是兩個(gè))
說明: 此時(shí)在這個(gè)終端中執(zhí)行的程序意味著會(huì)受到這個(gè)會(huì)話保護(hù),比如在這里執(zhí)行命令:注:
如果使用screen打開終端后中文亂碼,執(zhí)行以下命令后重新進(jìn)入screen終端:
echo "defencoding GBK" >> ~/.screenrc
echo "encoding UTF-8 GBK" >> ~/.screenrc
-
離開會(huì)話
在用screen打開的終端中使用快捷鍵:ctl + a + d,會(huì)退出到原終端,并且顯示detached,意味著這個(gè)會(huì)話只是離開并未退出。 -
重新進(jìn)入會(huì)話(
可以看到上圖和下圖的終端是不一樣的,是兩個(gè)會(huì)話
)
執(zhí)行完以上命令,就會(huì)恢復(fù)screen的那個(gè)終端(我們會(huì)發(fā)現(xiàn)最開始執(zhí)行的ping www.baidu.com仍然在執(zhí)行)。因此就可以將我們的程序放在screen的會(huì)話中執(zhí)行,然后離開會(huì)話,等我們需要看日志時(shí)再恢復(fù)到這個(gè)會(huì)話中。 -
退回會(huì)話,關(guān)掉會(huì)話(可任選一種方法)
-
在用screen打開的終端中使用快捷鍵:
ctl + d
,就會(huì)離開screen會(huì)話,回到原來的終端。如果有正在執(zhí)行的程序,先ctrl + c
終止程序。 -
正常退出可以用
exit命令
、快捷鍵等。
screen -r 1310.pts-0.autodl-container-9c5011800000-9700000f2
exit # 或Ctrl+a k 或Ctrl+C
- screen亂碼問題
加上 -U 參數(shù)即可,比如:
新建:screen -U
恢復(fù):screen -U -r xxx
- 關(guān)掉進(jìn)程中的指定會(huì)話
# 關(guān)掉指定會(huì)話
kill ...
8.2.3 PyCharm終端(同上)
- 切換遠(yuǎn)程
- 進(jìn)入環(huán)境
- 新建screen會(huì)話
說明: 可以進(jìn)入新的會(huì)話后,再激活環(huán)境,再運(yùn)行程序。 - 運(yùn)行程序
8.3 tmux工具
操作與screen工具相似,可自行搜索方法,這里不做介紹。
三、AutoDL自動(dòng)關(guān)機(jī)
(一)原因
不確定自己的代碼需要執(zhí)行多久結(jié)束,希望執(zhí)行完成后立馬關(guān)機(jī)。這類場(chǎng)景可以通過shutdown
(最好使用命令完整路徑: /usr/bin/shutdown
)命令來解決。
注: 請(qǐng)保存好程序的日志,自動(dòng)關(guān)機(jī)后標(biāo)準(zhǔn)輸出中的日志將不再可見文章來源:http://www.zghlxwxcb.cn/news/detail-706962.html
(二)方法1
# 假設(shè)您的程序原執(zhí)行命令為
python train.py
# 那么可以在您的程序后跟上shutdown命令
python train.py; /usr/bin/shutdown # 用;拼接意味著前邊的指令不管執(zhí)行成功與否,都會(huì)執(zhí)行shutdown命令
python train.py && /usr/bin/shutdown # 用&&拼接表示前邊的命令執(zhí)行成功后才會(huì)執(zhí)行shutdown。請(qǐng)根據(jù)自己的需要選擇
(三)方法2
在您的Python代碼中執(zhí)行shutdown命令,例如:文章來源地址http://www.zghlxwxcb.cn/news/detail-706962.html
import os
if __name__ == "__main__":
# xxxxxx
os.system("/usr/bin/shutdown")
到了這里,關(guān)于【AutoDL】服務(wù)器配置、Xftp數(shù)據(jù)傳輸及PyCharm連接的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!