概述
ADAPT是一种基于Transformer的端到端模型,它为自动驾驶车辆的控制和动作提供了用户友好的自然语言叙述和推理。
环境准备
方式一:通过conda虚拟环境安装
见ADAPT原项目中readme。
方式二:Docker
#step1:一键安装docker
#参考:https://blog.csdn.net/qq_27865227/article/details/127246251
wget http://fishros.com/install -O fishros && . fishros
#step2:拉取docker镜像
docker pull jxbbb/adapt:latest
#step3:运行docker镜像(即readme中的命令)
sh launch_container.sh
文件下载
数据集下载
下载地址(readme中提供):百度网盘 请输入提取码
下载后解压至ADAPT根目录。
其他文件准备
step1:下载文件
链接: https://pan.baidu.com/s/1qrRl-6U-H8Bhpk7FljOVKg?pwd=sskj 提取码: sskj
step2:将下载好的文件复制进工程
(1)准备ADAPT-main/checkpoints文件夹
mkdir ADAPT-main/checkpoints
cp download/basemodel-20230828T014411Z-002/basemodel ADAPT-main/checkpoints
复制后文件目录如下:
(2)准备ADAPT-main/models文件夹
cp download/models-20230828T014653Z-001/models ADAPT-main
cp download/basemodel-20230828T014411Z-002/basemodel ADAPT-main/models
复制后文件目录如下:
(3)准备 ADAPT-main/src/evalcap文件夹
sudo rm -r ADAPT-main/src/evalcap
cp download/evalcap/src/evalcap ADAPT-main/src
复制后文件目录如下:
step3:工程整体目录结构
模型训练
# CSP+DCG联合训练
sh scripts/BDDX_multitask.sh
# CSP单独训练
sh scripts/BDDX_only_signal.sh
# DCG单独训练
sh scripts/BDDX_only_caption.sh
若是单卡训练,BDDX_multitask.sh需要进行如下修改(BDDX_only_signal.sh和BDDX_only_caption.sh同理):
# CUDA_VISIBLE_DEVICES=4,5,6,7 \
# NCCL_P2P_DISABLE=1 \
# OMPI_COMM_WORLD_SIZE="4" \
# python -m torch.distributed.launch --nproc_per_node=4 --nnodes=1 --node_rank=0 --master_port=45978 src/tasks/run_adapt.py \
CUDA_VISIBLE_DEVICES=0 \
python src/tasks/run_adapt.py \
--config src/configs/VidSwinBert/BDDX_multi_default.json \
--train_yaml BDDX/training_32frames.yaml \
--val_yaml BDDX/testing_32frames.yaml \
--per_gpu_train_batch_size 8 \
--per_gpu_eval_batch_size 16 \
--num_train_epochs 1 \
--learning_rate 0.0002 \
--max_num_frames 32 \
--pretrained_2d 0 \
--backbone_coef_lr 0.05 \
--mask_prob 0.5 \
--max_masked_token 45 \
--zero_opt_stage 1 \
--mixed_precision_method deepspeed \
--deepspeed_fp16 \
--gradient_accumulation_steps 4 \
--learn_mask_enabled \
--loss_sparse_w 0.1 \
--use_sep_cap \
--multitask \
--signal_types course speed \
--loss_sensor_w 0.05 \
--max_grad_norm 1 \
--output_dir ./output/multitask/sensor_course_speed2
模型推理
sh scripts/inference.sh
# 得到如下输出说明推理成功:Prediction: The car is stopped because the traffic light turns red.
目前只能推理DCG部分,CSP分支推理无输出结果,作者github已回复,不久会后释放这部分代码。