Developer tools for machine learning

Experiment tracking, model optimization, and dataset versioning

Request a demoCreate a free account
Central dashboard
A system of record for your model results
Add a few lines to your script, and each time you train a new version of your model, you'll see a new experiment stream live to your dashboard.
Central Dashboard
Fast integration
Set up your code in 5 minutes
Add a few lines to your script to start logging results. Our lightweight integration works with any Python script. See the docs →

import torch
import torch.nn as nn

import wandb
wandb.init(project="pedestrian-detection")

# Log any metric from your training script
wandb.log({"acc": accuracy, "val_acc": val_accuracy})

Collaborative reports
Share high level updates and detailed work logs
It's never been easier to share updates with your coworkers. Explain how your model works, show graphs of how your model versions improved, discuss bugs, and demonstrate progress towards milestones.

See an example report →
Conclusion
Hyperparameter sweeps
Try dozens of model versions quickly
Optimize models with our massively scalable hyperparameter search tool. Sweeps are lightweight, fast to set up, and plug in to your existing infrastructure for running models.
Hyperparameter Sweeps
Reproducible models
Quickly find and re-run previous models
Save everything you need to reproduce models later— the latest git commit, hyperparameters, model weights, and even sample test predictions. You can save experiment files directly to W&B or store pointers to your own storage.
Reproducible Models
System metrics
CPU and GPU usage across runs
Visualize live metrics like GPU utilization to identify training bottlenecks and avoid wasting expensive resources.
GPU utilization
Visualize predictions
Debug performance in real time
Log model predictions to see how your model is performing, and identify problem areas during training. We support rich media including images, video, audio, and 3D objects.
Visualize Predictions
Lightweight integrations
# Flexible integration for any Python script
import wandb

# 1. Start a W&B run
wandb.init(project='gpt3')

# 2. Save model inputs and hyperparameters
config = wandb.config
config.learning_rate = 0.01

# Model training here

# 3. Log metrics over time to visualize performance

wandb.log({"loss": loss})
import wandb

# 1. Start a W&B run
wandb.init(project='gpt3')

# 2. Save model inputs and hyperparameters
config = wandb.config
config.learning_rate = 0.01

# Model training here

# 3. Log metrics over time to visualize performance
with tf.Session() as sess:
  # ...
  wandb.tensorflow.log(tf.summary.merge_all())
import wandb

# 1. Start a new run
wandb.init(project="gpt-3")

# 2. Save model inputs and hyperparameters
config = wandb.config
config.learning_rate = 0.01

# 3. Log gradients and model parameters
wandb.watch(model)
for batch_idx, (data, target) in enumerate(train_loader):
  ...  
  if batch_idx % args.log_interval == 0:      
    # 4. Log metrics to visualize performance
    wandb.log({"loss": loss})
import wandb
from wandb.keras import WandbCallback

# 1. Start a new run
wandb.init(project="gpt-3")

# 2. Save model inputs and hyperparameters
config = wandb.config
config.learning_rate = 0.01

... Define a model

# 3. Log layer dimensions and metrics over time
model.fit(X_train, y_train, validation_data=(X_test, y_test),
callbacks=[WandbCallback()])
import wandb
wandb.init(project="visualize-sklearn")

# Model training here

# Log classifier visualizations
wandb.sklearn.plot_classifier(clf, X_train, X_test, y_train, y_test, y_pred, y_probas, labels, model_name='SVC', feature_names=None)

# Log regression visualizations
wandb.sklearn.plot_regressor(reg, X_train, X_test, y_train, y_test,  model_name='Ridge')

# Log clustering visualizations
wandb.sklearn.plot_clusterer(kmeans, X_train, cluster_labels, labels=None, model_name='KMeans')
# 1. Install the wandb library
pip install wandb

# 2. Run a script with the Trainer, which automatically logs losses, evaluation metrics, model topology and gradients
python run_glue.py \
 --model_name_or_path bert-base-uncased \
 --task_name MRPC \
 --data_dir $GLUE_DIR/$TASK_NAME \
 --do_train \
 --evaluate_during_training \
 --max_seq_length 128 \
 --per_gpu_train_batch_size 32 \
 --learning_rate 2e-5 \
 --num_train_epochs 3 \
 --output_dir /tmp/$TASK_NAME/ \
 --overwrite_output_dir \
 --logging_steps 50
import wandb

# 1. Start a new run
wandb.init(project="visualize-models", name="xgboost")

# 2. Add the callback
bst = xgboost.train(param, xg_train, num_round, watchlist, callbacks=[wandb.xgboost.wandb_callback()])

# Get predictions
pred = bst.predict(xg_test)
import wandb
import numpy as np
import xgboost as xgb

# 1. Start a W&B run
wandb.init(project="visualize-models", name="xgboost")

# 2. Add the wandb callback
bst = gbm = lgb.train(params,
               lgb_train,
               num_boost_round=20,
               valid_sets=lgb_eval,
               valid_names=('validation'),
               callbacks=[wandb.lightgbm.callback()])

# Get prediction
pred = bst.predict(xg_test)
import wandb
fastai2.callback.wandb import WandbCallback

# 1. Start a new run
wandb.init(project="gpt-3")

# 2. Automatically log model metrics
learn.fit(..., cbs=WandbCallback())
Products
Lightweight, modular tools for your machine learning team
Dashboard
Machine learning experiment tracking
Sweeps
Hyperparameter search and model optimization
Artifacts
Dataset versioning and model management
Read the full interview with Peter Welinder from OpenAI ➞

Example Projects

ML practitioners use Weights & Biases to track and visualize machine learning experiments, then write reports to explain and showcase their work.

OpenAI Jukebox
Exploring generative models that create music based on raw audio
Digital Lighting Effects
Use RGB-space geometry to generate digital painting lighting effects
Tracking Political Advertising
Fuzzy string search (or binary matching) on entity names from receipt PDFs
Visualize Model Predictions
Visualize images, videos, audio, tables, HTML, metrics, plots, 3d objects, and more
Semantic Segmentation
Semantic segmentation for scene parsing on Berkeley Deep Drive 100K
Debugging ML Models
How ML engineers at Latent Space quickly iterate on models with W&B reports
See the gallery →
Easily plug in to your workflow

"W&B was fundamental for launching our internal machine learning systems, as it enables collaboration across various teams."

Hamel Husain
GitHub

"W&B allows us to scale up insights from a single researcher to the entire team and from a single machine to thousands."

Wojciech Zaremba
Cofounder of OpenAI

"W&B is a key piece of our fast-paced, cutting-edge, large-scale research workflow: great flexibility, performance, and user experience."

Adrien Gaidon
Toyota Research

Never lose your progress again.

Get a demoCreate a free account