mmdet3d+waymo test/evaluation流程

evaluation是最直观反映模型性能和问题的步骤,也是检验运行环境是否有错的重要一换,下面依托detr3d与custom waymo dataset类,介绍一下mmdet3d+waymo在eval的流程。
调用eval有两种流程,一种是training过程中eval,另一种是调用test.py,test.py支持validation set和test set的处理。无论哪种,其核心都是调用dataset类下的evaluate方法。下面主要讲调用test.py的流程。

evaluation

调用bash

bash tools/dist_test.sh \
projects/configs/detr3d/detr3d_res101_gridmask_waymo.py \
work_dirs/detr3d_res101_gridmask_waymo/epoch_10.pth \
8 --eval=waymo

其中 --eval代表evaluate的时候用哪种style的metric,比如waymo,在mmdet3d里支持kitti和waymo两种style。

tools/dist_test.sh

CONFIG=$1
CHECKPOINT=$2
GPUS=$3
PORT=${PORT:-29500}

PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
python -m torch.distributed.launch --nproc_per_node=$GPUS --master_port=$PORT \
    $(dirname "$0")/test.py $CONFIG $CHECKPOINT --launcher pytorch ${@:4}

就是用torch的distributed.launch方法来启动我们的test.py。这里有个巨坑是之后可能会调用tensorflow,环境配置不好的话就会出现cuda error,解决方法后面说。

tools/test.py

和tools/train.py类似。首先处理命令行参数,读config文件,初始化dataset,dataloader,载入model。
值得注意的是dataset = build_dataset(cfg.data.test),也就是config文件的‘data’里,‘test’的部分;data里还有’train’和’eval’,这个都是在training流程里使用的。
初始化后,就是把image放进model里,然后进行evaluate了,核心代码如下:

outputs = single_gpu_test(model, data_loader, args.show, args.show_dir)
#list of dict where dict['pts_bbox']=dict(bboxes scores labels)
if args.format_only:
    dataset.format_results(outputs, **kwargs)
if args.eval:
	print(dataset.evaluate(outputs, **eval_kwargs))

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值