Masterful: The Model Development Platform for Computer Vision ============================================================= Intro ----- Masterful is the development platform for computer vision models. Masterful supports most types of classification, detection, and segmentation. .. image:: images/arch.png Users define the two inputs to Masterful: * **Data** * **Model architecture** Masterful processes those inputs through four modules: * **Regularization**, which improves accuracy from the existing information. * **Semi-supervised learning (SSL)**, which improves accuracy by learning from the information in raw, unlabeled images. * **Optimization**, which minimizes GPU-hours and wall-clock time of training. * **Meta-learning**, which minimizes developer "guessing and checking" and eliminates black box optimization. Masterful returns a **trained model** (e.g. model weights). Two ways to use Masterful: The CLI Trainer and The Python API ------------------------------------------------------------- Masterful is available through two interfaces: 1. **Masterful CLI Trainer**, a command line tool that takes YAML config files and training data organized in directories, trains a model, and saves the trained model and weights on disk. Internally, the Masterful CLI Trainer uses the Masterful Python API. The Masterful CLI Trainer emphasizes ease-of-use and simplicity. 2. **Masterful Python API**, a Python API built on top of Tensorflow 2 offering developers more control. Design Goals ------------ Masterful is designed to achive three design goals: 1. **Accuracy**, achieved via comprehensive regularization and semi-supervised learning (e.g. learning from raw, unlabeled images). 2. **Developer Productivity**, achieved via high-speed metalearning. It's an inefficient use of developer time to guess-and-check hyperparameters or do long runs with a black box optimizer. 3. **Speed**, or minimizing GPU-hours and wall clock time, achieved via high-speed metalearning to discover ideal optimization hyperparameters. Getting Started --------------- Install with ``pip install --upgrade pip; pip install masterful``. For detailed installation instructions, visit the :doc:`markdown/tutorial_installation`. Then execute your first training run with Masterful with the :doc:`notebooks/tutorial_quickstart_cli`. .. .. raw:: html .. Design ------ To learn about the concepts within the Masterful CV Platform, visit the `technical report preprint`_. .. _`technical report preprint`: https://arxiv.org/abs/2205.10469 |arXiv_badge|_ .. |arXiv_badge| image:: https://img.shields.io/badge/arXiv-2205.10469-b31b1b .. _arXiv_badge: https://arxiv.org/abs/2205.10469 If you use Masterful for academic research, you are encouraged to cite: :: @article{wookeyhorikert2022masterful, title={Masterful: A Training Platform for Computer Vision Models}, author={Wookey, Samuel and Ho, Yaoshiang and Rikert, Tom and Lopez, Juan David Gil and Beancur, Juan Manuel Mu{\~n}oz and Cortes, Santiago and Tawil, Ray and Sabin, Aaron and Lynch, Jack and Harper, Travis and others}, journal={arXiv preprint arXiv:2205.10469}, year={2022} } .. toctree:: :maxdepth: 1 :caption: Get Started :hidden: :includehidden: Installation Quickstart Tutorial .. toctree:: :maxdepth: 1 :caption: The CLI Trainer :hidden: :includehidden: Introducing the CLI Trainer Data Directory Format YAML Config File Model Output Formats Model Evaluation CLI Reference .. toctree:: :maxdepth: 1 :caption: The Python API :hidden: :includehidden: Introducing the Python API Data Input Types Train with Unlabeled Data via Semi-Supervised Learning Automatic Labeling with Semi-Supervised Learning Ensembling Distillation .. toctree:: :maxdepth: 1 :caption: Example Applications (API) :hidden: :includehidden: Classifying Flowers (API) Object Detection with Pascal VOC (API) Segmentation with Dogs and Cats (API) Segmentation with Street Level Imagery incl. Deployment (API) .. toctree:: :maxdepth: 1 :caption: Advanced Concepts :hidden: :includehidden: Transfer Learning Introduction to Semi-Supervised Learning Batch Size and Learning Rate Finder Visualizing the Results Registration and Activation .. toctree:: :maxdepth: 3 :caption: API Reference :hidden: :includehidden: masterful.architecture masterful.data masterful.enums masterful.evaluation masterful.optimization masterful.register masterful.regularization masterful.ssl masterful.training .. toctree:: :maxdepth: 3 :caption: Release Notes :hidden: :includehidden: markdown/release_notes