datasets/ImageNet_LT/extract_extra_imagenet_1k.py (19 lines of code) (raw):

import os, argparse parser = argparse.ArgumentParser(description='PyTorch CIFAR Example') parser.add_argument('--data_root_path', '--drp', default='/ssd1/haotao/datasets', help='data root path') args = parser.parse_args() with open("datasets/ImageNet_LT/imagenet_extra_1k_wnid_list.txt", "r") as fp: imagenet_extra_1k_wnid_list = fp.read().splitlines() imagenet10k_dir = os.path.join(args.data_root_path, 'imagenet10k') for item in os.listdir(imagenet10k_dir): wnid = item.split('.')[0] if wnid in imagenet_extra_1k_wnid_list: if os.path.exists(os.path.join(imagenet10k_dir, wnid)): continue else: os.makedirs(os.path.join(imagenet10k_dir, wnid)) os.system('tar xvf %s -C %s' % (os.path.join(imagenet10k_dir, item), os.path.join(imagenet10k_dir, wnid))) # make symbolic link: imagenet_extra_1k_dir = os.path.join(args.data_root_path, 'imagenet', 'extra_1k') os.mkdir(imagenet_extra_1k_dir) for wnid in imagenet_extra_1k_wnid_list: os.symlink(os.path.join(imagenet10k_dir, wnid), os.path.join(imagenet_extra_1k_dir, wnid))