DeepAugment

DOI PyPI version License: MIT Code style: black

Find optimal image augmentation policies for your dataset automatically. DeepAugment uses Bayesian optimization to discover augmentation strategies that maximize model performance.

Resources: blog post, slides


Quick Start

Installation

pip install deepaugment

or using uv:

uv add deepaugment

Simple API

from deepaugment import optimize

best_policy = optimize(my_images, my_labels, iterations=50)

Basic Usage (CIFAR-10)

from torchvision.datasets import CIFAR10
from deepaugment import optimize
import numpy as np

train_data = CIFAR10(root='./data', train=True, download=True)
X = np.array(train_data.data)[:5000]  # Use subset for speed
y = np.array(train_data.targets)[:5000]

best_policy = optimize(X, y, iterations=50)

Advanced Usage

from deepaugment import DeepAugment

# Separate train/validation sets
aug = DeepAugment(X_train, y_train, X_val, y_val,
                  n_operations=4,      # transforms per policy
                  train_size=2000,     # subset for speed
                  val_size=500)

# Optimize
best = aug.optimize(iterations=50, epochs=10)

# Show results
aug.show_best(n=5)

Why DeepAugment?

🚀 Fast & Efficient

Uses Bayesian Optimization instead of Reinforcement Learning, requiring ~100x fewer iterations than AutoAugment.

💰 Cost-Effective

Optimize CIFAR-10 policies in 4.2 hours for ~$13 on AWS p3.x2large (vs. days/weeks for AutoAugment).

🎯 Proven Results

60% error reduction (8.5% accuracy increase) on CIFAR-10 with WRN-28-10.

🔧 Modular Design

User-friendly API with extensive configuration options. Bring your own model or use built-in ones.


Key Features

🎨 26 Modern Transforms

Geometric, color, blur, noise, occlusion, and advanced transforms from torchvision v2.

🧠 Smart Optimization

Bayesian Optimization with Random Forest Estimator and Expected Improvement acquisition.

Minimal Child Model

Fast training (~30 seconds per iteration on V100 GPU) with 1.2M parameters.

🔬 Scientific Rigor

Published method with DOI, reproducible results, and comprehensive documentation.


Documentation


How It Works

DeepAugment has three major components:

  1. Controller: Samples new augmentation policies using Bayesian Optimization

  2. Augmenter: Transforms images according to the policy

  3. Child Model: Trains from scratch on augmented images and returns a reward

DeepAugment workflow

The controller iteratively: - Samples new policies based on previous results - Evaluates them using the child model - Updates its surrogate model - Repeats until convergence or max iterations


Results

CIFAR-10 best policies tested on WRN-28-10:

Result: 60% reduction in error (8.5% accuracy increase) by DeepAugment


Indices and tables