Escreva eventos de tensorboard com chamada de função simples.
A versão atual (v2.6.2.2) é testada no ANACONDA3, com Pytorch 1.11.0 / Torchvision 0.12 / Tensorboard 2.9.0.
Suporte scalar , image , figure , histogram , audio , text , graph , onnx_graph , embedding , pr_curve , mesh , hyper-parameters e resumos video .
Perguntas frequentes
pip install tensorboardX
ou construir a partir da fonte:
pip install 'git+https://github.com/lanpa/tensorboardX'
Opcionalmente, você pode instalar crc32c para acelerar.
pip install crc32c
A partir do TensorboardX 2.1, você precisa instalar soundfile para a função add_audio() (aceleração 200x).
pip install soundfile
python examples/demo.pytensorboard --logdir runs # demo.py
import torch
import torchvision . utils as vutils
import numpy as np
import torchvision . models as models
from torchvision import datasets
from tensorboardX import SummaryWriter
resnet18 = models . resnet18 ( False )
writer = SummaryWriter ()
sample_rate = 44100
freqs = [ 262 , 294 , 330 , 349 , 392 , 440 , 440 , 440 , 440 , 440 , 440 ]
for n_iter in range ( 100 ):
dummy_s1 = torch . rand ( 1 )
dummy_s2 = torch . rand ( 1 )
# data grouping by `slash`
writer . add_scalar ( 'data/scalar1' , dummy_s1 [ 0 ], n_iter )
writer . add_scalar ( 'data/scalar2' , dummy_s2 [ 0 ], n_iter )
writer . add_scalars ( 'data/scalar_group' , { 'xsinx' : n_iter * np . sin ( n_iter ),
'xcosx' : n_iter * np . cos ( n_iter ),
'arctanx' : np . arctan ( n_iter )}, n_iter )
dummy_img = torch . rand ( 32 , 3 , 64 , 64 ) # output from network
if n_iter % 10 == 0 :
x = vutils . make_grid ( dummy_img , normalize = True , scale_each = True )
writer . add_image ( 'Image' , x , n_iter )
dummy_audio = torch . zeros ( sample_rate * 2 )
for i in range ( x . size ( 0 )):
# amplitude of sound should in [-1, 1]
dummy_audio [ i ] = np . cos ( freqs [ n_iter // 10 ] * np . pi * float ( i ) / float ( sample_rate ))
writer . add_audio ( 'myAudio' , dummy_audio , n_iter , sample_rate = sample_rate )
writer . add_text ( 'Text' , 'text logged at step:' + str ( n_iter ), n_iter )
for name , param in resnet18 . named_parameters ():
writer . add_histogram ( name , param . clone (). cpu (). data . numpy (), n_iter )
# needs tensorboard 0.4RC or later
writer . add_pr_curve ( 'xoxo' , np . random . randint ( 2 , size = 100 ), np . random . rand ( 100 ), n_iter )
dataset = datasets . MNIST ( 'mnist' , train = False , download = True )
images = dataset . test_data [: 100 ]. float ()
label = dataset . test_labels [: 100 ]
features = images . view ( 100 , 784 )
writer . add_embedding ( features , metadata = label , label_img = images . unsqueeze ( 1 ))
# export scalar data to JSON for external processing
writer . export_scalars_to_json ( "./all_scalars.json" )
writer . close ()
O TensorboardX agora suporta o log diretamente para o cometa. O Comet é uma solução baseada em nuvem gratuita que permite rastrear, comparar e explicar automaticamente seus experimentos. Ele adiciona muitas funcionalidades no topo do Tensorboard, como gerenciamento de dados, experiências difíceis, vendo o código que gerou os resultados e muito mais.
Isso funciona fora da caixa e apenas exige uma linha adicional de código. Veja um exemplo de código completo neste notebook Colab

Para adicionar mais carrapatos para o controle deslizante (mostre mais histórico de imagens), verifique #44 ou TensorFlow/Tensorboard #1138