New Integration: Comet + Catalyst

We’re excited to announce another excellent and powerful integration with Comet—Catalyst! This integration allows you to leverage accelerated, PyTorch-based deep learning training pipelines within your experimentation workflows.

About Catalyst

Catalyst is a PyTorch framework for Deep Learning R&D. It focuses on reproducibility, rapid experimentation, and codebase reusability so you can create something new rather than write yet another train loop. The Catalyst library incorporates research best practices so users can focus on building models and not worry about writing boilerplate code.

About the Integration

Catalyst now ships with a dedicated CometLogger. With a slight modification (3 lines) of your Catalyst training code, you can now log metrics, hyperparameters, source code and much more from your runs to the Comet UI.

Once you’ve set up your account and configured your Comet API Key within your project, simply pass the CometLogger to your Catalyst Trainer and you’re good to go! You’ll then also be able to take advantage of Comet’s rich visualization capabilities

import comet_ml

import os
import torch
from torch import nn, optim
from torch.utils.data import DataLoader

from catalyst import dl
from catalyst.data import ToTensor
from catalyst.contrib.datasets import MNIST
from torch.utils.data import DataLoader


model = nn.Sequential(nn.Flatten(), nn.Linear(28 * 28, 10))
criterion = nn.CrossEntropyLoss()

logger = CometLogger()

hparams = {"lr": 1.0e-3, "batch_size": 32}
optimizer = optim.Adam(model.parameters(), lr=hparams["lr"])
loaders = {
    "train": DataLoader(
        MNIST(os.getcwd(), train=True, download=True, transform=ToTensor()),
        batch_size=hparams["batch_size"],
    ),
    "valid": DataLoader(
        MNIST(os.getcwd(), train=False, download=True, transform=ToTensor()),
        batch_size=hparams["batch_size"],
    ),
}

runner = dl.SupervisedRunner(
    input_key="features", output_key="logits", target_key="targets", loss_key="loss"
)
# model training
runner.train(
    model=model,
    criterion=criterion,
    optimizer=optimizer,
    loaders=loaders,
    hparams=hparams,
    num_epochs=1,
    callbacks=[
        dl.AccuracyCallback(
            input_key="logits", target_key="targets", topk_args=(1, 3, 5)
        ),
        dl.PrecisionRecallF1SupportCallback(
            input_key="logits", target_key="targets", num_classes=10
        ),
    ],
    logdir="./logs",
    valid_loader="valid",
    valid_metric="loss",
    minimize_valid_metric=True,
    verbose=True,
    load_best_on_end=True,
    loggers={"comet": logger},
)

Getting Started

Getting started with this integration is really easy—

The following resources should help you start logging Catalyst runs to Comet in no time:

  • Colab Notebook – Our Notebook is ready to run, but you can also create a copy if you’d like to modify it.
  • Catalyst GitHub Repo – Need a crash course on Catalyst? Check out this GitHub repo for the basics and a whole lot more.
  • A free Comet account: Building with Comet is absolutely free—unlimited public and private projects, 100GB of storage, hyperparameter search, and more.

Want to stay in the loop? Subscribe to the Comet Newsletter for weekly insights and perspective on the latest ML news, projects, and more.


It’s easy to get started

And it's free. Two things everyone loves.

CREATE A FREE ACCOUNT CONTACT SALES CONTACT SALES CREATE A FREE ACCOUNT