| # Background: PyTorch |
|
|
| As discussed in our |
| [machine learning background page](Background-Machine-Learning.md), many of the |
| algorithms we provide in the ML-Agents Toolkit leverage some form of deep |
| learning. More specifically, our implementations are built on top of the |
| open-source library [PyTorch](https://pytorch.org/). In this page we |
| provide a brief overview of PyTorch and TensorBoard |
| that we leverage within the ML-Agents Toolkit. |
|
|
| ## PyTorch |
|
|
| [PyTorch](https://pytorch.org/) is an open source library for |
| performing computations using data flow graphs, the underlying representation of |
| deep learning models. It facilitates training and inference on CPUs and GPUs in |
| a desktop, server, or mobile device. Within the ML-Agents Toolkit, when you |
| train the behavior of an agent, the output is a model (.onnx) file that you can |
| then associate with an Agent. Unless you implement a new algorithm, the use of |
| PyTorch is mostly abstracted away and behind the scenes. |
|
|
| ## TensorBoard |
|
|
| One component of training models with PyTorch is setting the values of |
| certain model attributes (called _hyperparameters_). Finding the right values of |
| these hyperparameters can require a few iterations. Consequently, we leverage a |
| visualization tool called |
| [TensorBoard](https://www.tensorflow.org/programmers_guide/summaries_and_tensorboard). |
| It allows the visualization of certain agent attributes (e.g. reward) throughout |
| training which can be helpful in both building intuitions for the different |
| hyperparameters and setting the optimal values for your Unity environment. We |
| provide more details on setting the hyperparameters in the |
| [Training ML-Agents](Training-ML-Agents.md) page. If you are unfamiliar with |
| TensorBoard we recommend our guide on |
| [using TensorBoard with ML-Agents](Using-Tensorboard.md) or this |
| [tutorial](https://github.com/dandelionmane/tf-dev-summit-tensorboard-tutorial). |
|
|