學會如何安裝配置華為云ModelArts、開發(fā)板Atlas 200I DK A2, 并打通一個訓練到推理的全流程思路。 > 在本篇章,我們首先開始訓練階段!
學會如何安裝配置華為云ModelArts、開發(fā)板Atlas 200I DK A2,
并打通一個訓練到推理的全流程思路。
在本篇章,我們首先開始訓練階段!
MindSpore 華為云 模型訓練
主要參數(shù)信息如下,其余配置請保持默認配置
區(qū)域 :選擇“ 華北-北京四 ”
文件系統(tǒng)名稱:自定義,本例使用modelarts0009
(請使用modelarts作為文件系統(tǒng)前綴,注意名稱為全局唯一)
數(shù)據(jù)冗余存儲策略 :選擇“ 單AZ存儲 ”
策略 :選擇“ 私有 ”
在“全局配置”頁面查看是否已經(jīng)配置授權(quán),允許ModelArts訪問OBS:
登錄華為云 -> 控制臺 -> 左側(cè)導航欄選擇“ModelArts” -> 在左側(cè)導航欄選擇“全局配置” -> 單擊“添加授權(quán)”
首次使用ModelArts:直接選擇“新增委托”中的“普通用戶”權(quán)限
登錄華為云 -> 控制臺 -> 左側(cè)導航欄選擇“ModelArts” -> 在左側(cè)導航欄選擇“開發(fā)環(huán)境”-> “Notebook” -> 點擊“創(chuàng)建”
進行以下配置:
主要參數(shù)信息如下,其余配置請保持默認配置
名稱:自定義,本例使用notebook-test
自動停止:自行選擇,本例選擇4小時
鏡像 :選擇“公共鏡像”,并選擇“ mindspore_1.10.0-cann_6.0.1-py_3.7-euler_2.8.3 ”
資源類型:選擇“公共資源池”
磁盤規(guī)格 :使用 50 GB
本地掛載目錄 :自定義創(chuàng)建本地掛載目錄,本例使用 /data/input
存儲位置 :選擇所創(chuàng)建的并行文件系統(tǒng)(本例選擇已創(chuàng)建的 moderarts0009 ),以及數(shù)據(jù)集所在的目錄 input
返回Notebook界面 -> 點擊“打開”notebook-test ->
打開“
Terminal
”命令行終端界面 ->
執(zhí)行以下命令,創(chuàng)建用于測試的test文件
touch /data/input/test
再執(zhí)行以下命令,可以看到你剛創(chuàng)建的test文件&先前上傳的文件
ls /data/input
上傳
這里選擇
OBS文件上傳
,
因為這里
本地上傳
限制為100M文件。
解壓
打開“
Terminal
”命令行終端界面 ->
執(zhí)行以下命令,查看是否在正確的路徑下
pwd
ls -l
執(zhí)行以下命令,解壓項目工程文件壓縮包
(這里以工業(yè)質(zhì)檢Unet為例,具體代碼可參考文末
學習資源推薦
)
unzip unet.zip
unzip unet_sdk.zip
├──unet
├──data // 預處理后的數(shù)據(jù)集文件夾
├──raw_data // 原始數(shù)據(jù)集
├──out_model // 模型導出保存文件夾
├──pred_visualization // 可視化圖片保存文件夾(需要自己創(chuàng)建)
├──src // 功能函數(shù)
│ ├──unet_medical // U-Net網(wǎng)絡(luò)
│ ├──unet_nested // U-Net++網(wǎng)絡(luò)
│ ├──config.py // 配置文件
│ ├──data_loader.py // 數(shù)據(jù)加載
│ ├──eval_callback.py // 訓練時評估回調(diào)
│ ├──loss.py // 損失函數(shù)
│ ├──utils.py // 工具類函數(shù)
├──draw_result_folder.py // 文件夾圖片可視化
├──draw_result_single.py // 單張圖片可視化
├──eval.py // 模型驗證
├──export.py // 模型導出,ckpt轉(zhuǎn)air/mindir/onnx
├──postprocess.py // 后處理
├──preprocess.py // 前處理
├──preprocess_dataset.py // 數(shù)據(jù)集預處理
├──train.py // 模型訓練
├──requirements.txt
├── unet_sdk
├── model
│ ├──air2om.sh // air模型轉(zhuǎn)om腳本
│ ├──xxx.air //訓練階段導出的air模型
│ ├──aipp_unet_simple_opencv.cfg // aipp文件
注:
接下來就可以開始旅程,進入訓練階段。
若中途暫停實驗,記得做停止資源操作,消耗最少費用;
若返回繼續(xù)實驗,再次啟動Notebook編程環(huán)境;
若完成了本實驗,最后是釋放資源操作,為了停止計費。
MindSpore 數(shù)據(jù)集預處理preprocess_dataset.py文件需調(diào)用如下腳本:
文件參數(shù)腳本src/config.py文件。
文件參數(shù)腳本為src/config.py,包括
unet_medical,
unet_nested,
unet_nested_cell,
unet_simple,
unet_simple_coco
共5種配置,表示模型與數(shù)據(jù)集之間的組合。
包含超參數(shù)、數(shù)據(jù)集路徑等文件參數(shù)
新建NoteBook中:查看是否在工程目錄unet/路徑下
!pwd
進入NoteBook中:運行示例
!python3 preprocess_dataset.py --data_url=./data/
其中--data_url:數(shù)據(jù)集預處理后的保存路徑。
MindSpore模型訓練 需調(diào)用如下腳本:
preprocess_dataset.py:將類coco數(shù)據(jù)集 轉(zhuǎn)化成 模型訓練需要數(shù)據(jù)格式。
src/unet_xxx/:存放 unet/unet++ 模型結(jié)構(gòu)。
src/data_loader.py:存放 數(shù)據(jù)加載功能函數(shù)。
src/eval_callback:存放 cb 函數(shù),用于訓練過程中進行eval.
src/utils.py: mindspore 自定義 cb 函數(shù),自定義 metrics 函數(shù)。
train.py
!python train.py --data_url=./data/ --run_eval=True
MindSpore模型推理 需調(diào)用如下腳本:
src/unet_xxx/:存放unet/unet++模型結(jié)構(gòu)。
src/data_loader.py:存放數(shù)據(jù)預處理,數(shù)據(jù)加載功能函數(shù)。
src/utils.py:mindspore自定義cb函數(shù),自定義metrics函數(shù)。
eval.py
!python eval.py --data_url=./data/ --ckpt_path=./ckpt_0/best.ckpt
可以通過畫圖的方式將圖像的結(jié)果可視化,方便查看。
可視化方法有兩種。
draw_result_single.py:
單張圖片可視化
,
輸出單張圖片的裁剪畫圖結(jié)果crop_plot.png和模型預測的結(jié)果predict_plot.png。
查看工程目錄unet/路徑下
確保已經(jīng)事先創(chuàng)建好
可視化圖片保存文件
pred_visualization文件夾
進入NoteBook中:運行示例
!python draw_result_single.py --data_url=./data/SW1hZ2VfMjAyMTA3MjcxNTEzMzYzNzk --save_url=./pred_visualization --ckpt_path=./ckpt_0/best.ckpt
其中--data_url:數(shù)據(jù)集輸入路徑(到單張圖像)。
其中--save_url:輸出圖像保存路徑。
其中--ckpt_path:ckpt讀取路徑。
draw_result_folder.py:
文件夾圖片可視化
,
輸出文件夾內(nèi)圖片的模型預測結(jié)果predict.png。
查看工程目錄unet/路徑下
確保已經(jīng)事先創(chuàng)建好
可視化圖片保存文件
pred_visualization文件夾
進入NoteBook中:運行示例
!python draw_result_folder.py --data_url=./data/ --save_url=./pred_visualization --ckpt_path=./ckpt_0/best.ckpt
其中--data_url:數(shù)據(jù)集輸入路徑(到圖像文件夾)。
其中--save_url:輸出圖像保存路徑。
其中--ckpt_path:ckpt讀取路徑。
如果想在昇騰AI處理器上執(zhí)行推理,
可以通過網(wǎng)絡(luò)定義和CheckPoint生成AIR格式模型文件。
!python export.py --ckpt_file="./ckpt_0/best.ckpt" --width=960 --height=960 --file_name="out_model/unet_hw960_bs1" --file_format="AIR"
此處模型轉(zhuǎn)換需要用到ATC工具。
詳細內(nèi)容&錯誤碼請參考
昇騰官網(wǎng)文檔-使用ATC工具轉(zhuǎn)換模型
這里因為模型中有optype[ArgMaxD],因此需要在Ascend910系列芯片上執(zhí)行模型轉(zhuǎn)換才能成功。
(此次華為云ModelArts使用的正是Ascend910A)
而一般情況,模型訓練完進行的模型轉(zhuǎn)換是可以選擇在開發(fā)者套件(Ascend310系列芯片)和Ubuntu系統(tǒng)中執(zhí)行的。
(具體方法請參考 昇騰官網(wǎng)文檔-轉(zhuǎn)換模型 )
atc --framework=1 --model=unet_hw960_bs1.air --output=unet_hw960_bs1 --input_format=NCHW --soc_version=Ascend910A --log=error --insert_op_conf=aipp_unet_simple_opencv.cfg
本實驗將 訓練階段 實驗 模型保存 的 air模型 轉(zhuǎn)為昇騰Al處理器支持的 om格式離線模型
注意:air 模型轉(zhuǎn) om 只支持靜態(tài) batch,這里 batchsize=1。
其中--framework:原始框架類型。
其中--model:原始模型文件路徑與文件名。
其中--output:轉(zhuǎn)換后的離線模型的路徑以及文件名。
其中--input_format:輸入數(shù)據(jù)格式。
其中--soc_version:模型轉(zhuǎn)換時指定芯片版本。
( 這句話指的是當前執(zhí)行模型轉(zhuǎn)換時候所在機器的芯片版本 ,可通過命令行終端輸入npu-smi info
查看)
其中--log:顯示日志的級別。
其中--insert_op_conf:插入算子的配置文件路徑與文件名,這里使用AIPP預處理配置文件,用于圖像數(shù)據(jù)預處理。
確保在工程目錄unet_sdk/model/路徑下,首先查看文件權(quán)限
ls -l
(如果文件權(quán)限列中沒有x,你才需要繼續(xù)下一命令賦予它執(zhí)行權(quán)限)
輸入
chmod +x air2om.sh
運行示例
輸入
./air2om.sh
注:
到此我們在華為云上使用MindSpore的訓練階段實驗就結(jié)束了。
有了導出的air模型及其模型轉(zhuǎn)換出的om模型,我們就可以繼續(xù)進入下一篇章:
AscendCL推理階段
。
結(jié)束后記得 及時關(guān)閉云上環(huán)境 ,避免資源浪費和產(chǎn)生額外的費用。!
機器學習:神經(jīng)網(wǎng)絡(luò)構(gòu)建(下)
閱讀華為Mate品牌盛典:HarmonyOS NEXT加持下游戲性能得到充分釋放
閱讀實現(xiàn)對象集合與DataTable的相互轉(zhuǎn)換
閱讀算法與數(shù)據(jù)結(jié)構(gòu) 1 - 模擬
閱讀5. Spring Cloud OpenFeign 聲明式 WebService 客戶端的超詳細使用
閱讀Java代理模式:靜態(tài)代理和動態(tài)代理的對比分析
閱讀Win11筆記本“自動管理應(yīng)用的顏色”顯示規(guī)則
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)