Écrivez des événements Tensorboard avec un appel de fonction simple.
La version actuelle (v2.6.2.2) est testée sur Anaconda3, avec Pytorch 1.11.0 / TorchVision 0.12 / Tensorboard 2.9.0.
Prise en charge scalar , image , de figure , histogram , audio , text , graph , onnx_graph , embedding , pr_curve , mesh , hyper-parameters et des résumés video .
FAQ
pip install tensorboardX
ou construire à partir de la source:
pip install 'git+https://github.com/lanpa/tensorboardX'
Vous pouvez éventuellement installer crc32c pour accélérer.
pip install crc32c
À partir de TensorBoardx 2.1, vous devez installer soundfile pour la fonction add_audio() (SpeedUp 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 prend désormais en charge la journalisation directement vers la comète. Comet est une solution basée sur le cloud libre qui vous permet de suivre, comparer et expliquer automatiquement vos expériences. Il ajoute beaucoup de fonctionnalités en plus de Tensorboard tels que la gestion des ensembles de données, la difficulté des expériences, la voyage du code qui a généré les résultats et plus encore.
Cela fonctionne hors de la boîte et nécessite simplement une ligne de code supplémentaire. Voir un exemple de code complet dans ce cahier Colab

Pour ajouter plus de tiques pour le curseur (afficher plus d'historique d'image), vérifiez # 44 ou TensorFlow / Tensorboard # 1138