> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# fastai v1

> Use the W&B callback with fastai v1 to log model topology, losses, metrics, weights, gradients, and predictions.

<Note>
  This documentation is for fastai v1.
  If you use the current version of fastai, see the [fastai page](../).
</Note>

For fastai v1 scripts, W\&B provides a callback that automatically logs model topology, losses, metrics, weights, gradients, sample predictions, and the best trained model.

```python theme={null}
import wandb
from wandb.fastai import WandbCallback

wandb.init()

learn = cnn_learner(data, model, callback_fns=WandbCallback)
learn.fit(epochs)
```

You can configure what data to log through the callback constructor.

```python theme={null}
from functools import partial

learn = cnn_learner(
    data, model, callback_fns=partial(WandbCallback, input_type="images")
)
```

You can also use `WandbCallback` only when starting training. In this case, you must instantiate it.

```python theme={null}
learn.fit(epochs, callbacks=WandbCallback(learn))
```

You can also pass custom parameters at that stage.

```python theme={null}
learn.fit(epochs, callbacks=WandbCallback(learn, input_type="images"))
```

## Example code

The following examples show how the integration works:

* [Classify Simpsons characters](https://github.com/borisdayma/simpsons-fastai): A demo to track and compare fastai models. See the [step-by-step guide](https://app.wandb.ai/jxmorris12/huggingface-demo/reports/A-Step-by-Step-Guide-to-Tracking-Hugging-Face-Model-Performance--VmlldzoxMDE2MTU).
* [Semantic segmentation with fastai](https://github.com/borisdayma/semantic-segmentation): Optimize neural networks on self-driving cars.

## Options

The `WandbCallback()` class supports several options:

| Keyword argument  | Default     | Description                                                                                                |
| ----------------- | ----------- | ---------------------------------------------------------------------------------------------------------- |
| `learn`           | N/A         | The fast.ai learner to hook.                                                                               |
| `save_model`      | `True`      | Save the model if it's improved at each step. It also loads the best model at the end of training.         |
| `mode`            | `auto`      | `min`, `max`, or `auto`. How to compare the training metric specified in `monitor` between steps.          |
| `monitor`         | `None`      | Training metric used to measure performance for saving the best model. `None` defaults to validation loss. |
| `log`             | `gradients` | `gradients`, `parameters`, `all`, or `None`. Losses and metrics are always logged.                         |
| `input_type`      | `None`      | `images` or `None`. Used to display sample predictions.                                                    |
| `validation_data` | `None`      | Data used for sample predictions if `input_type` is set.                                                   |
| `predictions`     | `36`        | Number of predictions to make if `input_type` is set and `validation_data` is `None`.                      |
| `seed`            | `12345`     | Initialize random generator for sample predictions if `input_type` is set and `validation_data` is `None`. |
