MCPcopy Create free account
hub / github.com/TPCD/DCCL / visualize3

Function visualize3

project_utils/visualization_utils.py:723–804  ·  view source on GitHub ↗
(features_path, output_path, show_num_identities_for_each_domain=100, plot_by_domain=False,
               if_from_numpy='', if_generalization=True)

Source from the content-addressed store, hash-verified

721
722
723def visualize3(features_path, output_path, show_num_identities_for_each_domain=100, plot_by_domain=False,
724 if_from_numpy='', if_generalization=True):
725 from collections import defaultdict
726 datasets = defaultdict(dict)
727 if not osp.exists(features_path):
728 assert False, f'features_path ({features_path}) is not existing!'
729 query_dict_list, gallery_dict_list = [], []
730 for _file in sorted(os.listdir(features_path)):
731 print(_file)
732 if 'cids' in _file or 'fuse' in _file:
733 continue
734 features = np.load(osp.join(features_path, _file))
735 dataset_name = re.findall(p1, _file)[0]
736 if 'pids' in _file:
737 if 'pids' in datasets[dataset_name].keys():
738 datasets[dataset_name]['pids'] = np.concatenate(
739 (datasets[dataset_name]['pids'], features), axis=0)
740 # print(f'{dataset_name} ==> add pids: {features.shape}')
741 else:
742 datasets[dataset_name].update({'pids': features})
743 # print(f'{dataset_name} ==> initial pids: {features.shape}')
744
745 elif 'features' in _file:
746 if 'features' in datasets[dataset_name].keys():
747 datasets[dataset_name]['features'] = np.concatenate(
748 (datasets[dataset_name]['features'], features), axis=0)
749 # print(f'{dataset_name} ==> add features: {features.shape}')
750 else:
751 datasets[dataset_name].update({'features': features})
752 # print(f'{dataset_name} ==> initial features: {features.shape}')
753 else:
754 assert False, f'the name of _file is {_file}, which is not compatible'
755
756 print(list(datasets.keys()))
757 for k, v in datasets.items():
758 # print(k)
759 # print(np.max(v['pids']))
760 # print(np.min(v['pids']))
761 v['pids'] = relabel_numpy(v['pids'])
762 # print(np.max(v['pids']))
763 # print(np.min(v['pids']))
764
765 for k, v in datasets.items():
766 # selected_ids = np.random.permutation(np.max(v['pids']))[
767 # :show_num_identities_for_each_domain]
768 selected_ids = np.random.permutation(np.max(v['pids']))
769
770 index = np.arange(v['pids'].shape[0])
771 # for ii, pid in enumerate(v['pids']):
772 # if pid in selected_ids:
773 # if 'selected_features' and 'selected_pids' in v.keys():
774 # v['selected_features'] = np.concatenate((v['selected_features'], v['features'][ii]), axis=0)
775 # assert v['pids'][ii] == pid, 'conflict'
776 # v['selected_pids'] = np.concatenate((v['selected_pids'], pid), axis=0)
777 # else:
778 # v.update({'selected_features': v['features'][ii]})
779 # assert v['pids'][ii] == pid, 'conflict'
780 # v.update({'selected_pids': pid})

Callers

nothing calls this directly

Calls 5

relabel_numpyFunction · 0.85
time_nowFunction · 0.85
plot_2D_embeddingFunction · 0.85
updateMethod · 0.45
saveMethod · 0.45

Tested by

no test coverage detected