| import argparse | |
| from . import * | |
| from .classes import * | |
| from .funcs import * | |
| from abcli import file | |
| import abcli.logging | |
| import logging | |
| logger = logging.getLogger(__name__) | |
| parser = argparse.ArgumentParser(name, description=f"{name}-{version}") | |
| parser.add_argument( | |
| "task", | |
| type=str, | |
| default="", | |
| help="describe,eval,ingest,predict,preprocess,train", | |
| ) | |
| parser.add_argument( | |
| "--objects", | |
| type=str, | |
| default="", | |
| ) | |
| parser.add_argument( | |
| "--color", | |
| type=int, | |
| default=0, | |
| help="0/1", | |
| ) | |
| parser.add_argument( | |
| "--convnet", | |
| type=int, | |
| default=1, | |
| help="0/1", | |
| ) | |
| parser.add_argument( | |
| "--count", | |
| type=int, | |
| default=-1, | |
| ) | |
| parser.add_argument( | |
| "--data_path", | |
| type=str, | |
| default="", | |
| ) | |
| parser.add_argument( | |
| "--epochs", | |
| default=10, | |
| type=int, | |
| help="", | |
| ) | |
| parser.add_argument( | |
| "--infer_annotation", | |
| type=int, | |
| default=1, | |
| help="0/1", | |
| ) | |
| parser.add_argument( | |
| "--input_path", | |
| type=str, | |
| default="", | |
| ) | |
| parser.add_argument( | |
| "--model_path", | |
| type=str, | |
| default="", | |
| ) | |
| parser.add_argument( | |
| "--output_path", | |
| type=str, | |
| default="", | |
| ) | |
| parser.add_argument( | |
| "--purpose", | |
| type=str, | |
| default="", | |
| help="predict/train", | |
| ) | |
| parser.add_argument( | |
| "--window_size", | |
| type=int, | |
| default=default_window_size, | |
| ) | |
| args = parser.parse_args() | |
| success = False | |
| if args.task == "describe": | |
| Image_Classifier().load(args.model_path) | |
| success = True | |
| elif args.task == "eval": | |
| success = eval(args.input_path, args.output_path) | |
| elif args.task == "predict": | |
| classifier = Image_Classifier() | |
| if classifier.load(args.model_path): | |
| success, test_images = file.load(f"{args.data_path}/test_images.pyndarray") | |
| if success: | |
| logger.info(f"test_images: {string.pretty_shape_of_matrix(test_images)}") | |
| _, test_labels = file.load( | |
| f"{args.data_path}/test_labels.pyndarray", | |
| civilized=True, | |
| default=None, | |
| ) | |
| test_images = test_images / 255.0 | |
| success = classifier.predict( | |
| test_images, | |
| test_labels, | |
| args.output_path, | |
| ) | |
| elif args.task == "preprocess": | |
| success = preprocess( | |
| args.output_path, | |
| objects=args.objects, | |
| infer_annotation=args.infer_annotation, | |
| purpose=args.purpose, | |
| window_size=args.window_size, | |
| ) | |
| elif args.task == "train": | |
| success = Image_Classifier.train( | |
| args.data_path, | |
| args.model_path, | |
| color=args.color, | |
| convnet=args.convnet, | |
| epochs=args.epochs, | |
| ) | |
| else: | |
| logger.error(f"-{name}: {args.task}: command not found.") | |
| if not success: | |
| logger.error(f"-{name}: {args.task}: failed.") | |