行和導(dǎo)出ONNX模型)
在MuJoCo中運(yùn)行和導(dǎo)出ONNX模型通常是強(qiáng)化學(xué)習(xí)工作流中的兩個(gè)關(guān)鍵步驟導(dǎo)出是將訓(xùn)練好的策略模型轉(zhuǎn)換為通用格式運(yùn)行則是在仿真環(huán)境中驗(yàn)證這個(gè)模型。整個(gè)過(guò)程可以總結(jié)為“訓(xùn)練 - 導(dǎo)出 - 仿真驗(yàn)證”下面以你之前接觸的microduck_rl項(xiàng)目為例進(jìn)行說(shuō)明。 導(dǎo)出ONNX模型將策略變?yōu)橥ㄓ梦募?dǎo)出過(guò)程的核心是將訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)策略通常是.pt文件轉(zhuǎn)換為.onnx格式并烘焙Bake觀測(cè)歸一化器。這一步至關(guān)重要它確保了模型在實(shí)際部署時(shí)接收的數(shù)據(jù)和處理方式與訓(xùn)練時(shí)完全一致。核心命令在microduck_rl項(xiàng)目根目錄下使用官方導(dǎo)出腳本。bashuv run scripts/export.py Mjlab-Velocity-Flat-MicroDuck --wandb-run-path 你的wandb運(yùn)行路徑重要說(shuō)明必須使用官方腳本microduck_rl的export.py腳本不僅導(dǎo)出網(wǎng)絡(luò)權(quán)重還會(huì)將觀測(cè)歸一化器的參數(shù)固化到ONNX模型中。手動(dòng)轉(zhuǎn)換會(huì)導(dǎo)致策略在仿真或真機(jī)上失效。輸入需要指定訓(xùn)練好的模型路徑通常通過(guò)--wandb-run-path指向記錄訓(xùn)練過(guò)程的WandB項(xiàng)目。輸出命令執(zhí)行后會(huì)在指定目錄生成一個(gè).onnx文件例如output.onnx這就是后續(xù)要運(yùn)行的文件。?? 運(yùn)行ONNX模型在仿真中驗(yàn)證策略運(yùn)行ONNX模型就是在MuJoCo仿真環(huán)境中加載并執(zhí)行這個(gè)策略觀察機(jī)器人的表現(xiàn)這被稱為“仿真彩排”。核心命令同樣在microduck_rl項(xiàng)目根目錄下使用推理腳本。bashuv run scripts/infer_policy.py --walking output.onnx重要說(shuō)明CPU即可運(yùn)行這一步對(duì)計(jì)算資源要求不高在普通電腦的CPU上就能運(yùn)行。交互與控制運(yùn)行后會(huì)彈出一個(gè)MuJoCo仿真窗口。你可以通過(guò)鍵盤來(lái)控制MicroDuck例如讓它行走、踢球等。不同的命令對(duì)應(yīng)不同的動(dòng)作--help參數(shù)可以查看所有選項(xiàng)。功能擴(kuò)展該腳本還支持--record錄像和--save-csv導(dǎo)出數(shù)據(jù)方便進(jìn)行仿真到現(xiàn)實(shí)Sim2Real的對(duì)比分析。 總結(jié)總的來(lái)說(shuō)這個(gè)流程非常清晰導(dǎo)出在microduck_rl項(xiàng)目中使用uv run scripts/export.py ...命令將訓(xùn)練好的策略如.pt文件導(dǎo)出為包含歸一化參數(shù)的.onnx文件。運(yùn)行在同一項(xiàng)目中使用uv run scripts/infer_policy.py --walking 你的模型.onnx命令在MuJoCo仿真中加載并測(cè)試導(dǎo)出的策略。這個(gè)“導(dǎo)出-運(yùn)行”的循環(huán)是驗(yàn)證策略有效性的關(guān)鍵一步也是從仿真走向真實(shí)機(jī)器人的必經(jīng)之路。