Escriba eventos de TensorBoard con una llamada de función simple.
La versión actual (v2.6.2.2) se prueba en Anaconda3, con Pytorch 1.11.0 / TorchVision 0.12 / Tensorboard 2.9.0.
Soporte scalar , image , figure , histogram , audio , text , graph , onnx_graph , embedding , pr_curve , mesh , hyper-parameters Y SUMPRADOS video .
Preguntas frecuentes
pip install tensorboardX
o construir desde la fuente:
pip install 'git+https://github.com/lanpa/tensorboardX'
Opcionalmente, puede instalar crc32c para acelerar.
pip install crc32c
A partir de TensorBoardx 2.1, debe instalar soundfile para la función add_audio() (aceleración de 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 ()
TensorBoardX ahora admite registrarse directamente en Comet. Comet es una solución gratuita basada en la nube que le permite rastrear, comparar y explicar automáticamente sus experimentos. Agrega mucha funcionalidad además de Tensorboard, como la gestión del conjunto de datos, los experimentos difundidos, viendo el código que generó los resultados y más.
Esto funciona fuera de la caja y solo requiere una línea de código adicional. Vea un ejemplo de código completo en este cuaderno de Colab

Para agregar más tics para el control deslizante (mostrar más historial de imágenes), verifique #44 o TensorFlow/Tensorboard #1138