矢量模型
方案概覽
VAD (Vectorized Scene Representation for Efficient Autonomous Driving) 是一種面向自動(dòng)駕駛的端到端矢量化范式,將駕駛場(chǎng)景建模為完全矢量化的表征。該矢量化范式具有兩大顯著優(yōu)勢(shì):一方面,VAD利用矢量化的智能體運(yùn)動(dòng)軌跡和地圖元素作為顯式的實(shí)例級(jí)規(guī)劃約束,有效提升了規(guī)劃安全性;另一方面,通過(guò)摒棄計(jì)算密集的柵格化表征和人工設(shè)計(jì)的后處理步驟,VAD的運(yùn)行速度顯著快于先前的端到端規(guī)劃方法。VAD在nuScenes數(shù)據(jù)集上取得了最先進(jìn)的端到端規(guī)劃性能,較先前最佳方法有顯著提升。
本方案介紹了在ModelArts Lite Server上使用昇騰計(jì)算資源 Ascend Snt9B 或 Ascend Snt9B23 開(kāi)展VAD模型的訓(xùn)練過(guò)程。
資源規(guī)格要求
推薦使用“西南-貴陽(yáng)一”Region上的Lite Server資源。
|
名稱(chēng) |
版本 |
|---|---|
|
NPU卡數(shù) |
Ascend Snt9B:8卡, Ascend Snt9B23:8卡 或 16卡 |
|
Driver |
Ascend Snt9B:24.1.0.6, Ascend Snt9B23:24.1.RC3.5 |
|
PyTorch |
PyTorch-2.1.0 |
獲取軟件和鏡像
|
分類(lèi) |
名稱(chēng) |
獲取路徑 |
|---|---|---|
|
插件代碼包 |
AscendCloud-ACD-6.5.905-xxx.zip 文件名中的xxx表示具體的時(shí)間戳,以包名發(fā)布的實(shí)際時(shí)間為準(zhǔn)。 |
獲取路徑:Support-E,在此路徑中查找下載ModelArts 6.5.905版本。
說(shuō)明:
如果上述軟件獲取路徑打開(kāi)后未顯示相應(yīng)的軟件信息,說(shuō)明您沒(méi)有下載權(quán)限,請(qǐng)聯(lián)系您所在企業(yè)的華為方技術(shù)支持下載獲取。 |
|
Snt9B 基礎(chǔ)鏡像包 |
swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_2_1_ascend:pytorch_2.1.0-cann_8.1.rc1-py_3.10-hce_2.0.2503-aarch64-snt9b-20250513111215-29295f8 |
SWR上拉取。 |
|
Snt9B23 基礎(chǔ)鏡像包 |
swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_2_1_ascend:pytorch_2.1.0-cann_8.1.rc1-py_3.10-hce_2.0.2503-aarch64-snt9b23-20250509115535-21587eb |
SWR上拉取。 |
約束限制
- 本文檔適配昇騰云ModelArts 6.5.905版本,請(qǐng)參考表2 獲取軟件和鏡像獲取配套版本的軟件包和鏡像,請(qǐng)嚴(yán)格遵照版本配套關(guān)系使用本文檔。
- 確保容器可以訪問(wèn)公網(wǎng)。
步驟一:檢查環(huán)境
- 請(qǐng)參考Lite Server資源開(kāi)通,購(gòu)買(mǎi)Lite Server資源,并確保機(jī)器已開(kāi)通,密碼已獲取,能通過(guò)SSH登錄,不同機(jī)器之間網(wǎng)絡(luò)互通。
購(gòu)買(mǎi)Lite Server資源時(shí)如果無(wú)可選資源規(guī)格,需要聯(lián)系華為云技術(shù)支持申請(qǐng)開(kāi)通。
當(dāng)容器需要提供服務(wù)給多個(gè)用戶,或者多個(gè)用戶共享使用該容器時(shí),應(yīng)限制容器訪問(wèn)Openstack的管理地址(169.254.169.254),以防止容器獲取宿主機(jī)的元數(shù)據(jù)。具體操作請(qǐng)參見(jiàn)禁止容器獲取宿主機(jī)元數(shù)據(jù)。
- SSH登錄機(jī)器后,檢查NPU卡狀態(tài)。運(yùn)行如下命令,返回NPU設(shè)備信息。
npu-smi info # 在每個(gè)實(shí)例節(jié)點(diǎn)上運(yùn)行此命令可以看到NPU卡狀態(tài)
如出現(xiàn)錯(cuò)誤,可能是機(jī)器上的NPU設(shè)備沒(méi)有正常安裝,或者NPU鏡像被其他容器掛載。請(qǐng)先正常安裝固件和驅(qū)動(dòng),或釋放被掛載的NPU。
- 檢查是否安裝docker。
docker -v #檢查docker是否安裝
如尚未安裝,運(yùn)行以下命令安裝docker。
yum install -y docker-engine.aarch64 docker-engine-selinux.noarch docker-runc.aarch64
- 配置IP轉(zhuǎn)發(fā),用于容器內(nèi)的網(wǎng)絡(luò)訪問(wèn)。執(zhí)行以下命令查看net.ipv4.ip_forward配置項(xiàng)的值,如果為1,可跳過(guò)此步驟。
sysctl -p | grep net.ipv4.ip_forward
如果net.ipv4.ip_forward配置項(xiàng)的值不為1,執(zhí)行以下命令配置IP轉(zhuǎn)發(fā)。sed -i 's/net\.ipv4\.ip_forward=0/net\.ipv4\.ip_forward=1/g' /etc/sysctl.confsysctl -p | grep net.ipv4.ip_forward
步驟二:下載鏡像并啟動(dòng)容器
- 獲取基礎(chǔ)鏡像。建議使用官方提供的鏡像部署推理服務(wù)。鏡像地址{image_url}參見(jiàn)表2 獲取軟件和鏡像。
docker pull {image_url} - 啟動(dòng)容器鏡像。啟動(dòng)前請(qǐng)先按照參數(shù)說(shuō)明修改${}中的參數(shù)??梢愿鶕?jù)實(shí)際需要增加修改參數(shù)。
export work_dir="自定義掛載的工作目錄" export container_work_dir="自定義掛載到容器內(nèi)的工作目錄" export container_name="自定義容器名稱(chēng)" export image_name="鏡像名稱(chēng)" docker run -itd \ -u root \ --device=/dev/davinci0 \ --device=/dev/davinci1 \ --device=/dev/davinci2 \ --device=/dev/davinci3 \ --device=/dev/davinci4 \ --device=/dev/davinci5 \ --device=/dev/davinci6 \ --device=/dev/davinci7 \ --device=/dev/davinci8 \ --device=/dev/davinci9 \ --device=/dev/davinci10 \ --device=/dev/davinci11 \ --device=/dev/davinci12 \ --device=/dev/davinci13 \ --device=/dev/davinci14 \ --device=/dev/davinci15 \ --device=/dev/davinci_manager \ --device=/dev/devmm_svm \ --device=/dev/hisi_hdc \ -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \ -v /usr/local/dcmi:/usr/local/dcmi \ -v /etc/ascend_install.info:/etc/ascend_install.info \ -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /usr/bin/hccn_tool:/usr/bin/hccn_tool \ -v /etc/hccn.conf:/etc/hccn.conf \ --shm-size 1024g \ --net=host \ -v ${work_dir}:${container_work_dir} \ --name ${container_name} \ $image_name \ /bin/bash參數(shù)說(shuō)明:
- -v ${work_dir}:${container_work_dir}:代表需要在容器中掛載宿主機(jī)的目錄。宿主機(jī)和容器使用不同的文件系統(tǒng)。為方便兩個(gè)地址可以相同。例如“/home/vad:/home/vad ”
${work_dir}為宿主機(jī)中工作目錄,目錄下可存放項(xiàng)目所需代碼、數(shù)據(jù)等文件。請(qǐng)確保容器內(nèi)用戶對(duì)此路徑有足夠的訪問(wèn)權(quán)限。
${container_work_dir}為要掛載到的容器中的目錄。
- --name ${container_name} 容器名稱(chēng),進(jìn)入容器時(shí)會(huì)用到,此處可以自己定義一個(gè)容器名稱(chēng),例如“vad_test”。
- --device=/dev/davinci0 :掛載對(duì)應(yīng)卡到容器,請(qǐng)按照機(jī)器實(shí)際需要使用到的NPU數(shù)量來(lái)配置,上面給出的是使用16卡NPU訓(xùn)練的例子。
- 請(qǐng)確保容器內(nèi)用戶對(duì)${work_dir}有足夠的訪問(wèn)權(quán)限。
- ${container_work_dir}不能為/home/ma-user目錄,此目錄為ma-user用戶家目錄。
- driver及npu-smi需同時(shí)掛載至容器。
- 不要將多個(gè)容器綁到同一個(gè)NPU上,會(huì)導(dǎo)致后續(xù)的容器無(wú)法正常使用NPU功能。
- -v ${work_dir}:${container_work_dir}:代表需要在容器中掛載宿主機(jī)的目錄。宿主機(jī)和容器使用不同的文件系統(tǒng)。為方便兩個(gè)地址可以相同。例如“/home/vad:/home/vad ”
- 進(jìn)入容器。
docker exec -u root -it ${container_name} bash
步驟三:容器內(nèi)訓(xùn)練環(huán)境準(zhǔn)備
- 創(chuàng)建新的虛擬環(huán)境
conda create -n vad --clone PyTorch-2.1.0conda activate vad
- 創(chuàng)建項(xiàng)目目錄
mkdir -p /home/vad/projectcd /home/vad/projectexport P_HOME=`pwd`
- 將獲取到的插件代碼包AscendCloud-ACD-6.5.905-*.zip文件上傳到容器的${P_HOME}目錄下,并解壓。
cd $P_HOMEunzip -q AscendCloud-ACD-6.5.905-*.zip # 解壓905自動(dòng)駕駛相關(guān)版本包c(diǎn)d AscendCloud*mv models/VAD $P_HOME/VAD_support
- 創(chuàng)建patches目錄,并將patch文件移入目錄
cd $P_HOME mkdir patches && cd patches export PATCH_HOME=`pwd` mv $P_HOME/VAD_support/*.patch . # 將patch相關(guān)文件移動(dòng)到此文件夾
- 安裝 DrivingSDK
cd $P_HOME git clone https://gitee.com/ascend/DrivingSDK.git -b master cd DrivingSDK git checkout 059ec6e170152170c407e595e09e0823e44f4ba8 pip3 install -r requirements.txt vim CMakePresets.json # 修改 "ENABLE_ONNX"選項(xiàng): 為False umask 0027 # 保證文件權(quán)限正確 bash ci/build.sh --python=3.10 # 按照鏡像內(nèi)python版本指定 pip3 install ./dist/mx_driving-1.0.0+git059ec6e-cp310-cp310-linux_aarch64.whl pip3 show mx-driving # Version: 1.0.0+git059ec6e
- 安裝MindSpeed
cd $P_HOME git clone https://gitee.com/ascend/MindSpeed.git cd MindSpeed git checkout c3f2f77f58efba69dd21840fcbb758645fa5b579 pip3 install -e . pip3 show mindspeed # Version: 0.9.0
- 安裝mmcv-full 1.x
# 卸載鏡像內(nèi)原有的mmcv pip3 uninstall mmcv -y cd $P_HOME git clone https://github.com/open-mmlab/mmcv.git cd mmcv git checkout 1d8f9285674f2b1f9f2d7758d3f945ebb74fcf82 git apply $PATCH_HOME/mmcv.patch MMCV_WITH_OPS=1 FORCE_NPU=1 python setup.py build_ext MMCV_WITH_OPS=1 FORCE_NPU=1 python setup.py develop pip3 show mmcv-full # Version: 1.7.2
- 安裝 mmdet3d v1.0.0rc6
cd $P_HOME git clone https://github.com/open-mmlab/mmdetection3d.git cd mmdetection3d git checkout 47285b3f1e9dba358e98fcd12e523cfd0769c876 git apply $PATCH_HOME/mmdet3d.patch pip3 install -e . pip3 show mmdet3d # Version: 1.0.0rc6
- 安裝其它依賴
pip3 install mmdet==2.28.2 mmsegmentation==0.30.0 timm==1.0.9 nuscenes-devkit==1.1.11 similaritymeasures==1.2.0 numpy==1.23.4
- 下載模型代碼,將插件代碼包內(nèi)的scripts文件夾移動(dòng)到模型代碼目錄
cd $P_HOME git clone https://github.com/hustvl/VAD.git cd VAD export VAD_HOME=`pwd` git checkout 081473d6e1756a4ecee95425c05fc6644d17bb5f git apply $PATCH_HOME/vad.patchmv $P_HOME/VAD_support/scripts . # 將scripts文件夾移動(dòng)到此目錄
步驟四:準(zhǔn)備訓(xùn)練數(shù)據(jù)集和模型權(quán)重
- 請(qǐng)參考GitHub項(xiàng)目?jī)?nèi)數(shù)據(jù)處理部分的文檔下載 nuScenes V1.0 full 和 CAN bus 數(shù)據(jù)集。
- 創(chuàng)建data目錄并將下載的數(shù)據(jù)集做預(yù)處理。
cd $VAD_HOMEmkdir data && cd data# 將下載好的數(shù)據(jù)集移動(dòng)到此目錄下并解壓# 對(duì)數(shù)據(jù)集做預(yù)處理cd $VAD_HOMEpython tools/data_converter/vad_nuscenes_converter.py nuscenes --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag vad_nuscenes --version v1.0 --canbus ./data
- 數(shù)據(jù)處理耗時(shí)較長(zhǎng)。
- 下載預(yù)訓(xùn)練模型權(quán)重。
cd $VAD_HOMEmkdir ckpts && cd ckpts wget https://download.pytorch.org/models/resnet50-19c8e357.pth
最終目錄結(jié)構(gòu)如下。VAD ├── projects/ ├── tools/ ├── configs/ ├── ckpts/ │ ├── resnet50-19c8e357.pth ├── data/ │ ├── can_bus/ │ ├── nuscenes/ │ │ ├── lidarseg/ │ │ ├── maps/ │ │ ├── samples/ │ │ ├── sweeps/ │ │ ├── v1.0-test/ │ │ ├── v1.0-trainval/ │ │ ├── vad_nuscenes_infos_temporal_train.pkl # 由數(shù)據(jù)預(yù)處理生成│ │ ├── vad_nuscenes_infos_temporal_val.pkl # 由數(shù)據(jù)預(yù)處理生成
步驟五:開(kāi)始訓(xùn)練與評(píng)估
- 進(jìn)行8卡訓(xùn)練(精度)
cd $VAD_HOMEsh scripts/start_train.sh
- 進(jìn)行8卡訓(xùn)練(性能)
cd $VAD_HOMENPUS=8 MODE=performance sh scripts/start_train.sh
- 進(jìn)行16卡訓(xùn)練(性能)
cd $VAD_HOMENPUS=16 MODE=performance sh scripts/start_train.sh
- 進(jìn)行1卡評(píng)估
cd $VAD_HOME# 使用上次訓(xùn)練的最后一個(gè)模型做評(píng)估 sh scripts/start_evl.sh # 指定模型做評(píng)估 MODEL_PATH="to/model/path.pt" sh scripts/start_evl.sh
- 輸出結(jié)果路徑
# 訓(xùn)練結(jié)果目錄$VAD_HOME/scripts/output# 評(píng)估結(jié)果目錄$VAD_HOME/scripts/evl_result
- 當(dāng)前模型訓(xùn)練和評(píng)估需要單獨(dú)進(jìn)行,無(wú)法在訓(xùn)練過(guò)程中進(jìn)行評(píng)估。
- 請(qǐng)勿自行修改配置文件內(nèi)Batch_Size的值。
- 當(dāng)前只能進(jìn)行單卡評(píng)估,多卡會(huì)影響評(píng)估結(jié)果準(zhǔn)確性。
- 如果想使用預(yù)訓(xùn)練模型進(jìn)行評(píng)估需要參照項(xiàng)目官網(wǎng)修改配置文件,具體細(xì)節(jié)可以參考:https://github.com/hustvl/VAD/blob/main/docs/train_eval.md
矢量模型常見(jiàn)問(wèn)題
更多常見(jiàn)問(wèn)題 >>-
GaussDB是華為自主創(chuàng)新研發(fā)的分布式關(guān)系型數(shù)據(jù)庫(kù)。具備企業(yè)級(jí)復(fù)雜事務(wù)混合負(fù)載能力,同時(shí)支持分布式事務(wù),同城跨AZ部署,數(shù)據(jù)0丟失,支持1000+節(jié)點(diǎn)的擴(kuò)展能力,PB級(jí)海量存儲(chǔ)。
-
SFS的常見(jiàn)問(wèn)題解答。
-
預(yù)熱的任務(wù)一直在處理中的可能原因有如下幾種:可能當(dāng)前CDN處于預(yù)熱高峰期,您的預(yù)熱任務(wù)正在排隊(duì)中。緩存預(yù)熱的時(shí)候CDN要回源請(qǐng)求資源,會(huì)占用源站帶寬。當(dāng)您要執(zhí)行大批量文件預(yù)熱時(shí),可能會(huì)導(dǎo)致您的源站帶寬資源被占滿,建議:預(yù)熱時(shí)請(qǐng)盡量分批次執(zhí)行。您可以在訪問(wèn)量低的時(shí)間(如夜間)進(jìn)行預(yù)熱。升級(jí)您的源站帶寬。
-
本文為您解答華為云云市場(chǎng)按需付費(fèi)鏡像常見(jiàn)問(wèn)題。
-
包年包月鏡像是基于按需鏡像包裝出的預(yù)付費(fèi)套餐,一個(gè)包年包月鏡像同一時(shí)間只能用于一臺(tái)云服務(wù)器。包年包月鏡像支持續(xù)費(fèi),在到期前用戶可以選擇續(xù)費(fèi)繼續(xù)使用。如果到期不對(duì)鏡像續(xù)費(fèi),而云服務(wù)器繼續(xù)使用,請(qǐng)?jiān)诘狡谇凹皶r(shí)更換系統(tǒng),否則鏡像將以按需的方式開(kāi)始計(jì)費(fèi)。
-
云速郵箱常見(jiàn)問(wèn)題解答,包括企業(yè)郵箱登陸、郵件發(fā)送和接收、域名注冊(cè)和解析、手機(jī)客戶端設(shè)置、垃圾郵件設(shè)置等等,你想要的問(wèn)題答案,都在這里,還可免費(fèi)試用云速郵箱30天,幫助企業(yè)輕松上云!
更多相關(guān)專(zhuān)題
- 熱門(mén)產(chǎn)品
- 大模型即服務(wù)平臺(tái) MaaS
- Flexus云服務(wù)
- 云服務(wù)器
- 盤(pán)古大模型
- SSL證書(shū)
- 華為云WeLink
- 支持與服務(wù)
- 自助服務(wù)
- 服務(wù)公告
- 支持計(jì)劃
- 盤(pán)古Doer
- 聯(lián)系我們
- 舉報(bào)中心
- 實(shí)用工具
- 文字識(shí)別
- 漏洞掃描
- 華為云會(huì)議
- 云服務(wù)健康看板
增值電信業(yè)務(wù)經(jīng)營(yíng)許可證:B1.B2-20200593 | 域名注冊(cè)服務(wù)機(jī)構(gòu)許可:黔D3-20230001 | 代理域名注冊(cè)服務(wù)機(jī)構(gòu):新網(wǎng)、西數(shù)