mirror of
https://github.com/gryf/coach.git
synced 2025-12-18 11:40:18 +01:00
RL in Large Discrete Action Spaces - Wolpertinger Agent (#394)
* Currently this is specific to the case of discretizing a continuous action space. Can easily be adapted to other case by feeding the kNN otherwise, and removing the usage of a discretizing output action filter
This commit is contained in:
@@ -62,7 +62,9 @@ class AdditiveNoise(ContinuousActionExplorationPolicy):
|
||||
self.evaluation_noise = evaluation_noise
|
||||
self.noise_as_percentage_from_action_space = noise_as_percentage_from_action_space
|
||||
|
||||
if not isinstance(action_space, BoxActionSpace):
|
||||
if not isinstance(action_space, BoxActionSpace) and \
|
||||
(hasattr(action_space, 'filtered_action_space') and not
|
||||
isinstance(action_space.filtered_action_space, BoxActionSpace)):
|
||||
raise ValueError("Additive noise exploration works only for continuous controls."
|
||||
"The given action space is of type: {}".format(action_space.__class__.__name__))
|
||||
|
||||
|
||||
@@ -115,5 +115,8 @@ class ContinuousActionExplorationPolicy(ExplorationPolicy):
|
||||
"""
|
||||
:param action_space: the action space used by the environment
|
||||
"""
|
||||
assert isinstance(action_space, BoxActionSpace) or isinstance(action_space, GoalsSpace)
|
||||
assert isinstance(action_space, BoxActionSpace) or \
|
||||
(hasattr(action_space, 'filtered_action_space') and
|
||||
isinstance(action_space.filtered_action_space, BoxActionSpace)) or \
|
||||
isinstance(action_space, GoalsSpace)
|
||||
super().__init__(action_space)
|
||||
|
||||
Reference in New Issue
Block a user