def test_logger(tmpdir): logger_1 = Logger('test', seed=1, results_dir=tmpdir) logger_2 = Logger('test', seed=2, results_dir=tmpdir) for i in range(3): logger_1.log_numpy(a=i, b=2 * i + 1) logger_2.log_numpy(a=2 * i + 1, b=i) a_1 = np.load(str(tmpdir / 'test' / 'a-1.npy')) a_2 = np.load(str(tmpdir / 'test' / 'a-2.npy')) b_1 = np.load(str(tmpdir / 'test' / 'b-1.npy')) b_2 = np.load(str(tmpdir / 'test' / 'b-2.npy')) assert np.array_equal(a_1, np.arange(3)) assert np.array_equal(b_2, np.arange(3)) assert np.array_equal(a_1, b_2) assert np.array_equal(b_1, a_2) logger_1_bis = Logger('test', append=True, seed=1, results_dir=tmpdir) logger_1_bis.log_numpy(a=3, b=7) a_1 = np.load(str(tmpdir / 'test' / 'a-1.npy')) b_2 = np.load(str(tmpdir / 'test' / 'b-2.npy')) assert np.array_equal(a_1, np.arange(4)) assert np.array_equal(b_2, np.arange(3))
logger.epoch_info(0, J=J, R=R, any_label='any value') for i in trange(epochs): # Here some learning core.learn(n_steps=100, n_steps_per_fit=1) sleep(0.5) dataset = core.evaluate(n_steps=100) sleep(0.5) J = np.mean(compute_J(dataset, mdp.info.gamma)) # Discounted returns R = np.mean(compute_J(dataset)) # Undiscounted returns # Here logging epoch results to the console logger.epoch_info(i+1, J=J, R=R) # Logging the data in J.npy and E.npy logger.log_numpy(J=J, R=R) # Logging the best agent according to the best J logger.log_best_agent(agent, J) # Logging the last agent logger.log_agent(agent) # Log the last dataset logger.log_dataset(dataset) logger.info('Experiment terminated') # Loggers can also continue from previous logs results del logger # Delete previous logger new_logger = Logger('tutorial', results_dir='/tmp/logs',