from __future__ import absolute_import from __future__ import division from __future__ import print_function from tensorboardX import SummaryWriter import numpy as np import pytest import unittest import tensorboardX.beholder as beholder_lib import tensorboardX.beholder.file_system_tools as fio from collections import namedtuple class BeholderTest(unittest.TestCase): def test_beholder(self): LOG_DIRECTORY = '/tmp/beholder-demo' tensor_and_name = namedtuple('tensor_and_name', 'tensor, name') fake_param = [tensor_and_name(np.random.randn(128, 768, 3), 'test' + str(i)) for i in range(5)] arrays = [tensor_and_name(np.random.randn(128, 768, 3), 'test' + str(i)) for i in range(5)] beholder = beholder_lib.Beholder(logdir=LOG_DIRECTORY) beholder.update( trainable=fake_param, arrays=arrays, frame=np.random.randn(128, 128), ) def test_beholder_video(self): LOG_DIRECTORY = '/tmp/beholder-demo-recording' tensor_and_name = namedtuple('tensor_and_name', 'tensor, name') fake_param = [tensor_and_name(np.random.randn(128, 768, 3), 'test' + str(i)) for i in range(5)] arrays = [tensor_and_name(np.random.randn(128, 768, 3), 'test' + str(i)) for i in range(5)] beholder = beholder_lib.Beholder(logdir=LOG_DIRECTORY) pkl = fio.read_pickle(LOG_DIRECTORY + '/plugins/beholder/config.pkl') pkl['is_recording'] = True fio.write_pickle(pkl, LOG_DIRECTORY + '/plugins/beholder/config.pkl') for i in range(3): if i == 2: pkl = fio.read_pickle(LOG_DIRECTORY + '/plugins/beholder/config.pkl') pkl['is_recording'] = False fio.write_pickle(pkl, LOG_DIRECTORY + '/plugins/beholder/config.pkl') beholder.update( trainable=fake_param, arrays=arrays, frame=np.random.randn(128, 128), )