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