Je voulais un moyen d'afficher les graphiques maplotlib sur Tensorboard, alors j'y ai réfléchi.
Puisque les images peuvent être affichées sur Tensorboard, pourquoi ne pas afficher le tracé sous forme d'image? J'ai pensé.
Alors, je vais résumer la méthode.
Veuillez noter que la sortie du journal se fait via tensorboardX
.
Commencez par basculer le backend sur ʻAgg pour obtenir le tracé sous forme d'image avec matplotlib. Notez que le changement de backend doit être effectué avant ʻimport matplotlib.pyplot
.
import matplotlib as mpl
mpl.use('Agg')
Les données d'image du tracé peuvent être obtenues par la méthode suivante.
import matplot.pyplot as plt
import numpy as np
fig = plt.figure() #Plt lors de l'affichage répété.figure(0)Il est préférable de spécifier le chiffre avec etc.
#Une sorte d'intrigue
fig.canvas.draw() #Dessiner sur toile
plot_image = fig.canvas.renderer._renderer #Obtenir le tracé sous forme de données d'image
#tensorboardX est comme le canal d'abord, alors faites-le correspondre
plot_image_array = np.array(plot_image).transpose(2, 0, 1)
Tout ce que vous avez à faire est de sortir le journal avec tensorboard X
.
from tensorboardX import SummaryWriter
summary_writer = SummaryWriter(logdir='hoge') #Initialisation de l'écrivain
summary_writer.add_image('plot', plot_image_array) #Ajouter une image
c'est tout.
S'il vous plaît laissez-moi savoir s'il existe un autre bon moyen.
Recommended Posts