WandbCallback class to track experiments, log metrics, and visualize model performance during training. This page shows how to set up authentication, add the callback to your training loop, and configure logging for both single-process and distributed training. Check out these interactive docs with examples for more details.
Sign up and create an API key
An API key authenticates your machine to W&B. You can generate an API key from your user profile.For a more streamlined approach, go to User Settings and create an API key. Copy the API key immediately and save it in a secure location such as a password manager.
- Click your user profile icon in the upper right corner.
- Select User Settings, then scroll to the API Keys section.
Install the wandb library and log in
To install the wandb library locally and log in:
- Command Line
- Python
- Python notebook
-
Set the
WANDB_API_KEYenvironment variable to your API key. Replace values enclosed in<>with your own: -
Install the
wandblibrary and log in.
Add the WandbCallback to the learner or fit method
To start logging your fastai training runs to W&B, attach the WandbCallback to either a single fit call or the learner itself.
If you use version 1 of fastai, refer to the fastai v1 docs.
WandbCallback arguments
Use the following arguments to control whatWandbCallback logs during training:
For custom workflows, you can manually log your datasets and models:
log_dataset(path, name=None, metadata={})log_model(path, name=None, metadata={})
Distributed training
fastai supports distributed training by using the context manager distrib_ctx. W&B supports this automatically and enables you to track your multi-GPU experiments without additional configuration. The following sections describe how to integrate W&B with distributed training and how to limit logging to the main process.
Review this minimal example:
- Script
- Python notebook
Log only on the main process
In the previous examples, W&B launches one run per process. At the end of the training, you have two runs. This can sometimes be confusing, and you may want to log only on the main process. To do so, you must manually detect which process you are in and avoid creating runs (callingwandb.init() in all other processes).
- Script
- Python notebook
Examples
For end-to-end demonstrations of the fastai integration, see the following references:- Visualize, track, and compare fastai models: A documented walkthrough.
- Image segmentation on CamVid: A sample use case of the integration.