Source code for gym_nethack.agents
import numpy as np
from libs.rl.core import Agent
[docs]class TestAgent(Agent):
'''A Keras-RL agent for purely heuristic policies, i.e., no learning done, no neural network model required.'''
def __init__(self, test_policy=None, **kwargs):
super(TestAgent, self).__init__(**kwargs)
self.policy = test_policy
self.compile()
[docs] def forward(self, observation, valid_action_indices):
if len(valid_action_indices) == 0:
action = None
else:
action = self.policy.select_action(q_values=None, valid_action_indices=valid_action_indices)
self.recent_action = action
self.recent_observation = observation
return action
[docs] def backward(self, reward, valid_action_indices, terminal):
metrics = [np.nan for _ in self.metrics_names]
return metrics
[docs] def compile(self):
self.compiled = True
@property
def policy(self):
return self.__policy
@policy.setter
def policy(self, policy):
self.__policy = policy
if policy is not None:
self.__policy._set_agent(self)