# optim.callbacks { #tvboptim.optim.callbacks }
`optim.callbacks`
## Classes
| Name | Description |
| --- | --- |
| [AbstractCallback](#tvboptim.optim.callbacks.AbstractCallback) | |
| [DefaultPrintCallback](#tvboptim.optim.callbacks.DefaultPrintCallback) | |
| [MultiCallback](#tvboptim.optim.callbacks.MultiCallback) | |
| [PrintGlobalGradsCallback](#tvboptim.optim.callbacks.PrintGlobalGradsCallback) | |
| [PrintGradsCallback](#tvboptim.optim.callbacks.PrintGradsCallback) | |
| [PrintParameterCallback](#tvboptim.optim.callbacks.PrintParameterCallback) | |
| [SaveBestSeenCallback](#tvboptim.optim.callbacks.SaveBestSeenCallback) | |
| [SavingCallback](#tvboptim.optim.callbacks.SavingCallback) | |
| [SavingLossCallback](#tvboptim.optim.callbacks.SavingLossCallback) | |
| [SavingParametersCallback](#tvboptim.optim.callbacks.SavingParametersCallback) | |
| [StopConvergenceCallback](#tvboptim.optim.callbacks.StopConvergenceCallback) | Stop fitting if no improvement was seen for `patience` number of iterations. Improvement is defined by loss_new < loss_best - `min_delta`. |
| [StopLossCallback](#tvboptim.optim.callbacks.StopLossCallback) | |
| [StopTimeCallback](#tvboptim.optim.callbacks.StopTimeCallback) | |
| [TimingCallback](#tvboptim.optim.callbacks.TimingCallback) | |
### AbstractCallback { #tvboptim.optim.callbacks.AbstractCallback }
```python
optim.callbacks.AbstractCallback(every=1)
```
### DefaultPrintCallback { #tvboptim.optim.callbacks.DefaultPrintCallback }
```python
optim.callbacks.DefaultPrintCallback(every=1)
```
### MultiCallback { #tvboptim.optim.callbacks.MultiCallback }
```python
optim.callbacks.MultiCallback(callbacks, every=1)
```
### PrintGlobalGradsCallback { #tvboptim.optim.callbacks.PrintGlobalGradsCallback }
```python
optim.callbacks.PrintGlobalGradsCallback(every=1)
```
### PrintGradsCallback { #tvboptim.optim.callbacks.PrintGradsCallback }
```python
optim.callbacks.PrintGradsCallback(every=1)
```
### PrintParameterCallback { #tvboptim.optim.callbacks.PrintParameterCallback }
```python
optim.callbacks.PrintParameterCallback(every=1)
```
### SaveBestSeenCallback { #tvboptim.optim.callbacks.SaveBestSeenCallback }
```python
optim.callbacks.SaveBestSeenCallback(every=1, key='best', minimization=True)
```
### SavingCallback { #tvboptim.optim.callbacks.SavingCallback }
```python
optim.callbacks.SavingCallback(every=1, key='', save_fun=lambda *args: None)
```
### SavingLossCallback { #tvboptim.optim.callbacks.SavingLossCallback }
```python
optim.callbacks.SavingLossCallback(every=1, *args)
```
### SavingParametersCallback { #tvboptim.optim.callbacks.SavingParametersCallback }
```python
optim.callbacks.SavingParametersCallback(every=1, *args)
```
### StopConvergenceCallback { #tvboptim.optim.callbacks.StopConvergenceCallback }
```python
optim.callbacks.StopConvergenceCallback(every=1, patience=10, min_delta=0.001)
```
Stop fitting if no improvement was seen for `patience` number of iterations. Improvement is defined by loss_new < loss_best - `min_delta`.
### StopLossCallback { #tvboptim.optim.callbacks.StopLossCallback }
```python
optim.callbacks.StopLossCallback(every=1, stop_loss=0)
```
### StopTimeCallback { #tvboptim.optim.callbacks.StopTimeCallback }
```python
optim.callbacks.StopTimeCallback(every=1, time_limit=0)
```
### TimingCallback { #tvboptim.optim.callbacks.TimingCallback }
```python
optim.callbacks.TimingCallback(every=1, key='timing', *args)
```