1torch.utils.tensorboard 2=================================== 3.. automodule:: torch.utils.tensorboard 4 5Before going further, more details on TensorBoard can be found at 6https://www.tensorflow.org/tensorboard/ 7 8Once you've installed TensorBoard, these utilities let you log PyTorch models 9and metrics into a directory for visualization within the TensorBoard UI. 10Scalars, images, histograms, graphs, and embedding visualizations are all 11supported for PyTorch models and tensors as well as Caffe2 nets and blobs. 12 13The SummaryWriter class is your main entry to log data for consumption 14and visualization by TensorBoard. For example: 15 16.. code:: python 17 18 19 import torch 20 import torchvision 21 from torch.utils.tensorboard import SummaryWriter 22 from torchvision import datasets, transforms 23 24 # Writer will output to ./runs/ directory by default 25 writer = SummaryWriter() 26 27 transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))]) 28 trainset = datasets.MNIST('mnist_train', train=True, download=True, transform=transform) 29 trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True) 30 model = torchvision.models.resnet50(False) 31 # Have ResNet model take in grayscale rather than RGB 32 model.conv1 = torch.nn.Conv2d(1, 64, kernel_size=7, stride=2, padding=3, bias=False) 33 images, labels = next(iter(trainloader)) 34 35 grid = torchvision.utils.make_grid(images) 36 writer.add_image('images', grid, 0) 37 writer.add_graph(model, images) 38 writer.close() 39 40This can then be visualized with TensorBoard, which should be installable 41and runnable with:: 42 43 pip install tensorboard 44 tensorboard --logdir=runs 45 46 47Lots of information can be logged for one experiment. To avoid cluttering 48the UI and have better result clustering, we can group plots by naming them 49hierarchically. For example, "Loss/train" and "Loss/test" will be grouped 50together, while "Accuracy/train" and "Accuracy/test" will be grouped separately 51in the TensorBoard interface. 52 53.. code:: python 54 55 56 from torch.utils.tensorboard import SummaryWriter 57 import numpy as np 58 59 writer = SummaryWriter() 60 61 for n_iter in range(100): 62 writer.add_scalar('Loss/train', np.random.random(), n_iter) 63 writer.add_scalar('Loss/test', np.random.random(), n_iter) 64 writer.add_scalar('Accuracy/train', np.random.random(), n_iter) 65 writer.add_scalar('Accuracy/test', np.random.random(), n_iter) 66 67 68Expected result: 69 70.. image:: _static/img/tensorboard/hier_tags.png 71 :scale: 75 % 72 73| 74| 75 76.. currentmodule:: torch.utils.tensorboard.writer 77 78.. autoclass:: SummaryWriter 79 80 .. automethod:: __init__ 81 .. automethod:: add_scalar 82 .. automethod:: add_scalars 83 .. automethod:: add_histogram 84 .. automethod:: add_image 85 .. automethod:: add_images 86 .. automethod:: add_figure 87 .. automethod:: add_video 88 .. automethod:: add_audio 89 .. automethod:: add_text 90 .. automethod:: add_graph 91 .. automethod:: add_embedding 92 .. automethod:: add_pr_curve 93 .. automethod:: add_custom_scalars 94 .. automethod:: add_mesh 95 .. automethod:: add_hparams 96 .. automethod:: flush 97 .. automethod:: close 98