> For the complete documentation index, see [llms.txt](https://hypergan.gitbook.io/hypergan/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hypergan.gitbook.io/hypergan/components/trainhook.md).

# Train Hook

<https://github.com/HyperGAN/HyperGAN/tree/master/hypergan/train_hooks>

## Access

```python
gan.trainer.train_hooks # => [...]
```

Train hooks are setup and invoked by the trainer.

## Events

Override these methods to change the train loop

```python
before_step(step, feed_dict)
after_step(step, feed_dict)
after_create()
gradients(d_grads, g_grads)
```

### before\_step(feed\_dict)

### after\_step(feed\_dict)

Executed before/after the step takes place. `feed_dict` is what is being sent to the graph during the training step.

### after\_create()

Ran after the trainer is created.

### gradients(d\_grads, g\_grads)

Refines the gradients before they are applied to the optimizer.
