diff --git a/mmcls/apis/test.py b/mmcls/apis/test.py index dd773827..b8d1c347 100644 --- a/mmcls/apis/test.py +++ b/mmcls/apis/test.py @@ -106,7 +106,11 @@ def collect_results_cpu(result_part, size, tmpdir=None): part_list = [] for i in range(world_size): part_file = osp.join(tmpdir, f'part_{i}.pkl') - part_list.append(mmcv.load(part_file)) + part_result = mmcv.load(part_file) + # When data is severely insufficient, an empty part_result + # on a certain gpu could makes the overall outputs empty. + if part_result: + part_list.append(part_result) # sort the results ordered_results = [] for res in zip(*part_list): @@ -140,8 +144,11 @@ def collect_results_gpu(result_part, size): if rank == 0: part_list = [] for recv, shape in zip(part_recv_list, shape_list): - part_list.append( - pickle.loads(recv[:shape[0]].cpu().numpy().tobytes())) + part_result = pickle.loads(recv[:shape[0]].cpu().numpy().tobytes()) + # When data is severely insufficient, an empty part_result + # on a certain gpu could makes the overall outputs empty. + if part_result: + part_list.append(part_result) # sort the results ordered_results = [] for res in zip(*part_list):