AutoGluon: AutoML for Text, Image, and Tabular Data

AutoGluon enables easy-to-use and easy-to-extend AutoML with a focus on automated stack ensembling, deep learning, and real-world applications spanning text, image, and tabular data. Intended for both ML beginners and experts, AutoGluon enables you to:

  • Quickly prototype deep learning and classical ML solutions for your raw data with a few lines of code.

  • Automatically utilize state-of-the-art techniques (where appropriate) without expert knowledge.

  • Leverage automatic hyperparameter tuning, model selection/ensembling, architecture search, and data processing.

  • Easily improve/tune your bespoke models and data pipelines, or customize AutoGluon for your use-case.

Note

Example using AutoGluon to train and deploy high-performance model on a tabular dataset:

>>> from autogluon.tabular import TabularPrediction as task
>>> predictor = task.fit(train_data=task.Dataset(file_path=TRAIN_DATA.csv), label=COLUMN_NAME)
>>> predictions = predictor.predict(task.Dataset(file_path=TEST_DATA.csv))

AutoGluon can be applied just as easily for prediction tasks with image or text data.

Installation

Warning

This documentation is based off of the pre-release mainline branch which may have frequent API breaking changes.

Most users should instead reference the stable release documentation.

Note

AutoGluon requires Python version 3.6 or 3.7. Linux is the only operating system fully supported for now (complete Mac OSX and Windows versions will be available soon). For troubleshooting the installation process, you can check the Installation FAQ.

Select your preferences below and run the corresponding install commands:

OS: Linux Mac

Linux.
Mac OSX.

Version: PIP Source

PIP Release.
Install AutoGluon from source.

Backend: CPU GPU

Build-in backend for CPU.
Required to run on Nvidia GPUs.

Command:

python3 -m pip install --upgrade "mxnet<2.0.0"
python3 -m pip install --pre autogluon
# Here we assume CUDA 10.1 is installed.  You should change the number
# according to your own CUDA version (e.g. mxnet_cu100 for CUDA 10.0).
python3 -m pip install --upgrade "mxnet_cu101<2.0.0"
python3 -m pip install --pre autogluon
python3 -m pip install --upgrade "mxnet<2.0.0"
git clone https://github.com/awslabs/autogluon
cd autogluon && ./full_install.sh
# Here we assume CUDA 10.1 is installed.  You should change the number
# according to your own CUDA version (e.g. mxnet_cu102 for CUDA 10.2).
python3 -m pip install --upgrade "mxnet_cu101<2.0.0"
git clone https://github.com/awslabs/autogluon
cd autogluon && ./full_install.sh

Note

If you don’t have them, please first install: XCode, Homebrew, LibOMP. Once you have Homebrew, LibOMP can be installed via:

brew install libomp
python3 -m pip install --upgrade "mxnet<2.0.0"
python3 -m pip install --pre autogluon

Note

AutoGluon is not yet fully functional on Mac OSX. If you encounter MXNet system errors, please use Linux instead. However, you can currently use AutoGluon for less compute-intensive TabularPrediction tasks on your Mac laptop (but only with hyperparameter_tune = False).

Note

GPU usage is not yet supported on Mac OSX, please use Linux to utilize GPUs in AutoGluon.

Note

If you don’t have them, please first install: XCode, Homebrew, LibOMP. Once you have Homebrew, LibOMP can be installed via:

brew install libomp
python3 -m pip install --upgrade "mxnet<2.0.0"
git clone https://github.com/awslabs/autogluon
cd autogluon && ./full_install.sh

Note

AutoGluon is not yet fully functional on Mac OSX. If you encounter MXNet system errors, please use Linux instead. However, you can currently use AutoGluon for less compute-intensive TabularPrediction tasks on your Mac laptop (but only with hyperparameter_tune = False).

Note

GPU usage is not yet supported on Mac OSX , please use Linux to utilize GPUs in AutoGluon.

AutoGluon is modularized into sub-modules specialized for tabular, text, or image data. You can reduce the number of dependencies required by solely installing a specific sub-module via: python3 -m pip install <submodule>, where <submodule> may be one of the following options:

  • autogluon.tabular - only functionality for tabular data (TabularPrediction)

  • autogluon.image - only functionality for computer vision (ImageClassification, ObjectDetection)

  • autogluon.text - only functionality for natural language processing (TextPrediction)

  • autogluon.core - only core functionality (Searcher/Scheduler) useful for hyperparameter tuning of arbitrary code/models.

  • autogluon.extra - miscellaneous extra functionality such as Efficient Neural Architecture Search

Quick Start

Application Illustration
Tabular Prediction:
predict values in column
of data table based on
other columns' values
Image Classification:
recognize the main object
in an image
Object Detection:
detect multiple objects
with their bounding boxes
in an image
Text Prediction:
make predictions based
on text content
   

Tutorials

Tabular Predictiontutorials/tabular_prediction/index.html

How to predict variables in tabular datasets.

Image Classificationtutorials/image_classification/index.html

How to classify images into various categories.

Object Detectiontutorials/object_detection/index.html

How to detect objects and their location in images.

Text Predictiontutorials/text_prediction/index.html

How to solve NLP problems via supervised learning from raw text.

Advanced Topics

Tune Custom Modelstutorials/course/index.html

How to hyperparameter-tune your own custom models or Python code.

For PyTorch Userstutorials/torch/index.html

How to do hyperparameter tuning or architecture search for any PyTorch model.