Scroll Down

About Ludwig

Ludwig is a toolbox that allows to train and test deep learning models without the need to write code.

General

A new data type-based approach to deep learning model design that makes the tool suited for many different applications.

Flexible

Experienced users have deep control over model building and training, while newcomers will find it easy to use.

Extensible

Easy to add new model architecture and new feature data-types.

Understandable

Deep learning models internals are often considered black boxes, but we provide standard visualizations to understand their performances and compare their predictions.

Easy

No coding skills are required to train a model and use it for obtaining predictions.

Open

Ludwig is release under the open source Apache License 2.0.

How does it work?

Install

Just run pip install ludwig and it will be ready to use. Some features may require further steps, read Getting Started.

Train

Prepare your data in a CSV file, define input and output feature in a model definition YAML file and run:

ludwig train
--data_csv file.csv
--model_definition definition.yaml

Predict

Prepare your data in a CSV file and use a pre-trained model to predict the output targets:

ludwig predict
--data_csv data.csv
--model path_to_model

Visualize

Ludwig comes with many visualization options. If you want to look at the learning curves of your model for instance, run:

ludwig visualize
--visualization learning_curves
--training_statistics train_statistics.json

Ludwig Screenshots

Programmatic API

Train models and use them to predict directly from Python

from ludwig.api import LudwigModel

# train a model
model_definition = {...}
model = LudwigModel(model_definition)
train_stats = model.train(training_dataframe)
# or load a model
model = LudwigModel.load(model_path)

# obtain predictions
predictions = model.predict(test_dataframe)

Cite Ludwig

@Article{Molino2019,
  author  = "Piero Molino",
  year    = 2019,
  title   = "Ludwig: a type-based declarative deep learning toolbox"
  journal = "To appear"
}