Tensorboard events файл в matplotlib
При обучении tensorflow на kaggle возникла проблема в том, что tensorboard никак не запускался, поэтому чтобы посмотреть как шло обучение можно с помощью следующего метода. Сначала импортируются библиотеки:
import pandas as pd
from matplotlib import pyplot as plt
import tensorflow as tf
import struct
from tensorflow.python.summary.summary_iterator import summary_iterator
Смотрим общую информацию по интересующему тегу (В данном случае Loss/total_loss, использованный для object detection). В принципе, если эта информация не нужна, то можно не делать этот пункт. Обращаемся к файлу events, который остается после обучения.
%load_ext tensorboard
%tensorboard --inspect --event_file=../input/cots3-tf/cots_efficientdet_d0/train/events.out.tfevents.1639741910.c99baf65a5e4.274.0.v2 --tag=Loss/total_loss
Результат:
The tensorboard extension is already loaded. To reload it, use:
%reload_ext tensorboard
ERROR: Failed to launch TensorBoard (exited with 0).
Contents of stdout:
======================================================================
Processing event files... (this can take a few minutes)
======================================================================
Event statistics for tag Loss/total_loss in ../input/cots3-tf/cots_efficientdet_d0/train/events.out.tfevents.1639741910.c99baf65a5e4.274.0.v2:
tensor
first_step 100
last_step 20000
max_step 20000
min_step 100
num_steps 200
outoforder_steps [
======================================================================
Заполняем список значениями loss для каждого шага:
total_loss=[
for e in summary_iterator("../input/cots3-tf/cots_efficientdet_d0/train/events.out.tfevents.1639741910.c99baf65a5e4.274.0.v2"):
for v in e.summary.value:
if v.tag == 'Loss/total_loss':
total_loss.append(struct.unpack('f', v.tensor.tensor_content)[0])
Ну и собственно выводим loss:
fig, ax = plt.subplots(1, 1, figsize=(30,15),facecolor='gray')
plt.title(u'Loss/total_loss', color = 'black', fontsize = 'x-large')
lines = ax.plot(total_loss)
plt.draw()