Source code for agnapprox.datamodules.format_tinyimagenet

#!/usr/bin/env python3

import argparse
import os


[docs]def format_imagenet_val_set(home_folder): val_folder = os.path.join(home_folder, "val") val_img_dict = {} with open(os.path.join(val_folder, "val_annotations.txt"), "r") as f: for line in f: words = line.split("\t") val_img_dict[words[0]] = words[1] for img, folder in val_img_dict.items(): newpath = os.path.join(val_folder, folder) if not os.path.exists(newpath): os.makedirs(newpath) if os.path.exists(os.path.join(val_folder, "images", img)): os.rename( os.path.join(val_folder, "images", img), os.path.join(newpath, img) ) os.rmdir(os.path.join(val_folder, "images")) os.remove(os.path.join(val_folder, "val_annotations.txt"))
if __name__ == "__main__": def dir_path(path): if os.path.isdir(path): return path else: raise argparse.ArgumentTypeError(f"readable_dir:{path} is not a valid path") parser = argparse.ArgumentParser( description="Move TinyImageNet Validation Set to folder structure" ) parser.add_argument("--path", type=dir_path, help="TinyImageNet Home Directory") args = parser.parse_args() format_imagenet_val_set(args.path)