使用Notebook保存的鏡像啟動訓練任務
關鍵知識點:
1.Notebook的鏡像有多個conda env及多個python,需要定位到你需要的python環境。
2.訓練會有一系列的環境變量,需熟練使用'env'等shell命令來確認環境情況。
3.訓練可以支持自動從OBS獲取代碼,并映射到容器環境的對應目錄。
4.訓練可以支持自動從OBS獲取訓練數據,并以類似'--data-path'的參數進行命令拼接。
遷移方法:
1.Notebook部分
首先,Notebook里會存在多個conda環境,請在對應驗證的環境中,確認python的路徑。
方法:在ipynb的cell里輸入"!which python"并記錄對應路徑,如截圖。
然后,使用通過命令行來確認對應的任務的參數配置是可執行的。
方法:在terminal里使用絕對路徑來啟動任務,命令和訓練作業里要保持一致。注意,python腳本必須能夠支持解析"--data-path=xxx"參數。詳細如截圖:
最后,保存Notebook鏡像(建議在驗證前保存,以免因中間文件導致鏡像過大),方法如截圖:
注意!
Notebook實例的'/home/ma-user/work'和'/data'目錄是掛載的,相應內容無法保存到鏡像里。
訓練作業會將本地硬盤(有較大的空間)掛載到'/cache'目錄,相應內容可能會被覆蓋。
鏡像構建完以后的大小要小于10G,否則可能無法正常拉起。建議不要把數據放到鏡像里,并使用預制的Notebook鏡像并僅安裝必要的Python庫。
2.創建訓練任務
首先,對應能力是白名單開放的,如果對應賬號無相應能力,請找華為云接口人申請。具體創建方法如截圖:
然后,可以通過特殊命令運行任務,并在日志里查看運行中實例的詳情。例如,通過"whoami && env && "可以獲取當前用戶名及所有環境變量,通過"ls -l xxx &&"可以獲取對應目錄的文件信息。
代碼目錄配置的OBS地址,會被同步到訓練容器的"${MA_JOB_DIR}/code/"目錄;訓練輸入的目錄會被同步到訓練容器的"/home/ma-user/modelarts/inputs/xxx_0"目錄,具體的地址可以在日志里查看。日志示例如下:
[ModelArts Service Log][INFO][2022/02/24 22:26:04]: caching the content of [data-path] inputs [ModelArts Service Log]2022-02-24 22:26:04,849 - modelarts-downloader.py[line:264] - INFO: Main: modelarts-downloader starting with Namespace(dst='./', recursive=True, skip_creating_dir=True, src='s3://ma-sa/yangzilong/demos/dog_cat_split/dog_cat_1w/', trace=False, type='common', verbose=False) [ModelArts Service Log]2022-02-24 22:26:05,204 - file_io.py[line:1276] - INFO: Listing OBS: 1000 [ModelArts Service Log]2022-02-24 22:26:05,324 - file_io.py[line:1276] - INFO: Listing OBS: 2000 [ModelArts Service Log]2022-02-24 22:26:05,432 - file_io.py[line:1276] - INFO: Listing OBS: 3000 [ModelArts Service Log]2022-02-24 22:26:05,534 - file_io.py[line:1276] - INFO: Listing OBS: 4000 [ModelArts Service Log]2022-02-24 22:26:05,636 - file_io.py[line:1276] - INFO: Listing OBS: 5000 [ModelArts Service Log]2022-02-24 22:26:05,733 - file_io.py[line:1276] - INFO: Listing OBS: 6000 [ModelArts Service Log]2022-02-24 22:26:05,839 - file_io.py[line:1276] - INFO: Listing OBS: 7000 [ModelArts Service Log]2022-02-24 22:26:05,943 - file_io.py[line:1276] - INFO: Listing OBS: 8000 [ModelArts Service Log]2022-02-24 22:26:06,050 - file_io.py[line:1276] - INFO: Listing OBS: 9000 [ModelArts Service Log]2022-02-24 22:26:06,059 - file_io.py[line:1276] - INFO: Listing OBS: 10000 [ModelArts Service Log]2022-02-24 22:26:06,061 - consumer.py[line:107] - INFO: MoXing Local Track Mode. [ModelArts Service Log]2022-02-24 22:28:29,179 - file_io.py[line:1276] - INFO: Listing OBS: 1000 [ModelArts Service Log]2022-02-24 22:28:29,261 - file_io.py[line:1276] - INFO: Listing OBS: 2000 [ModelArts Service Log]2022-02-24 22:28:29,351 - file_io.py[line:1276] - INFO: Listing OBS: 3000 [ModelArts Service Log]2022-02-24 22:28:29,438 - file_io.py[line:1276] - INFO: Listing OBS: 4000 [ModelArts Service Log]2022-02-24 22:28:29,527 - file_io.py[line:1276] - INFO: Listing OBS: 5000 [ModelArts Service Log]2022-02-24 22:28:29,609 - file_io.py[line:1276] - INFO: Listing OBS: 6000 [ModelArts Service Log]2022-02-24 22:28:29,691 - file_io.py[line:1276] - INFO: Listing OBS: 7000 [ModelArts Service Log]2022-02-24 22:28:29,781 - file_io.py[line:1276] - INFO: Listing OBS: 8000 [ModelArts Service Log]2022-02-24 22:28:29,862 - file_io.py[line:1276] - INFO: Listing OBS: 9000 [ModelArts Service Log]2022-02-24 22:28:29,869 - file_io.py[line:1276] - INFO: Listing OBS: 10000 [ModelArts Service Log]2022-02-24 22:28:30,940 - file_io.py[line:2465] - INFO: pid: None. 1000/10000 [ModelArts Service Log]2022-02-24 22:28:31,829 - file_io.py[line:2465] - INFO: pid: None. 2000/10000 [ModelArts Service Log]2022-02-24 22:28:32,715 - file_io.py[line:2465] - INFO: pid: None. 3000/10000 [ModelArts Service Log]2022-02-24 22:28:33,672 - file_io.py[line:2465] - INFO: pid: None. 4000/10000 [ModelArts Service Log]2022-02-24 22:28:34,569 - file_io.py[line:2465] - INFO: pid: None. 5000/10000 [ModelArts Service Log]2022-02-24 22:28:35,485 - file_io.py[line:2465] - INFO: pid: None. 6000/10000 [ModelArts Service Log]2022-02-24 22:28:36,423 - file_io.py[line:2465] - INFO: pid: None. 7000/10000 [ModelArts Service Log]2022-02-24 22:28:37,363 - file_io.py[line:2465] - INFO: pid: None. 8000/10000 [ModelArts Service Log]2022-02-24 22:28:38,228 - file_io.py[line:2465] - INFO: pid: None. 9000/10000 [ModelArts Service Log]2022-02-24 22:28:39,102 - file_io.py[line:2465] - INFO: pid: None. 10000/10000 [ModelArts Service Log][INFO][2022/02/24 22:28:39]: cache the content of [data-path] inputs successfully [ModelArts Service Log][INFO][2022/02/24 22:28:39]: it can be accessed at local dir [/home/ma-user/modelarts/inputs/data-path_0]
注意,如果是用了訓練輸入,訓練環境會默認在命令后增加一段參數(如," --data-path=xxxxx"),請消除對應參數影響。此配置后續可能會改成通過環境變量提供
最后,可以成功運行的參數如下:
/home/ma-user/anaconda3/envs/PyTorch-1.8/bin/python ${MA_JOB_DIR}/code/main.py -a resnet50 -b 128 --epochs 5
由于該任務配置了輸入目錄,所以訓練任務會自動拼接"--data-path=/home/ma-user/modelarts/inputs/data-path_0"。(后續可能整改)
機器學習 鏡像服務
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。