BEVFusion
BEVFusion 是 TAO 中包含的 3D 对象检测模型。它支持以下任务
转换
训练
评估
推理
示例推理结果

TAO BEVFusion 推理图像
这些任务可以使用以下命令行约定从 TAO 启动器调用
tao model bevfusion <sub_task> <args_per_subtask>
其中 args_per_subtask
是给定子任务所需的命令行参数。这些子任务中的每一个解释如下。
BEVFusion 的数据集包含点云数据、rgb 图像和相应的 3D 对象标注。目录结构应组织为 KITTI 目录结构。
/kitti
/training
/calib
000000.txt
000001.txt
...
N.txt
/image_2
000000.png
000001.png
...
N.png
/label_2
000000.txt
000001.txt
...
N.txt
/velodyne
000000.bin
000001.bin
...
N.bin
/ImageSets
train.txt
val.txt
test.txt
每个 .bin
文件应符合上述格式。每个 .txt
标签文件应符合 KITTI 格式。
以下是 BEVFusion 规范文件的示例。它有六个组件 - model
、inference
、evaluate
、dataset
和 train
- 以及几个全局参数,如下所述。规范文件的格式为 YAML 文件。
以下是 BEVFusion 规范文件的示例
results_dir: /results/bevfusion
dataset:
type: KittiPersonDataset
root_dir: /data/
gt_box_type: camera
default_cam_key: CAM2
train_dataset:
repeat_time: 2
ann_file: /data/kitti_person_infos_train.pkl
data_prefix:
pts: training/velodyne_reduced
img: training/image_2
batch_size: 4
num_workers: 8
val_dataset:
ann_file: /data/kitti_person_infos_val.pkl
data_prefix:
pts: training/velodyne_reduced
img: training/image_2
batch_size: 2
num_workers: 4
test_dataset:
ann_file: /data/kitti_person_infos_val.pkl
data_prefix:
pts: training/velodyne_reduced
img: training/image_2
batch_size: 4
num_workers: 4
model:
type: BEVFusion
point_cloud_range: [0, -40, -3, 70.4, 40, 1]
voxel_size: [0.05, 0.05, 0.1]
grid_size: [1440, 1440, 41]
train:
num_gpus: 1
num_nodes: 1
validation_interval: 1
num_epochs: 5
optimizer:
type: AdamW
lr: 0.0002
lr_scheduler:
- type: LinearLR
start_factor: 0.33333333
by_epoch: False
begin: 0
end: 500
- type: CosineAnnealingLR
T_max: 10
begin: 0
end: 10
by_epoch: True
eta_min_ratio: 1e-4
- type: CosineAnnealingMomentum
eta_min: 0.8947
begin: 0
end: 2.4
by_epoch: True
- type: CosineAnnealingMomentum
eta_min: 1
begin: 2.4
end: 10
by_epoch: True
inference:
num_gpus: 1
conf_threshold: 0.3
checkpoint: /results/train/bevfusion_model.pth
evaluate:
num_gpus: 1
checkpoint: /results/train/bevfusion_model.pth
字段 |
value_type |
描述 |
default_value |
valid_min |
valid_max |
valid_options |
automl_enabled |
---|---|---|---|---|---|---|---|
results_dir |
string | /results | FALSE | ||||
default_scope |
string | 使用 mmdet3d 的默认作用域 | mmdet3d | FALSE | |||
default_hooks |
collection | mmlabs 的默认钩子 | {‘timer’: {‘type’: ‘IterTimerHook’}, ‘logger’: {‘type’: ‘LoggerHook’, ‘interval’: 1, ‘log_metric_by_epoch’: True}, ‘param_scheduler’: {‘type’: ‘ParamSchedulerHook’}, ‘checkpoint’: {‘type’: ‘CheckpointHook’, ‘by_epoch’: True, ‘interval’: 1}, ‘sampler_seed’: {‘type’: ‘DistSamplerSeedHook’}, ‘visualization’: {‘type’: ‘Det3DVisualizationHook’}} | FALSE | |||
logger_hook |
string | 默认日志记录器钩子类型 | TAOBEVFusionLoggerHook | FALSE | |||
manual_seed |
int | 可选的手动种子。当在规范文件中给出值时,将设置种子。 | FALSE | ||||
input_modality |
collection | 模型的输入模态。为每个要使用的模态设置为 True。 | {‘use_lidar’: True, ‘use_camera’: True, ‘use_radar’: False, ‘use_map’: False, ‘use_external’: False} | FALSE | |||
model |
collection | 用于构建 BEVFusion 实验模型的Configurable parameters(可配置参数)。 | FALSE | ||||
dataset |
collection | 用于构建 BEVFusion 实验数据集的Configurable parameters(可配置参数)。 | FALSE | ||||
训练 |
collection | 用于构建 BEVFusion 实验训练器的Configurable parameters(可配置参数)。 | FALSE | ||||
评估 |
collection | 用于构建 BEVFusion 实验评估器的Configurable parameters(可配置参数)。 | FALSE | ||||
推理 |
collection | 用于构建 BEVFusion 实验推理器的Configurable parameters(可配置参数)。 | FALSE |
数据预处理器配置
数据集配置 (data_preprocessor
) 定义了数据源和预处理超参数。
字段 |
value_type |
描述 |
default_value |
valid_min |
valid_max |
valid_options |
automl_enabled |
---|---|---|---|---|---|---|---|
type |
string | 用于 3D 融合的数据预处理器名称 | Det3DDataPreprocessor | FALSE | |||
mean |
list | RGB 帧的输入均值 | [123.675, 116.28, 103.53] | FALSE | |||
std |
list | RGB 帧的每像素输入标准差 | [58.395, 57.12, 57.375] | FALSE | |||
bgr_to_rgb |
bool | 是否将图像从 BGR 转换为 RGB。 | 32 | FALSE | |||
pad_size_divisor |
int | 填充图像的大小应可被整除。 | 32 | FALSE | |||
voxelize_cfg |
collection | {‘max_num_points’: 10, ‘max_voxels’: [120000, 160000], ‘voxelize_reduce’: True} | FALSE |
数据集配置
数据集配置 (dataset
) 定义了数据集目录、标注文件和 train
、val
或 test
的批量大小。
字段 |
value_type |
描述 |
default_value |
valid_min |
valid_max |
valid_options |
automl_enabled |
---|---|---|---|---|---|---|---|
type |
string | 用于 3D 融合的数据集类型 | KittiPersonDataset | TAO3DSyntheticDataset,TAO3DDataset,KittiPersonDataset | FALSE | ||
root_dir |
string | 给定数据集的根目录路径 | /data/ | FALSE | |||
classes |
list | 要训练的类列表。 | [‘person’] | FALSE | |||
box_type_3d |
string | 训练时要使用的 3D 边界框类型。 | lidar | lidar,camera | FALSE | ||
gt_box_type |
string | 地面真值中的 3D 边界框类型。 | camera | lidar,camera | FALSE | ||
origin |
list | 地面真值 3D 边界框中给定中心点的原点。 | [0.5, 1.0, 0.5] | FALSE | |||
default_cam_key |
string | 数据集中的默认相机名称 | CAM0 | FALSE | |||
per_sequence |
bool | 是否以每序列格式保存结果。 | False | FALSE | |||
num_views |
int | 数据集中的相机视图数量。 | 1 | FALSE | |||
point_cloud_dim |
int | 输入激光雷达点云数据维度 | 4 | FALSE | |||
train_dataset |
collection | 用于构建训练数据集的Configurable parameters(可配置参数)。 | FALSE | ||||
val_dataset |
collection | 用于构建验证数据集的Configurable parameters(可配置参数)。 | FALSE | ||||
test_dataset |
collection | 用于构建测试数据集的Configurable parameters(可配置参数)。 | FALSE | ||||
img_file |
string | 用于单文件推理的图像文件 | FALSE | ||||
pc_file |
string | 用于单文件推理的点云文件 | FALSE | ||||
cam2img |
list | 用于单文件推理的相机内参矩阵 | FALSE | ||||
lidar2cam |
list | 用于单文件推理的激光雷达到相机外参矩阵 | FALSE |
模型配置
模型配置 (model
) 定义了 BEVFusion 模型结构。此模型用于训练、评估和推理。详细描述包含在下表中。
字段 |
value_type |
描述 |
default_value |
valid_min |
valid_max |
valid_options |
automl_enabled |
---|---|---|---|---|---|---|---|
type |
string | 模型名称 | BEVFusion | BEVFusion | FALSE | ||
point_cloud_range |
list | 点云范围 | [0, -40, -3, 70.4, 40, 1] | FALSE | |||
voxel_size |
list | 体素化中的体素大小 | [0.05, 0.05, 0.1] | FALSE | |||
post_center_range |
list | 后处理中心滤波器范围 | [-61.2, -61.2, -20.0, 61.2, 61.2, 20.0] | FALSE | |||
grid_size |
list | bevfusion 模型的网格大小 | [1440, 1440, 41] | FALSE | |||
data_preprocessor |
collection | 用于构建 bevfusion 模型预处理器的Configurable parameters(可配置参数)。 | FALSE | ||||
img_backbone |
collection | 用于构建 bevfusion 模型相机图像骨干网络的Configurable parameters(可配置参数)。 | FALSE | ||||
img_neck |
collection | 用于构建 bevfusion 模型相机图像颈部的Configurable parameters(可配置参数)。 | FALSE | ||||
view_transform |
collection | 用于构建 bevfusion 模型相机视图变换的Configurable parameters(可配置参数)。 | FALSE | ||||
pts_backbone |
collection | 用于构建 bevfusion 模型激光雷达点云骨干网络的Configurable parameters(可配置参数)。 | FALSE | ||||
pts_voxel_encoder |
collection | 用于构建 bevfusion 模型激光雷达点云体素编码器的Configurable parameters(可配置参数)。 | {‘type’: ‘HardSimpleVFE’, ‘num_features’: 4} | FALSE | |||
pts_middle_encoder |
collection | 用于构建 bevfusion 模型激光雷达编码器的Configurable parameters(可配置参数)。 | FALSE | ||||
pts_neck |
collection | 用于构建 bevfusion 模型激光雷达颈部的Configurable parameters(可配置参数)。 | FALSE | ||||
fusion_layer |
collection | 用于构建 bevfusion 模型融合层的Configurable parameters(可配置参数)。 | FALSE | ||||
bbox_head |
collection | 用于构建 bevfusion 模型边界框头的Configurable parameters(可配置参数)。 | FALSE |
图像骨干网络配置
骨干网络配置 (img_backbone
) 定义了骨干网络结构。详细描述包含在下表中。目前,BEVFusion 仅支持 Swin-Transformers 和 ResNet50 图像骨干网络。
字段 |
value_type |
描述 |
default_value |
valid_min |
valid_max |
valid_options |
automl_enabled |
---|---|---|---|---|---|---|---|
type |
string | 用于 3D 融合的图像骨干网络名称 | mmdet.SwinTransformer | FALSE | |||
embed_dims |
int | 输入通道数。 | 96 | FALSE | |||
depths |
list | 每个 Swin Transformer 阶段的深度。 | [2, 2, 6, 2] | FALSE | |||
num_heads |
list | 每个阶段的注意力头数。 | [3, 6, 12, 24] | FALSE | |||
window_size |
int | Swin Transformer 的窗口大小。 | 7 | FALSE | |||
mlp_ratio |
int | mlp 隐藏维度与嵌入维度的比率。 | 4 | FALSE | |||
qkv_bias |
bool | 如果为 True,则向查询、键、值添加可学习的偏差。 | True | FALSE | |||
qk_scale |
string | 如果设置,则覆盖 head_dim ** -0.5 的默认 qk 比例。 | FALSE | ||||
drop_rate |
float | Dropout 率。 | 0.0 | FALSE | |||
attn_drop_rate |
float | 注意力 dropout 率。 | 0.0 | FALSE | |||
drop_path_rate |
float | 随机 dropout 率 | 0.2 | FALSE | |||
patch_norm |
bool | 如果为 True,则在补丁嵌入后添加归一化。 | True | FALSE | |||
out_indices |
list | 从哪个阶段输出。 | [1, 2, 3] | FALSE | |||
with_cp |
bool |
是否使用检查点。使用检查点 |
False |
FALSE | |||
convert_weights |
bool |
该标志指示是否 |
True |
FALSE | |||
init_cfg |
collection | 初始化的配置。 | FALSE |
图像颈部配置
颈部配置 (img_neck
) 定义了图像颈部结构。详细描述包含在下表中。目前,BEVFusion 仅支持 GeneralizedLSSFPN 图像骨干网络。
字段 |
value_type |
描述 |
default_value |
valid_min |
valid_max |
valid_options |
automl_enabled |
---|---|---|---|---|---|---|---|
type |
string | 图像颈部名称 | GeneralizedLSSFPN | FALSE | |||
in_channels |
list | 图像颈部的输入通道数。 | [192, 384, 768] | FALSE | |||
out_channels |
int | 图像颈部的输出通道数。 | 256 | FALSE | |||
start_level |
int | 图像颈部的起始级别。 | 0 | FALSE | |||
num_outs |
int | 图像颈部的输出数。 | 0 | FALSE | |||
norm_cfg |
collection | 图像颈部的归一化配置。 | {‘type’: ‘BN2d’, ‘requires_grad’: True} | FALSE | |||
act_cfg |
collection | 图像颈部的激活配置。 | {‘type’: ‘ReLU’, ‘inplace’: True} | FALSE | |||
upsample_cfg |
collection | 图像颈部的上采样配置。 | {‘mode’: ‘bilinear’, ‘align_corners’: False} | FALSE |
视图变换配置
配置 (view_transform
) 定义了相机输入的视图变换结构。详细描述包含在下表中。目前,BEVFusion 仅支持 DepthLSSTransform 和 LSSTransform 图像骨干网络。
字段 |
value_type |
描述 |
default_value |
valid_min |
valid_max |
valid_options |
automl_enabled |
---|---|---|---|---|---|---|---|
type |
string | 图像视图变换名称。 | DepthLSSTransform | DepthLSSTransform,LSSTransform | FALSE | ||
in_channels |
int | 视图变换的输入通道数。 | 256 | FALSE | |||
out_channels |
int | 视图变换的输出通道数。 | 80 | FALSE | |||
image_size |
list | 视图变换的图像大小。 | [256, 704] | FALSE | |||
feature_size |
list | 视图变换的特征大小。 | [32, 88] | FALSE | |||
xbound |
list | x 轴的网格范围。 | [-54.0, 54.0, 0.3] | FALSE | |||
ybound |
list | y 轴的网格范围。 | [-54.0, 54.0, 0.3] | FALSE | |||
zbound |
list | z 轴的网格范围。 | [-10.0, 10.0, 20.0] | FALSE | |||
dbound |
list | 深度的网格范围。 | [1.0, 60.0, 0.5] | FALSE | |||
downsample |
int | 下采样的比率。 | 2 | FALSE |
激光雷达骨干网络配置
骨干网络配置 (lidar_backbone
) 定义了图像骨干网络结构。详细描述包含在下表中。目前,BEVFusion 目前仅支持 SECOND 激光雷达骨干网络。
字段 |
value_type |
描述 |
default_value |
valid_min |
valid_max |
valid_options |
automl_enabled |
---|---|---|---|---|---|---|---|
type |
string | 激光雷达骨干网络名称。 | SECOND | FALSE | |||
in_channels |
int | 激光雷达骨干网络的输入通道数。 | 256 | FALSE | |||
out_channels |
list | 激光雷达骨干网络的输出通道数。 | [128, 256] | FALSE | |||
layer_nums |
list | 激光雷达骨干网络每个阶段的层数。 | [5, 5] | FALSE | |||
layer_strides |
list | 激光雷达骨干网络每个阶段的层数。 | [1, 2] | FALSE | |||
norm_cfg |
collection | 激光雷达骨干网络的归一化配置。 | {‘type’: ‘BN’, ‘eps’: 0.001, ‘momentum’: 0.01} | FALSE | |||
conv_cfg |
collection | 激光雷达骨干网络的卷积层配置。 | {‘type’: ‘Conv2d’, ‘bias’: False} | FALSE |
激光雷达编码器配置
编码器配置 (pts_middle_encoder
) 定义了激光雷达编码器结构。详细描述包含在下表中。目前,BEVFusion 目前仅支持 BEVFusionSparseEncoder 结构。
字段 |
value_type |
描述 |
default_value |
valid_min |
valid_max |
valid_options |
automl_enabled |
---|---|---|---|---|---|---|---|
type |
string | 激光雷达编码器名称。 | BEVFusionSparseEncoder | FALSE | |||
in_channels |
int | 激光雷达编码器的输入通道数。 | 4 | FALSE | |||
sparse_shape |
list | 输入张量的稀疏形状。 | [1440, 1440, 41] | FALSE | |||
order |
list | conv 模块的顺序。 | [‘conv’, ‘norm’, ‘act’] | FALSE | |||
norm_cfg |
collection | 激光雷达编码器的归一化配置。 | {‘type’: ‘BN1d’, ‘eps’: 0.001, ‘momentum’: 0.01} | FALSE | |||
encoder_channels |
|||||||
encoder_paddings |
|||||||
block_type |
string | 要使用的块的类型。 | basicblock | FALSE |
激光雷达颈部配置
配置 (pts_neck
) 定义了激光雷达颈部结构。详细描述包含在下表中。目前,BEVFusion 目前仅支持 SECONDFPN 结构。
字段 |
value_type |
描述 |
default_value |
valid_min |
valid_max |
valid_options |
automl_enabled |
---|---|---|---|---|---|---|---|
type |
string | 激光雷达颈部名称。 | SECONDFPN | FALSE | |||
in_channels |
list | 激光雷达颈部的输入通道数。 | [128, 256] | FALSE | |||
out_channels |
list | 激光雷达颈部的输出通道数。 | [256, 256] | FALSE | |||
upsample_strides |
list | 用于上采样激光雷达颈部特征图的步幅。 | [1, 2] | FALSE | |||
norm_cfg |
collection | 激光雷达颈部的归一化配置。 | {‘type’: ‘BN’, ‘eps’: 0.001, ‘momentum’: 0.01} | FALSE | |||
upsample_cfg |
collection | 激光雷达颈部的上采样层配置。 | {‘type’: ‘deconv’, ‘bias’: False} | FALSE | |||
use_conv_for_no_stride |
bool | 当步幅为 1 时是否使用 conv。 | True | FALSE |
融合层配置
配置 (fusion_layer
) 定义了融合层结构。详细描述包含在下表中。目前,BEVFusion 目前仅支持 ConvFuser 结构。
字段 |
value_type |
描述 |
default_value |
valid_min |
valid_max |
valid_options |
automl_enabled |
---|---|---|---|---|---|---|---|
type |
string | 融合层名称。 | ConvFuser | FALSE | |||
in_channels |
list | 融合层的输入通道数。 | [80, 256] | FALSE | |||
out_channels |
int | 融合层的输出通道数。 | 256 | FALSE |
BBoxHead 配置
配置 (bbox_head
) 定义了 bbox 预测头结构。详细描述包含在下表中。目前,BEVFusion 目前仅支持 BEVFusionHead 结构。
字段 |
value_type |
描述 |
default_value |
valid_min |
valid_max |
valid_options |
automl_enabled |
---|---|---|---|---|---|---|---|
type |
string | 预测头名称。 | BEVFusionHead | BEVFusionHead | FALSE | ||
num_proposals |
int | 提议数。 | 200 | FALSE | |||
auxiliary |
bool | 是否启用辅助训练。 | True | FALSE | |||
in_channels |
int | 输入特征图中的通道数。 | 512 | FALSE | |||
hidden_channel |
int | 隐藏通道数。 | 128 | FALSE | |||
num_classes |
int | 类别数。 | 1 | FALSE | |||
nms_kernel_size |
int | NMS 内核大小。 | 3 | FALSE | |||
bn_momentum |
float | 批量归一化动量。 | 0.1 | FALSE | |||
num_decoder_layers |
int | 解码器层数。 | 1 | FALSE | |||
out_size_factor |
int | 输出大小因子。 | 8 | FALSE | |||
bbox_coder |
collection | 边界框编码器的配置。 | FALSE | ||||
decoder_layer |
collection | 解码器层的配置。 | FALSE | ||||
code_weights |
list | 框编码器的权重。 | [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] | FALSE | |||
nms_type |
string | NMS 的类型。 | FALSE | ||||
assigner |
collection | 分配器的配置。 | {‘type’: ‘HungarianAssigner3D’, ‘iou_calculator’: {‘type’: ‘BboxOverlaps3D’, ‘coordinate’: ‘lidar’}, ‘cls_cost’: {‘type’: ‘mmdet.FocalLossCost’, ‘gamma’: 2.0, ‘alpha’: 0.25, ‘weight’: 0.15}, ‘reg_cost’: {‘type’: ‘BBoxBEVL1Cost’, ‘weight’: 0.25}, ‘iou_cost’: {‘type’: ‘IoU3DCost’, ‘weight’: 0.25}} | FALSE | |||
common_heads |
collection | 公共头的配置。 | {‘center’: [2, 2], ‘height’: [1, 2], ‘dim’: [3, 2], ‘rot’: [6, 2]} | FALSE | |||
loss_cls |
collection | 分类损失的配置。 | {‘type’: ‘mmdet.FocalLoss’, ‘use_sigmoid’: True, ‘gamma’: 2.0, ‘alpha’: 0.25, ‘reduction’: ‘mean’, ‘loss_weight’: 1.0} | FALSE | |||
loss_heatmap |
collection | 热图损失的配置。 | {‘type’: ‘mmdet.GaussianFocalLoss’, ‘reduction’: ‘mean’, ‘loss_weight’: 1.0} | FALSE | |||
loss_bbox |
collection | 边界框损失的配置。 | {‘type’: ‘mmdet.L1Loss’, ‘reduction’: ‘mean’, ‘loss_weight’: 0.25} | FALSE |
训练配置
train
配置定义了训练过程的超参数。
train:
precision: 'fp16'
num_gpus: 1
checkpoint_interval: 10
validation_interval: 10
num_epochs: 50
optim:
type: "AdamW"
lr: 0.0001
weight_decay: 0.05
字段 |
value_type |
描述 |
default_value |
valid_min |
valid_max |
valid_options |
automl_enabled |
---|---|---|---|---|---|---|---|
num_gpus |
int | 运行训练作业的 GPU 数量。 | 1 | 1 | FALSE | ||
gpu_ids |
list | 用于运行训练的 GPU ID 列表。此列表的长度必须等于 train.num_gpus 中的 gpu 数量。 | [0] | FALSE | |||
num_nodes |
int | 运行训练的节点数。如果 > 1,则启用多节点。 | 1 | FALSE | |||
seed |
int | PyTorch 中初始化器的种子。如果 < 0,则禁用固定种子。 | 1234 | -1 | inf | FALSE | |
cudnn |
collection | FALSE | |||||
num_epochs |
int | 运行训练的 epoch 数。 | 10 | 1 | inf | TRUE | |
checkpoint_interval |
int | 将保存检查点的间隔(以 epoch 为单位)。有助于恢复训练。 | 1 | 1 | FALSE | ||
validation_interval |
int | 将在验证数据集上触发评估的间隔(以 epoch 为单位)。 | 1 | 1 | FALSE | ||
resume_training_checkpoint_path |
string | 要从中恢复训练的检查点路径。 | FALSE | ||||
results_dir |
string | 存储从任务生成的所有资产的路径。 | FALSE | ||||
by_epoch |
bool | 是否使用 EpochBasedRunner。 | True | FALSE | |||
logging_interval |
int | 每 k 次迭代的日志记录间隔。 | 1 | FALSE | |||
resume |
bool | 是否恢复训练。 | False | FALSE | |||
pretrained_checkpoint |
string | 用于从其初始化当前训练的预训练 BEVFusion 模型的路径。 | FALSE | ||||
optimizer |
collection | 用于配置优化器的超参数 | FALSE | ||||
lr_scheduler |
list | 用于配置学习率调度器的超参数。 | [{‘type’: ‘LinearLR’, ‘start_factor’: 0.33333333, ‘by_epoch’: False, ‘begin’: 0, ‘end’: 500}, {‘type’: ‘CosineAnnealingLR’, ‘T_max’: 10, ‘eta_min_ratio’: 0.0001, ‘begin’: 0, ‘end’: 10, ‘by_epoch’: True}, {‘type’: ‘CosineAnnealingMomentum’, ‘eta_min’: 0.8947, ‘begin’: 0, ‘end’: 2.4, ‘by_epoch’: True}, {‘type’: ‘CosineAnnealingMomentum’, ‘eta_min’: 1, ‘begin’: 2.4, ‘end’: 10, ‘by_epoch’: True}] | FALSE |
优化器配置
optim
参数定义了训练中优化器的配置,包括学习率、学习调度器和权重衰减。
字段 |
value_type |
描述 |
default_value |
valid_min |
valid_max |
valid_options |
automl_enabled |
---|---|---|---|---|---|---|---|
type |
string | 用于训练网络的优化器类型。 | AdamW | FALSE | |||
lr |
float | 训练模型的初始学习率。 | 0.0002 | FALSE | |||
weight_decay |
float | 权重衰减系数。 | 0.01 | FALSE | |||
betas |
list | 自适应学习率的移动平均参数。 | [0.9, 0.999] | FALSE | |||
clip_grad |
collection | 裁剪参数可迭代对象的梯度范数。 | {‘max_norm’: 35, ‘norm_type’: 2} | FALSE | |||
wrapper_type |
string | MMengine 中的优化器包装器。AmpOptimWrapper 启用混合精度训练 | OptimWrapper | FALSE |
评估配置
evaluate
参数定义了评估过程的超参数。
evaluate:
checkpoint: /path/to/model.pth
num_gpus: 1
字段 |
value_type |
描述 |
default_value |
valid_min |
valid_max |
valid_options |
automl_enabled |
---|---|---|---|---|---|---|---|
num_gpus |
int | 1 | FALSE | ||||
gpu_ids |
list | [0] | FALSE | ||||
num_nodes |
int | 1 | FALSE | ||||
checkpoint |
string | ??? | FALSE | ||||
results_dir |
string | FALSE |
推理配置
inference
参数定义了推理过程的超参数。
inference:
checkpoint: /path/to/model.pth
num_gpus: 1
字段 |
value_type |
描述 |
default_value |
valid_min |
valid_max |
valid_options |
automl_enabled |
---|---|---|---|---|---|---|---|
num_gpus |
int | 1 | FALSE | ||||
gpu_ids |
list | [0] | FALSE | ||||
num_nodes |
int | 1 | FALSE | ||||
checkpoint |
string | ??? | FALSE | ||||
results_dir |
string | FALSE | |||||
conf_threshold |
float | 置信度阈值 | 0.5 | FALSE | |||
show |
bool | 是否在屏幕上显示 3D 可视化 | False | FALSE |
要训练 BEVFusion 模型,请使用此命令
tao model bevfusion train [-h] -e <experiment_spec>
[-r <results_dir>]
必需参数
-e, --experiment_spec
:用于设置训练实验的实验规范文件
可选参数
-r, --results_dir
:应写入实验输出的文件夹路径。如果未指定此参数,则使用规范文件中的results_dir
。--gpus
:用于运行训练的 GPU 数量--num_nodes
:用于运行训练的节点数。如果此值大于 1,则启用分布式多节点训练。-h, --help
:显示此帮助消息并退出。
示例用法
以下是 train
命令的示例
tao bevfusion model train -e /path/to/spec.yaml
要使用 BEVFusion 模型运行评估,请使用此命令
tao model bevfusion evaluate [-h] -e <experiment_spec>
[-r <results_dir>]
必需参数
-e, --experiment_spec
:用于设置评估实验的实验规范文件
可选参数
-r, --results_dir
:存储评估结果的目录
示例用法
以下是使用 evaluate
命令的示例
tao model bevfusion evaluate -e /path/to/spec.yaml -r /path/to/results/ evaluate.checkpoint=/path/to/model.pth
使用以下命令在 BEVFusion 上使用 .pth
运行推理
tao model bevfusion inference [-h] -e <experiment spec file>
[-r <results_dir>]
必需参数
-e, --experiment_spec
:用于设置推理实验的实验规范文件
可选参数
-r, --results_dir
:存储推理结果的目录
示例用法
以下是使用 inference
命令的示例
tao model bevfusion inference -e /path/to/spec.yaml -r /path/to/results/ inference.checkpoint=/path/to/model.pth