OpenDriveLab / UniAD

[CVPR 2023 Best Paper Award] Planning-oriented Autonomous Driving
Apache License 2.0
3.34k stars 369 forks source link

使用V1.0-mini数据集运行uniad_dist_eval.sh #128

Open zhangzhongzhong1 opened 1 year ago

zhangzhongzhong1 commented 1 year ago

使用V1.0-mini数据集运行uniad_dist_eval.sh报错如下: File "./tools/test.py", line 261, in main() File "./tools/test.py", line 231, in main outputs = custom_multi_gpu_test(model, data_loader, args.tmpdir, File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/uniad/apis/test.py", line 88, in custom_multi_gpu_test for i, data in enumerate(data_loader): File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 521, in next data = self._next_data() File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1203, in _next_data return self._process_data(data) File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1229, in _process_data data.reraise() File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/_utils.py", line 425, in reraise raise self.exc_type(msg) FileNotFoundError: Caught FileNotFoundError in DataLoader worker process 0. Original Traceback (most recent call last): File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/utils/data/_utils/worker.py", line 287, in _worker_loop data = fetcher.fetch(index) File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch data = [self.dataset[idx] for idx in possibly_batched_index] File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 44, in data = [self.dataset[idx] for idx in possibly_batched_index] File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/datasets/nuscenes_e2e_dataset.py", line 726, in getitem return self.prepare_test_data(idx) File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/datasets/nuscenes_e2e_dataset.py", line 254, in prepare_test_data example = self.pipeline(input_dict) File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/mmdet/datasets/pipelines/compose.py", line 40, in call data = t(data) File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/datasets/pipelines/loading.py", line 53, in call img = mmcv.imread(img_path, self.color_type) File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/mmcv/image/io.py", line 176, in imread check_file_exist(img_or_path, File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/mmcv/utils/path.py", line 23, in check_file_exist raise FileNotFoundError(msg_tmpl.format(filename)) FileNotFoundError: img file does not exist: data/nuscenes/./data/nuscenes/v1.0-mini/samples/CAM_FRONT/n008-2018-08-01-15-16-36-0400__CAM_FRONT__1533151603512404.jpg

麻烦各位大佬给一些建议

yudefu commented 1 year ago

home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/datasets/pipelines/loading.py把这个脚本里面第48行注释掉;你这个很明显是两个目录join操作导致本身目录文件存在,结果访问不到

zhangzhongzhong1 commented 1 year ago

File "./tools/test.py", line 260, in main() File "./tools/test.py", line 230, in main outputs = custom_multi_gpu_test(model, data_loader, args.tmpdir, File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/uniad/apis/test.py", line 90, in custom_multi_gpu_test result = model(return_loss=False, rescale=True, data) File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1051, in _call_impl return forward_call(*input, *kwargs) File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/nn/parallel/distributed.py", line 799, in forward output = self.module(inputs[0], kwargs[0]) File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1051, in _call_impl return forward_call(*input, kwargs) File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/uniad/detectors/uniad_e2e.py", line 83, in forward return self.forward_test(kwargs) File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/uniad/detectors/uniad_e2e.py", line 292, in forward_test result_track = self.simple_test_track(img, l2g_t, l2g_r_mat, img_metas, timestamp) File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/uniad/detectors/uniad_track.py", line 748, in simple_test_track frame_res = self._forward_single_frame_inference( File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/uniad/detectors/uniad_track.py", line 643, in _forward_single_frame_inference ref_pts = self.velo_update( File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/uniad/detectors/uniad_track.py", line 270, in velo_update g2l_r = torch.linalg.inv(l2g_r2).type(torch.float) RuntimeError: cusolver error: CUSOLVER_STATUS_INTERNAL_ERROR, when calling cusolverDnCreate(handle) 请问一下这个问题遇到过吗?

yudefu commented 1 year ago

你这种问题好像是安装环境没有搞好,我看很多人在conda环境里面都遇见一些问题,不建议在conda环境安装;你可以在非conda环境进行安装,如果你的cuda版本不匹配可以参考:https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=CentOS&target_version=7&target_type=runfile_local进行安装;如果需要安装torch相关的包可以参考:https://download.pytorch.org/whl/torch_stable.html

zhangzhongzhong1 commented 1 year ago

好的,谢谢你

Cyanglll commented 11 months ago

使用V1.0-mini数据集运行uniad_dist_eval.sh报错如下: File "./tools/test.py", line 261, in main() File "./tools/test.py", line 231, in main outputs = custom_multi_gpu_test(model, data_loader, args.tmpdir, File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/uniad/apis/test.py", line 88, in custom_multi_gpu_test for i, data in enumerate(data_loader): File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 521, in next data = self._next_data() File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1203, in _next_data return self._process_data(data) File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1229, in _process_data data.reraise() File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/_utils.py", line 425, in reraise raise self.exc_type(msg) FileNotFoundError: Caught FileNotFoundError in DataLoader worker process 0. Original Traceback (most recent call last): File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/utils/data/_utils/worker.py", line 287, in _worker_loop data = fetcher.fetch(index) File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch data = [self.dataset[idx] for idx in possibly_batched_index] File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 44, in data = [self.dataset[idx] for idx in possibly_batched_index] File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/datasets/nuscenes_e2e_dataset.py", line 726, in getitem return self.prepare_test_data(idx) File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/datasets/nuscenes_e2e_dataset.py", line 254, in prepare_test_data example = self.pipeline(input_dict) File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/mmdet/datasets/pipelines/compose.py", line 40, in call data = t(data) File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/datasets/pipelines/loading.py", line 53, in call img = mmcv.imread(img_path, self.color_type) File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/mmcv/image/io.py", line 176, in imread check_file_exist(img_or_path, File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/mmcv/utils/path.py", line 23, in check_file_exist raise FileNotFoundError(msg_tmpl.format(filename)) FileNotFoundError: img file does not exist: data/nuscenes/./data/nuscenes/v1.0-mini/samples/CAM_FRONT/n008-2018-08-01-15-16-36-0400__CAM_FRONT__1533151603512404.jpg

麻烦各位大佬给一些建议

你好,请问下载mini数据集后data文件夹应该是什么结构呢?使用mini集时,data_root t改为空empty在哪一个config files里修改呢?我使用./uniad_create_data.sh时出现了如下的报错:

(uniad) cyang@cyang-Precision-3660:~/UniAD/tools$ ./uniad_create_data.sh v1.0-mini /home/cyang/UniAD/data/nuscenes

Loading NuScenes tables for version v1.0-mini... Traceback (most recent call last): File "/home/cyang/UniAD/tools/create_data.py", line 104, in nuscenes_data_prep( File "/home/cyang/UniAD/tools/create_data.py", line 28, in nuscenes_data_prep nuscenes_converter.create_nuscenes_infos( File "/home/cyang/UniAD/tools/data_converter/uniad_nuscenes_converter.py", line 47, in create_nuscenes_infos nusc = NuScenes(version=version, dataroot=root_path, verbose=True) File "/home/cyang/anaconda3/envs/uniad/lib/python3.8/site-packages/nuscenes/nuscenes.py", line 116, in init map_record['mask'] = MapMask(osp.join(self.dataroot, map_record['filename']), resolution=map_resolution) File "/home/cyang/anaconda3/envs/uniad/lib/python3.8/site-packages/nuscenes/utils/map_mask.py", line 23, in init assert osp.exists(img_file), 'map mask {} does not exist'.format(img_file) AssertionError: map mask /home/cyang/UniAD/data/nuscenes/maps/53992ee3023e5494b90c316c183be829.png does not exist

恳请大佬给点建议,能否给一个使用mini集部署的具体步骤?非常非常感谢!

Cyanglll commented 11 months ago

大佬您好,请问下载mini数据集后data文件夹应该是什么结构呢?使用mini集时,data_root改为empty在哪一个config files里修改呢?我使用./uniad_create_data.sh时出现了如下的报错:

(uniad) cyang@cyang-Precision-3660:~/UniAD/tools$ ./uniad_create_data.sh v1.0-mini /home/cyang/UniAD/data/nuscenes

Loading NuScenes tables for version v1.0-mini... Traceback (most recent call last): File "/home/cyang/UniAD/tools/create_data.py", line 104, in nuscenes_data_prep( File "/home/cyang/UniAD/tools/create_data.py", line 28, in nuscenes_data_prep nuscenes_converter.create_nuscenes_infos( File "/home/cyang/UniAD/tools/data_converter/uniad_nuscenes_converter.py", line 47, in create_nuscenes_infos nusc = NuScenes(version=version, dataroot=root_path, verbose=True) File "/home/cyang/anaconda3/envs/uniad/lib/python3.8/site-packages/nuscenes/nuscenes.py", line 116, in init map_record['mask'] = MapMask(osp.join(self.dataroot, map_record['filename']), resolution=map_resolution) File "/home/cyang/anaconda3/envs/uniad/lib/python3.8/site-packages/nuscenes/utils/map_mask.py", line 23, in init assert osp.exists(img_file), 'map mask {} does not exist'.format(img_file) AssertionError: map mask /home/cyang/UniAD/data/nuscenes/maps/53992ee3023e5494b90c316c183be829.png does not exist

恳请大佬给点建议,能否给一个使用mini集部署的具体步骤?非常非常感谢!

Cyanglll commented 11 months ago

home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/datasets/pipelines/loading.py把这个脚本里面第48行注释掉;你这个很明显是两个目录join操作导致本身目录文件存在,结果访问不到

你好,请问下载mini数据集后data文件夹应该是什么结构呢?使用mini集时,data_root t改为空empty在哪一个config files里修改呢?我使用./uniad_create_data.sh时出现了如下的报错: (uniad) cyang@cyang-Precision-3660:~/UniAD/tools$ ./uniad_create_data.sh v1.0-mini /home/cyang/UniAD/data/nuscenes

Loading NuScenes tables for version v1.0-mini... Traceback (most recent call last): File "/home/cyang/UniAD/tools/create_data.py", line 104, in nuscenes_data_prep( File "/home/cyang/UniAD/tools/create_data.py", line 28, in nuscenes_data_prep nuscenes_converter.create_nuscenes_infos( File "/home/cyang/UniAD/tools/data_converter/uniad_nuscenes_converter.py", line 47, in create_nuscenes_infos nusc = NuScenes(version=version, dataroot=root_path, verbose=True) File "/home/cyang/anaconda3/envs/uniad/lib/python3.8/site-packages/nuscenes/nuscenes.py", line 116, in init map_record['mask'] = MapMask(osp.join(self.dataroot, map_record['filename']), resolution=map_resolution) File "/home/cyang/anaconda3/envs/uniad/lib/python3.8/site-packages/nuscenes/utils/map_mask.py", line 23, in init assert osp.exists(img_file), 'map mask {} does not exist'.format(img_file) AssertionError: map mask /home/cyang/UniAD/data/nuscenes/maps/53992ee3023e5494b90c316c183be829.png does not exist

恳请大佬给点建议,能否给一个使用mini集部署的具体步骤?非常非常感谢!

yudefu commented 11 months ago

home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/datasets/pipelines/loading.py把这个脚本里面第48行注释掉;你这个很明显是两个目录join操作导致本身目录文件存在,结果访问不到

你好,请问下载mini数据集后data文件夹应该是什么结构呢?使用mini集时,data_root t改为空empty在哪一个config files里修改呢?我使用./uniad_create_data.sh时出现了如下的报错: (uniad) cyang@cyang-Precision-3660:~/UniAD/tools$ ./uniad_create_data.sh v1.0-mini /home/cyang/UniAD/data/nuscenes

Loading NuScenes tables for version v1.0-mini... Traceback (most recent call last): File "/home/cyang/UniAD/tools/create_data.py", line 104, in nuscenes_data_prep( File "/home/cyang/UniAD/tools/create_data.py", line 28, in nuscenes_data_prep nuscenes_converter.create_nuscenes_infos( File "/home/cyang/UniAD/tools/data_converter/uniad_nuscenes_converter.py", line 47, in create_nuscenes_infos nusc = NuScenes(version=version, dataroot=root_path, verbose=True) File "/home/cyang/anaconda3/envs/uniad/lib/python3.8/site-packages/nuscenes/nuscenes.py", line 116, in init map_record['mask'] = MapMask(osp.join(self.dataroot, map_record['filename']), resolution=map_resolution) File "/home/cyang/anaconda3/envs/uniad/lib/python3.8/site-packages/nuscenes/utils/map_mask.py", line 23, in init assert osp.exists(img_file), 'map mask {} does not exist'.format(img_file) AssertionError: map mask /home/cyang/UniAD/data/nuscenes/maps/53992ee3023e5494b90c316c183be829.png does not exist

恳请大佬给点建议,能否给一个使用mini集部署的具体步骤?非常非常感谢!

首先,你这个问题或者后面遇见其他的问题可以把issue里面的问题都看一遍,大多数大家都遇见过了;你这个问题可以按照以下步骤解决:1、准备数据的时候,把UniAD/tools/uniad_create_data.sh脚本里边的--version参数改成v1.0-mini,会在infos目录下(备份好之前用于全量数据集训练的模型文件)生成相应的nuscenes_infostemporal{train/val}.pkl文件之后再用评估脚本;2、v1.0-mini数据集下载地址作者在readme里面给了地址你可以下载一下;3、自己要注意把下载好的2数据集放到nuscenes目录,提前备份好之前下载的数据;请记住不管用全量数据集还是mini数据集,所有需要准备的目录层级结构是一样的;参考:4、最后,如果想完整的跑完整个训练需要下载全量数据集,大概有400多G,需要保证gpu卡充足,有问题再留意吧

Torrent29 commented 6 months ago

File "./tools/test.py", line 260, in main() File "./tools/test.py", line 230, in main outputs = custom_multi_gpu_test(model, data_loader, args.tmpdir, File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/uniad/apis/test.py", line 90, in custom_multi_gpu_test result = model(return_loss=False, rescale=True, data) File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1051, in _call_impl return forward_call(*input, *kwargs) File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/nn/parallel/distributed.py", line 799, in forward output = self.module(inputs[0], kwargs[0]) File "/home/zzz/anaconda3/envs/uniad/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1051, in _call_impl return forward_call(*input, kwargs) File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/uniad/detectors/uniad_e2e.py", line 83, in forward return self.forward_test(kwargs) File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/uniad/detectors/uniad_e2e.py", line 292, in forward_test result_track = self.simple_test_track(img, l2g_t, l2g_r_mat, img_metas, timestamp) File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/uniad/detectors/uniad_track.py", line 748, in simple_test_track frame_res = self._forward_single_frame_inference( File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/uniad/detectors/uniad_track.py", line 643, in _forward_single_frame_inference ref_pts = self.velo_update( File "/home/zzz/Downloads/UniAD-1.0.1/projects/mmdet3d_plugin/uniad/detectors/uniad_track.py", line 270, in velo_update g2l_r = torch.linalg.inv(l2g_r2).type(torch.float) RuntimeError: cusolver error: CUSOLVER_STATUS_INTERNAL_ERROR, when calling cusolverDnCreate(handle) 请问一下这个问题遇到过吗?

I also meet the same problem, you can refer to #54

Reversev commented 3 months ago

Hello, can you help me solve this problem? #190 @yudefu @Torrent29