This repository is a compilation of scripts that I have created in my time working with machine learning. These scripts aim to automate the annoying and tedious parts of ML, allowing you to focus on what is important.
PyPi: https://pypi.org/project/AutoAILib/
$ pip install autoailib
This library was developed for and used with keras convolutional neural networks. They do however work with other keras models, besides image test obviously.
AutoAi.convnet_tester(model path or object, labels)
Class Video Demo
AutoAi.image_predict(model_path, image_path, labels)
This function takes 3 arguments: a path to a keras model, a path to an image, and a list of labels.
Demo:
Given a the correct arguments, we get the following output, as well as this image saved to our model directory.
AutoAi.manual_test(model, testing_dir, labels)
This function tests a model given labels and testing data. It then compiles the results in a CSV file, and groups the results by class, and by correct and incorrect.
- Model - Path of model that you want to test or model object.
- Testing_dir - Path to the directory with your testing data.
- Labels - Dictionary of the classes, in form (index:class_name)
Example csv:
Update! This has now been packaged in the AutoAI.data_compiler class.
AutoAi.data_compiler(self,src, dest, **kwargs)
AutoAi.data_compiler.run() will compile the data based on the constructor parameters.
This function takes 2 required arguments, an original data source file, and a path to the desired data directory. Given just these two arguments, this function will create a new testing data folder at dest with training, validation, and testing folders, containing folders for each class. You can alter the ratio with the ratio arguments, as well as provide a number of img transforms to do if you are using images.
- Src - Path to a folder that contains a folder for each class and then data examples in those class folders.
- Dest - Path to a folder where you want the data to end up.
- Num_imgs_per_class - This number of images will be added to the original set for each class through transforms. The theoretical limit for this would be 3! * original images per class
Demo:
Given the a path to the following folder:
If augmentation used the following results will be yielded:
Then these images will be copied to the dest folder with copied file structure, but an added upper layer:
Example showing the images made it: