def _log_summary(self):
    "\n\t\t\tPrint to stdout what we've logged so far in the most recent batch.\n\n\t\t\tParameters:\n\t\t\t\tNone\n\n\t\t\tReturn:\n\t\t\t\tNone\n\t\t"
    t_so_far = self.logger['t_so_far']
    i_so_far = self.logger['i_so_far']
    avg_ep_lens = np.mean(self.logger['batch_lens'])
    avg_ep_rews = np.mean([np.sum(ep_rews) for ep_rews in self.logger['batch_rews']])
    avg_actor_loss = np.mean([losses.float().mean() for losses in self.logger['actor_losses']])
    avg_ep_infractions = np.mean([np.sum(ep_inf) for ep_inf in self.logger['batch_infractions']])
    actor_model = self.logger['actor_network']
    avg_ep_lens = str(round(avg_ep_lens, 2))
    avg_ep_rews = str(round(avg_ep_rews, 2))
    avg_ep_infractions = str(round(avg_ep_infractions, 2))
    avg_actor_loss = str(round(avg_actor_loss, 5))
    writer.add_scalar('Average Episodic Return', int(float(avg_ep_rews)), t_so_far)
    writer.add_scalar('Average actor Loss', int(float(avg_actor_loss)), t_so_far)
    writer.add_scalar('Average Infractions', int(float(avg_ep_infractions)), t_so_far)
    for (name, param) in actor_model.named_parameters():
        if ('weight' in name):
            writer.add_histogram(name, param.detach().numpy(), t_so_far)
    print(flush=True)
    print(f'-------------------- Iteration #{i_so_far} --------------------', flush=True)
    print(f'Average Episodic Length: {avg_ep_lens}', flush=True)
    print(f'Average Episodic Return: {avg_ep_rews}', flush=True)
    print(f'Average Episodic Infractions : {avg_ep_infractions}', flush=True)
    print(f'Average Loss: {avg_actor_loss}', flush=True)
    print(f'Timesteps So Far: {t_so_far}', flush=True)
    print(f'------------------------------------------------------', flush=True)
    print(flush=True)
    self.logger['batch_lens'] = []
    self.logger['batch_rews'] = []
    self.logger['actor_losses'] = []
Print to stdout what we've logged so far in the most recent batch.

Parameters:
        None

Return:
        None
def _log_summary(self):
    "\n\t\t\tPrint to stdout what we've logged so far in the most recent batch.\n\n\t\t\tParameters:\n\t\t\t\tNone\n\n\t\t\tReturn:\n\t\t\t\tNone\n\t\t"
    t_so_far = self.logger['t_so_far']
    i_so_far = self.logger['i_so_far']
    avg_ep_lens = np.mean(self.logger['batch_lens'])
    avg_ep_rews = np.mean([np.sum(ep_rews) for ep_rews in self.logger['batch_rews']])
    avg_actor_loss = np.mean([losses.float().mean() for losses in self.logger['actor_losses']])
    avg_ep_infractions = np.mean([np.sum(ep_inf) for ep_inf in self.logger['batch_infractions']])
    actor_model = self.logger['actor_network']
    avg_ep_lens = str(round(avg_ep_lens, 2))
    avg_ep_rews = str(round(avg_ep_rews, 2))
    avg_ep_infractions = str(round(avg_ep_infractions, 2))
    avg_actor_loss = str(round(avg_actor_loss, 5))
    writer.add_scalar('Average Episodic Return', int(float(avg_ep_rews)), t_so_far)
    writer.add_scalar('Average actor Loss', int(float(avg_actor_loss)), t_so_far)
    writer.add_scalar('Average Infractions', int(float(avg_ep_infractions)), t_so_far)
    for (name, param) in actor_model.named_parameters():
        if ('weight' in name):
            writer.add_histogram(name, param.detach().numpy(), t_so_far)
    print(flush=True)
    print(f'-------------------- Iteration #{i_so_far} --------------------', flush=True)
    print(f'Average Episodic Length: {avg_ep_lens}', flush=True)
    print(f'Average Episodic Return: {avg_ep_rews}', flush=True)
    print(f'Average Episodic Infractions : {avg_ep_infractions}', flush=True)
    print(f'Average Loss: {avg_actor_loss}', flush=True)
    print(f'Timesteps So Far: {t_so_far}', flush=True)
    print(f'------------------------------------------------------', flush=True)
    print(flush=True)
    self.logger['batch_lens'] = []
    self.logger['batch_rews'] = []
    self.logger['actor_losses'] = []