display_from_info.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #!/usr/bin/env python
  2. if __name__ != '__main__': raise Exception("Do not import me!")
  3. import sys
  4. sys.path.insert(0, "..")
  5. try:
  6. from yaml import CLoader as Loader, CDumper as Dumper
  7. except ImportError:
  8. from yaml import Loader, Dumper
  9. import yaml
  10. import logging
  11. from argparse import ArgumentParser
  12. from nabirds import CUB_Annotations, Dataset
  13. def init_logger(args):
  14. fmt = "%(levelname)s - [%(asctime)s] %(filename)s:%(lineno)d [%(funcName)s]: %(message)s"
  15. logging.basicConfig(
  16. format=fmt,
  17. level=getattr(logging, args.loglevel.upper(), logging.DEBUG),
  18. filename=args.logfile or None,
  19. filemode="w")
  20. def main(args):
  21. init_logger(args)
  22. annot = CUB_Annotations.from_info_file(
  23. args.info, args.parts, args.feature_model)
  24. logging.info("Loaded data from \"{}\"".format(annot.root))
  25. uuids = getattr(annot, "{}_uuids".format(args.subset))
  26. data = Dataset(
  27. uuids=uuids, annotations=annot,
  28. seed=args.seed
  29. )
  30. logging.info("Loaded {} {} images".format(len(data), args.subset))
  31. parser = ArgumentParser()
  32. parser.add_argument("info")
  33. parser.add_argument("--parts", "-p",
  34. choices=["GT", "GT2", "NAC", "L1_pred", "L1_full"]
  35. )
  36. parser.add_argument("--feature_model",
  37. choices=["inception", "inception_tf", "resnet"]
  38. )
  39. parser.add_argument("--subset", "-s",
  40. help="Possible subsets: train, test",
  41. choices=["train", "test"],
  42. default="train", type=str)
  43. parser.add_argument(
  44. '--logfile', type=str, default='',
  45. help='File for logging output')
  46. parser.add_argument(
  47. '--loglevel', type=str, default='INFO',
  48. help='logging level. see logging module for more information')
  49. parser.add_argument(
  50. '--seed', type=int, default=12311123,
  51. help='random seed')
  52. main(parser.parse_args())