python - learning - tensorboard online
¿Cómo se leen los archivos del Tensorboard programáticamente? (2)
¿Cómo se puede escribir una secuencia de comandos python para leer los archivos de registro de Tensorboard, extraer la pérdida y la precisión y otros datos numéricos, sin tensorboard --logdir=...
GUI tensorboard --logdir=...
?
Para finalizar la respuesta del usuario1501961, puede simplemente exportar la lista de escalares a un archivo csv fácilmente con pandas pd.DataFrame(ea.Scalars(''Loss)).to_csv(''Loss.csv'')
Puede usar las clases o secuencias de comandos de Python de TensorBoard para extraer los datos:
¿Cómo puedo exportar datos desde TensorBoard?
Si desea exportar datos para visualizar en otro lugar (por ejemplo, iPython Notebook), eso también es posible. Puede depender directamente de las clases subyacentes que TensorBoard usa para cargar datos:
python/summary/event_accumulator.py
(para cargar datos desde una única ejecución) opython/summary/event_multiplexer.py
(para cargar datos de múltiples ejecuciones y conservarlo). organizado). Estas clases cargan grupos de archivos de eventos, descartan datos que quedaron "huérfanos" por fallas de TensorFlow y organizan los datos por etiqueta.Como otra opción, hay un script (
tensorboard/scripts/serialize_tensorboard.py
) que cargará un logdir como lo hace TensorBoard, pero escribe todos los datos en el disco como json en lugar de iniciar un servidor. Esta secuencia de comandos está configurada para hacer "backends de TensorBoard falsos" para la prueba, por lo que es un poco difícil en los bordes.
Usando EventAccumulator
:
In [1]: from tensorflow.python.summary import event_accumulator
In [2]: ea = event_accumulator.EventAccumulator(''events.out.tfevents.x.ip-x-x-x-x'',
...: size_guidance={ # see below regarding this argument
...: event_accumulator.COMPRESSED_HISTOGRAMS: 500,
...: event_accumulator.IMAGES: 4,
...: event_accumulator.AUDIO: 4,
...: event_accumulator.SCALARS: 0,
...: event_accumulator.HISTOGRAMS: 1,
...: })
In [3]: ea.Reload() # loads events from file
Out[3]: <tensorflow.python.summary.event_accumulator.EventAccumulator at 0x7fdbe5ff59e8>
In [4]: ea.Tags()
Out[4]:
{''audio'': [],
''compressedHistograms'': [],
''graph'': True,
''histograms'': [],
''images'': [],
''run_metadata'': [],
''scalars'': [''Loss'', ''Epsilon'', ''Learning_rate'']}
In [5]: ea.Scalars(''Loss'')
Out[5]:
[ScalarEvent(wall_time=1481232633.080754, step=1, value=1.6365480422973633),
ScalarEvent(wall_time=1481232633.2001867, step=2, value=1.2162202596664429),
ScalarEvent(wall_time=1481232633.3877788, step=3, value=1.4660096168518066),
ScalarEvent(wall_time=1481232633.5749283, step=4, value=1.2405034303665161),
ScalarEvent(wall_time=1481232633.7419815, step=5, value=0.897326648235321),
...]
size_guidance: Information on how much data the EventAccumulator should
store in memory. The DEFAULT_SIZE_GUIDANCE tries not to store too much
so as to avoid OOMing the client. The size_guidance should be a map
from a `tagType` string to an integer representing the number of
items to keep per tag for items of that `tagType`. If the size is 0,
all events are stored.