From 07edde895ed2872037a3000ea1c4b3749a82f450 Mon Sep 17 00:00:00 2001 From: zhangyubo0722 Date: Wed, 29 Mar 2023 06:41:50 +0000 Subject: [PATCH 01/10] add_benchmark --- .../bevformer_tiny_r50_fpn_fp16_nuscenes.yml | 8 +++---- .../caddn_deeplabv3p_resnet101_os8_kitti.yml | 10 ++++++++- paddle3d/models/detection/caddn/caddn.py | 21 +++++++++++++++---- .../attentions/spatial_cross_attention.py | 4 ++++ .../attentions/temporal_self_attention.py | 1 + paddle3d/models/transformers/utils.py | 1 + 6 files changed, 36 insertions(+), 9 deletions(-) diff --git a/configs/bevformer/bevformer_tiny_r50_fpn_fp16_nuscenes.yml b/configs/bevformer/bevformer_tiny_r50_fpn_fp16_nuscenes.yml index 5d0fa7d9..26fa6448 100644 --- a/configs/bevformer/bevformer_tiny_r50_fpn_fp16_nuscenes.yml +++ b/configs/bevformer/bevformer_tiny_r50_fpn_fp16_nuscenes.yml @@ -1,16 +1,16 @@ -batch_size: 2 +batch_size: 1 epochs: 24 amp_cfg: - use_amp: True + use_amp: False enable: False - level: O1 + level: O2 scaler: init_loss_scaling: 512.0 train_dataset: type: NuscenesMVDataset dataset_root: ./datasets/nuscenes - ann_file: ./datasets/nuscenes/bevformer_nuscenes_annotation_train.pkl + ann_file: ./datasets/nuscenes/bevformer_nuscenes_annotation_val.pkl queue_length: 3 use_valid_flag: True mode: train diff --git a/configs/caddn/caddn_deeplabv3p_resnet101_os8_kitti.yml b/configs/caddn/caddn_deeplabv3p_resnet101_os8_kitti.yml index a5412de9..0b2f087a 100644 --- a/configs/caddn/caddn_deeplabv3p_resnet101_os8_kitti.yml +++ b/configs/caddn/caddn_deeplabv3p_resnet101_os8_kitti.yml @@ -1,7 +1,15 @@ -batch_size: 4 +batch_size: 1 iters: 74240 # 928*80 sync_bn: true +amp_cfg: + use_amp: False + # only enable backbone and fpn + enable: False + level: O2 + scaler: + init_loss_scaling: 32.0 + train_dataset: type: KittiDepthDataset dataset_root: data/kitti diff --git a/paddle3d/models/detection/caddn/caddn.py b/paddle3d/models/detection/caddn/caddn.py index 349855d9..584dce9e 100644 --- a/paddle3d/models/detection/caddn/caddn.py +++ b/paddle3d/models/detection/caddn/caddn.py @@ -25,6 +25,7 @@ from paddle3d.models.layers import ConvBNReLU from paddle3d.utils import checkpoint from paddle3d.utils.logger import logger +from paddle3d.utils import dtype2float32 from .bev import BEV from .f2v import FrustumToVoxel @@ -71,7 +72,12 @@ def train_forward(self, data): data["batch_size"] = b # ffe - image_features = self.backbone_3d(images) + if hasattr(self, 'amp_cfg_'): + with paddle.amp.auto_cast(**self.amp_cfg_): + image_features = self.backbone_3d(images) + image_features = dtype2float32(image_features) + else: + image_features = self.backbone_3d(images) depth_logits = self.class_head(image_features, data["image_shape"]) data = self.ffe(image_features[0], depth_logits, data) @@ -91,9 +97,16 @@ def train_forward(self, data): data["spatial_features"] = bev_features # backbone_2d - data = self.backbone_2d(data) - predictions = self.dense_head(data) - + if hasattr(self, 'amp_cfg_'): + with paddle.amp.auto_cast(**self.amp_cfg_): +# print(self.backbone_2d) + data = self.backbone_2d(data) + predictions = self.dense_head(data) + predictions = dtype2float32(predictions) + else: + data = self.backbone_2d(data) +# import pdb; pdb.set_trace() + predictions = self.dense_head(data) loss = self.get_loss(predictions) return loss diff --git a/paddle3d/models/transformers/attentions/spatial_cross_attention.py b/paddle3d/models/transformers/attentions/spatial_cross_attention.py index c41ca512..001f4879 100644 --- a/paddle3d/models/transformers/attentions/spatial_cross_attention.py +++ b/paddle3d/models/transformers/attentions/spatial_cross_attention.py @@ -418,6 +418,9 @@ def forward(self, # sampling_locations.stop_gradient = True # attention_weights.stop_gradient = True + value = value.cast(paddle.float32) + sampling_locations = sampling_locations.cast(paddle.float32) + attention_weights = attention_weights.cast(paddle.float32) output = ms_deform_attn.ms_deform_attn( value, sampling_locations, attention_weights, spatial_shapes, level_start_index, self.im2col_step) @@ -627,6 +630,7 @@ def forward(self, value = value.cast(paddle.float32) sampling_locations = sampling_locations.cast(paddle.float32) + attention_weights = attention_weights.cast(paddle.float32) output = ms_deform_attn.ms_deform_attn( value, sampling_locations, attention_weights, spatial_shapes, level_start_index, self.im2col_step) diff --git a/paddle3d/models/transformers/attentions/temporal_self_attention.py b/paddle3d/models/transformers/attentions/temporal_self_attention.py index ac701121..f29d22f1 100644 --- a/paddle3d/models/transformers/attentions/temporal_self_attention.py +++ b/paddle3d/models/transformers/attentions/temporal_self_attention.py @@ -255,6 +255,7 @@ def forward(self, # attention_weights.stop_gradient = True value = value.cast(paddle.float32) sampling_locations = sampling_locations.cast(paddle.float32) + attention_weights = attention_weights.cast(paddle.float32) output = ms_deform_attn.ms_deform_attn( value, sampling_locations, attention_weights, spatial_shapes, level_start_index, self.im2col_step) diff --git a/paddle3d/models/transformers/utils.py b/paddle3d/models/transformers/utils.py index 4aa93fd4..7758c955 100644 --- a/paddle3d/models/transformers/utils.py +++ b/paddle3d/models/transformers/utils.py @@ -232,6 +232,7 @@ def nan_to_num(x, nan=0.0, posinf=None, neginf=None, name=None): posinf_value = paddle.full_like(x, float("+inf")) neginf_value = paddle.full_like(x, float("-inf")) nan = paddle.full_like(x, nan) + x = x.astype("float32") assert x.dtype in [paddle.float32, paddle.float64] is_float32 = x.dtype == paddle.float32 if posinf is None: From 2c1f09b86eadada0835098568a412c6b0bad5fc1 Mon Sep 17 00:00:00 2001 From: zhangyubo0722 Date: Wed, 29 Mar 2023 07:02:16 +0000 Subject: [PATCH 02/10] modify --- paddle3d/models/detection/caddn/caddn.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/paddle3d/models/detection/caddn/caddn.py b/paddle3d/models/detection/caddn/caddn.py index 584dce9e..68ab1400 100644 --- a/paddle3d/models/detection/caddn/caddn.py +++ b/paddle3d/models/detection/caddn/caddn.py @@ -75,11 +75,12 @@ def train_forward(self, data): if hasattr(self, 'amp_cfg_'): with paddle.amp.auto_cast(**self.amp_cfg_): image_features = self.backbone_3d(images) - image_features = dtype2float32(image_features) + depth_logits = self.class_head(image_features, data["image_shape"]) + depth_logits = dtype2float32(depth_logits) else: + depth_logits = self.class_head(image_features, data["image_shape"]) image_features = self.backbone_3d(images) - depth_logits = self.class_head(image_features, data["image_shape"]) data = self.ffe(image_features[0], depth_logits, data) # frustum_to_voxel @@ -99,13 +100,11 @@ def train_forward(self, data): # backbone_2d if hasattr(self, 'amp_cfg_'): with paddle.amp.auto_cast(**self.amp_cfg_): -# print(self.backbone_2d) data = self.backbone_2d(data) predictions = self.dense_head(data) predictions = dtype2float32(predictions) else: data = self.backbone_2d(data) -# import pdb; pdb.set_trace() predictions = self.dense_head(data) loss = self.get_loss(predictions) return loss From d0a99c7f225ddeab5f657d37a1a1e643bcd5c9b6 Mon Sep 17 00:00:00 2001 From: zhangyubo0722 Date: Wed, 29 Mar 2023 07:08:50 +0000 Subject: [PATCH 03/10] add_tipc --- .../bevformer_tiny_r50_fpn_fp16_nuscenes.yml | 6 +- .../caddn_deeplabv3p_resnet101_os8_kitti.yml | 4 +- .../configs/bevformer/train_infer_python.txt | 57 +++++++++++++++++++ .../configs/caddn/train_infer_python.txt | 57 +++++++++++++++++++ 4 files changed, 119 insertions(+), 5 deletions(-) create mode 100644 test_tipc/configs/bevformer/train_infer_python.txt create mode 100644 test_tipc/configs/caddn/train_infer_python.txt diff --git a/configs/bevformer/bevformer_tiny_r50_fpn_fp16_nuscenes.yml b/configs/bevformer/bevformer_tiny_r50_fpn_fp16_nuscenes.yml index 26fa6448..bc421dea 100644 --- a/configs/bevformer/bevformer_tiny_r50_fpn_fp16_nuscenes.yml +++ b/configs/bevformer/bevformer_tiny_r50_fpn_fp16_nuscenes.yml @@ -1,16 +1,16 @@ -batch_size: 1 +batch_size: 2 epochs: 24 amp_cfg: use_amp: False enable: False - level: O2 + level: O1 scaler: init_loss_scaling: 512.0 train_dataset: type: NuscenesMVDataset dataset_root: ./datasets/nuscenes - ann_file: ./datasets/nuscenes/bevformer_nuscenes_annotation_val.pkl + ann_file: ./datasets/nuscenes/bevformer_nuscenes_annotation_train.pkl queue_length: 3 use_valid_flag: True mode: train diff --git a/configs/caddn/caddn_deeplabv3p_resnet101_os8_kitti.yml b/configs/caddn/caddn_deeplabv3p_resnet101_os8_kitti.yml index 0b2f087a..b45f9bce 100644 --- a/configs/caddn/caddn_deeplabv3p_resnet101_os8_kitti.yml +++ b/configs/caddn/caddn_deeplabv3p_resnet101_os8_kitti.yml @@ -1,4 +1,4 @@ -batch_size: 1 +batch_size: 4 iters: 74240 # 928*80 sync_bn: true @@ -6,7 +6,7 @@ amp_cfg: use_amp: False # only enable backbone and fpn enable: False - level: O2 + level: O1 scaler: init_loss_scaling: 32.0 diff --git a/test_tipc/configs/bevformer/train_infer_python.txt b/test_tipc/configs/bevformer/train_infer_python.txt new file mode 100644 index 00000000..68442a71 --- /dev/null +++ b/test_tipc/configs/bevformer/train_infer_python.txt @@ -0,0 +1,57 @@ +===========================train_params=========================== +model_name:bevformer +python:python3.7 +gpu_list:0 +## +auto_cast:null +--iters:lite_train_lite_infer=100 +--save_dir:./output/ +--batch_size:lite_train_lite_infer=4 +pretrained_model:null +train_model_name:iter_100/model.pdparams +train_infer_img_dir:./datasets/nuscenes +null:null +## +trainer:norm_train +norm_train:tools/train.py --config configs/bevformer/bevformer_tiny_r50_fpn_fp16_nuscenes.yml --num_workers 4 --log_interval 1 --seed 123 --save_interval 100 +pact_train:null +fpgm_train:null +distill_train:null +null:null +null:null +## +===========================eval_params=========================== +eval:null +null:null +## +===========================infer_params=========================== +--output_dir:./output/ +load:null +norm_export:null +quant_export:null +fpgm_export:null +distill_export:null +export1:null +export2:null +inference_dir:null +infer_model:null +infer_export:null +infer_quant:False +inference:null +null:null +null:null +null:null +null:null +null:null +--model_path: +null:null +null:null +--benchmark:True +null:null +===========================to_static_train_benchmark_params=========================== +to_static_train:--to_static True +===========================train_benchmark_params========================== +batch_size:2 +fp_items:fp32|fp16 +iters:100 +--profiler_options:batch_range=[10,20];state=GPU;tracer_option=Default;profile_path=model.profile diff --git a/test_tipc/configs/caddn/train_infer_python.txt b/test_tipc/configs/caddn/train_infer_python.txt new file mode 100644 index 00000000..c556c7d7 --- /dev/null +++ b/test_tipc/configs/caddn/train_infer_python.txt @@ -0,0 +1,57 @@ +===========================train_params=========================== +model_name:caddn +python:python3.7 +gpu_list:0 +## +auto_cast:null +--iters:lite_train_lite_infer=100 +--save_dir:./output/ +--batch_size:lite_train_lite_infer=4 +pretrained_model:null +train_model_name:iter_100/model.pdparams +train_infer_img_dir:./datasets/nuscenes +null:null +## +trainer:norm_train +norm_train:tools/train.py --config configs/caddn/caddn_deeplabv3p_resnet101_os8_kitti.yml --num_workers 4 --log_interval 1 --seed 123 --save_interval 100 +pact_train:null +fpgm_train:null +distill_train:null +null:null +null:null +## +===========================eval_params=========================== +eval:null +null:null +## +===========================infer_params=========================== +--output_dir:./output/ +load:null +norm_export:null +quant_export:null +fpgm_export:null +distill_export:null +export1:null +export2:null +inference_dir:null +infer_model:null +infer_export:null +infer_quant:False +inference:null +null:null +null:null +null:null +null:null +null:null +--model_path: +null:null +null:null +--benchmark:True +null:null +===========================to_static_train_benchmark_params=========================== +to_static_train:--to_static True +===========================train_benchmark_params========================== +batch_size:4 +fp_items:fp32|fp16 +iters:100 +--profiler_options:batch_range=[10,20];state=GPU;tracer_option=Default;profile_path=model.profile From 01df194d9c5952d79ceaad969200f5dc80e5b23e Mon Sep 17 00:00:00 2001 From: zhangyubo0722 Date: Wed, 29 Mar 2023 07:10:13 +0000 Subject: [PATCH 04/10] modify config --- configs/bevformer/bevformer_tiny_r50_fpn_fp16_nuscenes.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/bevformer/bevformer_tiny_r50_fpn_fp16_nuscenes.yml b/configs/bevformer/bevformer_tiny_r50_fpn_fp16_nuscenes.yml index bc421dea..5d0fa7d9 100644 --- a/configs/bevformer/bevformer_tiny_r50_fpn_fp16_nuscenes.yml +++ b/configs/bevformer/bevformer_tiny_r50_fpn_fp16_nuscenes.yml @@ -1,7 +1,7 @@ batch_size: 2 epochs: 24 amp_cfg: - use_amp: False + use_amp: True enable: False level: O1 scaler: From bcf0d010a2c1d74724504dc3321ff8812a6f2dca Mon Sep 17 00:00:00 2001 From: zhangyubo0722 Date: Wed, 29 Mar 2023 07:58:02 +0000 Subject: [PATCH 05/10] modify caddn --- paddle3d/models/detection/caddn/caddn.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/paddle3d/models/detection/caddn/caddn.py b/paddle3d/models/detection/caddn/caddn.py index 68ab1400..043640d3 100644 --- a/paddle3d/models/detection/caddn/caddn.py +++ b/paddle3d/models/detection/caddn/caddn.py @@ -76,10 +76,11 @@ def train_forward(self, data): with paddle.amp.auto_cast(**self.amp_cfg_): image_features = self.backbone_3d(images) depth_logits = self.class_head(image_features, data["image_shape"]) + image_features = dtype2float32(image_features depth_logits = dtype2float32(depth_logits) else: - depth_logits = self.class_head(image_features, data["image_shape"]) image_features = self.backbone_3d(images) + depth_logits = self.class_head(image_features, data["image_shape"]) data = self.ffe(image_features[0], depth_logits, data) From d22933fb05c40844ea48bab021ce8dc05fd317e6 Mon Sep 17 00:00:00 2001 From: zhangyubo0722 Date: Wed, 29 Mar 2023 10:52:47 +0000 Subject: [PATCH 06/10] modify --- paddle3d/models/detection/caddn/caddn.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle3d/models/detection/caddn/caddn.py b/paddle3d/models/detection/caddn/caddn.py index 043640d3..e5d9e641 100644 --- a/paddle3d/models/detection/caddn/caddn.py +++ b/paddle3d/models/detection/caddn/caddn.py @@ -76,7 +76,7 @@ def train_forward(self, data): with paddle.amp.auto_cast(**self.amp_cfg_): image_features = self.backbone_3d(images) depth_logits = self.class_head(image_features, data["image_shape"]) - image_features = dtype2float32(image_features + image_features = dtype2float32(image_features) depth_logits = dtype2float32(depth_logits) else: image_features = self.backbone_3d(images) From 38c1e3cde35ee2eb84b6b2311ebcc2940f6d9d10 Mon Sep 17 00:00:00 2001 From: zhangyubo0722 Date: Thu, 30 Mar 2023 09:12:18 +0000 Subject: [PATCH 07/10] modify tipc --- test_tipc/configs/bevformer/train_infer_python.txt | 1 + test_tipc/configs/caddn/train_infer_python.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/test_tipc/configs/bevformer/train_infer_python.txt b/test_tipc/configs/bevformer/train_infer_python.txt index 68442a71..c51ce30c 100644 --- a/test_tipc/configs/bevformer/train_infer_python.txt +++ b/test_tipc/configs/bevformer/train_infer_python.txt @@ -55,3 +55,4 @@ batch_size:2 fp_items:fp32|fp16 iters:100 --profiler_options:batch_range=[10,20];state=GPU;tracer_option=Default;profile_path=model.profile +flags:FLAGS_cudnn_exhaustive_search=0 diff --git a/test_tipc/configs/caddn/train_infer_python.txt b/test_tipc/configs/caddn/train_infer_python.txt index c556c7d7..6cf583bb 100644 --- a/test_tipc/configs/caddn/train_infer_python.txt +++ b/test_tipc/configs/caddn/train_infer_python.txt @@ -55,3 +55,4 @@ batch_size:4 fp_items:fp32|fp16 iters:100 --profiler_options:batch_range=[10,20];state=GPU;tracer_option=Default;profile_path=model.profile +flags:FLAGS_cudnn_exhaustive_search=0 From 0483f82c6e94b35586b3782f7312467c12253a76 Mon Sep 17 00:00:00 2001 From: zhangyubo0722 Date: Thu, 30 Mar 2023 09:13:45 +0000 Subject: [PATCH 08/10] modify tipc --- test_tipc/configs/bevformer/train_infer_python.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_tipc/configs/bevformer/train_infer_python.txt b/test_tipc/configs/bevformer/train_infer_python.txt index c51ce30c..fcc8bc8e 100644 --- a/test_tipc/configs/bevformer/train_infer_python.txt +++ b/test_tipc/configs/bevformer/train_infer_python.txt @@ -13,7 +13,7 @@ train_infer_img_dir:./datasets/nuscenes null:null ## trainer:norm_train -norm_train:tools/train.py --config configs/bevformer/bevformer_tiny_r50_fpn_fp16_nuscenes.yml --num_workers 4 --log_interval 1 --seed 123 --save_interval 100 +norm_train:tools/train.py --config configs/bevformer/bevformer_tiny_r50_fpn_fp16_nuscenes.yml --num_workers 20 --log_interval 1 --seed 123 --save_interval 100 pact_train:null fpgm_train:null distill_train:null From 86092b37529cefaaa8231c7e91bdf4e5bf6c8727 Mon Sep 17 00:00:00 2001 From: zhangyubo0722 Date: Fri, 31 Mar 2023 03:24:16 +0000 Subject: [PATCH 09/10] modify test_train_inference_python.sh --- test_tipc/test_train_inference_python.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test_tipc/test_train_inference_python.sh b/test_tipc/test_train_inference_python.sh index a1d39c8e..9b10077b 100644 --- a/test_tipc/test_train_inference_python.sh +++ b/test_tipc/test_train_inference_python.sh @@ -256,11 +256,11 @@ else fi set_save_model=$(func_set_params "${save_model_key}" "${save_log}") if [ ${#gpu} -le 2 ];then # train with cpu or single gpu - cmd="${python} ${run_train} ${set_use_gpu} ${set_save_model} ${set_train_params1} ${set_epoch} ${set_pretrain} ${set_batchsize} ${set_amp_config} ${set_amp_level}" + cmd="${python} ${run_train} ${set_use_gpu} ${set_save_model} ${set_epoch} ${set_pretrain} ${set_batchsize} ${set_amp_config} ${set_amp_level} ${set_train_params1}" elif [ ${#ips} -le 26 ];then # train with multi-gpu - cmd="${python} -m paddle.distributed.launch --gpus=${gpu} ${run_train} ${set_use_gpu} ${set_save_model} ${set_train_params1} ${set_epoch} ${set_pretrain} ${set_batchsize} ${set_amp_config} ${set_amp_level}" + cmd="${python} -m paddle.distributed.launch --gpus=${gpu} ${run_train} ${set_use_gpu} ${set_train_params1} ${set_epoch} ${set_pretrain} ${set_batchsize} ${set_amp_config} ${set_amp_level} ${set_train_params1}" else # train with multi-machine - cmd="${python} -m paddle.distributed.launch --ips=${ips} --gpus=${gpu} ${run_train} ${set_use_gpu} ${set_save_model} ${set_train_params1} ${set_pretrain} ${set_epoch} ${set_batchsize} ${set_amp_config} ${set_amp_level}" + cmd="${python} -m paddle.distributed.launch --ips=${ips} --gpus=${gpu} ${run_train} ${set_use_gpu} ${set_save_model} ${set_pretrain} ${set_epoch} ${set_batchsize} ${set_amp_config} ${set_amp_level} ${set_train_params1}" fi # run train export FLAGS_cudnn_deterministic=True From 170dfc79322c70c3d09bf0b8479bb9f05e3f725c Mon Sep 17 00:00:00 2001 From: zhangyubo0722 Date: Fri, 31 Mar 2023 11:23:56 +0000 Subject: [PATCH 10/10] modify prepare --- test_tipc/prepare.sh | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/test_tipc/prepare.sh b/test_tipc/prepare.sh index 14002417..c7d2ebd1 100644 --- a/test_tipc/prepare.sh +++ b/test_tipc/prepare.sh @@ -30,6 +30,7 @@ trainer_list=$(func_parser_value "${lines[14]}") if [ ${MODE} = "benchmark_train" ];then pip install -r requirements.txt + pip install -e . MODE="lite_train_lite_infer" fi @@ -39,13 +40,36 @@ if [ ${MODE} = "lite_train_lite_infer" ];then mkdir -p ./test_tipc/data/mini_modelnet40 cd ./test_tipc/data/mini_modelnet40 && tar xf ../mini_modelnet40.tar.gz && cd ../../ elif [ ${model_name} = "petrv2" ]; then - rm -rf ./data/nuscenes + wget -nc -P ./ https://paddle3d.bj.bcebos.com/pretrained/fcos3d_vovnet_imgbackbone-remapped.pdparams --no-check-certificate - cd ./data/ && unzip nuscenes.zip && cd ../ + rm -rf ./data + # download data + # cd Paddle3D + mkdir data && cd data + python ${BENCHMARK_ROOT}/paddlecloud/file_upload_download.py \ + --remote-path /user/userdata/benchmark/data/Paddle3D/petrv2/ \ + --local-path ./ \ + --mode download + unzip nuscenes.zip && cd ../ elif [ ${model_name} = "centerpoint" ]; then rm -rf ./datasets/KITTI wget -nc -P ./datasets/ https://paddle3d.bj.bcebos.com/TIPC/dataset/kitti_mini_centerpoint.tar.gz --no-check-certificate - cd ./datasets/ && tar -xzf kitti_mini_centerpoint.tar.gz && cd ../ ;; + cd ./datasets/ && tar -xzf kitti_mini_centerpoint.tar.gz && cd ../ + elif [ ${model_name} = "bevformer" ]; then + rm -rf datasets && mkdir datasets && cd datasets + python ${BENCHMARK_ROOT}/paddlecloud/file_upload_download.py \ + --remote-path /user/userdata/benchmark/data/Paddle3D/bevformer/ \ + --local-path ./ \ + --mode download + tar xf nuscenes.tar && cd ../ + elif [ ${model_name} = "caddn" ]; then + rm -rf data && mkdir data && cd data + python ${BENCHMARK_ROOT}/paddlecloud/file_upload_download.py \ + --remote-path /user/userdata/benchmark/data/Paddle3D/caddn/ \ + --local-path ./ \ + --mode download + tar xf KITTI.tar && mv KITTI kitti + cd ../; else echo "Not added into TIPC yet." fi