SuperAPI AI 工具集

tao-train-bevfusion

设计与创作

查看项目

更新于 10-16 04:34

技能介绍

用途:BEVFusion 用于多传感器 3D 目标检测,在 BEV 空间中融合 LiDAR 点云与相机图像,面向自动驾驶的鲁棒 3D 感知。可设置 Swin 图像骨干的预训练权重路径。

主要能力:基于 TAO Core,打包了生成的 schemas/<action>.schema.json 及 schemas/manifest.json,并由 schema 顶层 default 生成 references/spec_template_<action>.yaml。模型层通过 references/skill_info.yaml 的 automl_enabled 声明 AutoML。训练支持分布式多 GPU/多节点。

训练策略:train 动作默认经 tao-skill-bank:tao-run-automl 路由(automl_policy: auto 且启用并可解析 schema/模板时)。用户说“关闭 AutoML/禁用 AutoML/无 HPO/普通训练”时仅本次运行设为 automl_policy: off。仅当 off 或缺少打包 train schema/模板时用直接训练;缺 schema 时报告 AutoML 已启用但不可运行。evaluate、inference、export、deploy 留在本模型技能内。

数据要求:数据集类型 bevfusion,格式 default,监控指标 AP11。dataset_convert 需 root_dir;evaluate/inference 用 test_dataset 的 ann_file(kitti_person_infos_val.pkl);train 需 train/val/test 的 ann_file(分别为 kitti_person_infos_train.pkl 与 val)。所有动作必须构造数据源路径并写入 spec_overrides。

重要参数:dataset.classes 默认 ["person"];dataset.type 可选 KittiPersonDataset、TAO3DSyntheticDataset、TAO3DDataset;dataset.box_type_3d 默认 lidar;train.optimizer.lr 默认 2e-4(AdamW);input_modality 中 use_lidar/use_camera 为 True、use_radar/use_map 为 False;model.img_backbone 默认 mmdet.SwinTransformer(Swin-Tiny);view_transform.type 默认 DepthLSSTransform;point_cloud_range 默认 [0,-40,-3,70.4,40,1];voxel_size 默认 [0.05,0.05,0.1];batch_size 默认 4。

多 GPU/多节点:入口用 torchrun --nnodes=N --nproc-per-node=M train.py,非 plain python。含 train.num_gpus、gpu_ids、num_nodes 等键;使用 mmdet3d 分布式训练而非 Lightning DDP;NODE_RANK 在 RANK 未设时复制给 RANK;CUDA_VISIBLE_DEVICES 由 TAO_VISIBLE_DEVICES 设置。

硬件:最少 2 卡,建议 4 卡,每卡 24GB+(推荐 A100),因多传感器融合显存占用高。

限制:训练前须先运行 dataset_convert 生成 info pickle;多模态需相机图像与 LiDAR 点云同时存在;BEVFusion 检查点 epoch 编号可能非标准零填充格式。推理映射写在本文档而非 config.json,parent_model 需传上游作业 id。其余细节暂未提供。