Skip to main content

Argus is a lightweight library for training neural networks in PyTorch.

Project description


PyPI version Documentation Status Test CodeFactor codecov Downloads

Argus is a lightweight library for training neural networks in PyTorch.




  • torch>=1.1.0

From pip:

pip install pytorch-argus

From source:

pip install -U git+


Simple image classification example with create_model from pytorch-image-models:

from torchvision.datasets import MNIST
from import DataLoader
from torchvision.transforms import Compose, ToTensor, Normalize

import timm

import argus
from argus.callbacks import MonitorCheckpoint, EarlyStopping, ReduceLROnPlateau

def get_data_loaders(batch_size):
    data_transform = Compose([ToTensor(), Normalize((0.1307,), (0.3081,))])
    train_mnist_dataset = MNIST(download=True, root="mnist_data",
                                transform=data_transform, train=True)
    val_mnist_dataset = MNIST(download=False, root="mnist_data",
                              transform=data_transform, train=False)
    train_loader = DataLoader(train_mnist_dataset,
                              batch_size=batch_size, shuffle=True)
    val_loader = DataLoader(val_mnist_dataset,
                            batch_size=batch_size * 2, shuffle=False)
    return train_loader, val_loader

class TimmModel(argus.Model):
    nn_module = timm.create_model

if __name__ == "__main__":
    train_loader, val_loader = get_data_loaders(batch_size=256)

    params = {
        'nn_module': {
            'model_name': 'tf_efficientnet_b0_ns',
            'pretrained': False,
            'num_classes': 10,
            'in_chans': 1,
            'drop_rate': 0.2,
            'drop_path_rate': 0.2
        'optimizer': ('Adam', {'lr': 0.01}),
        'loss': 'CrossEntropyLoss',
        'device': 'cuda'

    model = TimmModel(params)

    callbacks = [
        MonitorCheckpoint(dir_path='mnist', monitor='val_accuracy', max_saves=3),
        EarlyStopping(monitor='val_accuracy', patience=9),
        ReduceLROnPlateau(monitor='val_accuracy', factor=0.5, patience=3)

More examples you can find here.

Why this name, Argus?

The library name is a reference to a planet from World of Warcraft. Argus is the original homeworld of the eredar (a race of supremely talented magic-wielders), now located within the Twisting Nether. It was once described as a utopian world whose inhabitants were both vastly intelligent and highly gifted in magic. It has since been twisted by demonic, chaotic energies and became the stronghold and homeworld of the Burning Legion.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytorch-argus-1.0.0.tar.gz (28.9 kB view hashes)

Uploaded source

Built Distribution

pytorch_argus-1.0.0-py3-none-any.whl (34.1 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page