Add observation_function for full custom control over the observation
Lets a game define how its state becomes an observation as a plain Python function (module:attr), used identically by GameEnvironment (training) and TrainedPolicy (inference) instead of two independently maintained encoding paths. Removes the egocentric/egocentric_player/ egocentric_radius flags — cropping is now something an observation_function does itself by calling egocentric_board(), and extras_size is discovered from one sampled observation instead of being configured via observe_state_sizes.
This commit is contained in:
@@ -351,6 +351,13 @@ engineering decisions live: what derived quantities should the agent
|
||||
see, and does giving it those values give it an advantage a human
|
||||
player would not have?
|
||||
|
||||
``character_set``/``observe_state`` cover the common cases, but
|
||||
sometimes you want full control over how the board becomes numbers — for
|
||||
example, cropping it to a window centered on the agent rather than always
|
||||
seeing the whole thing. ``observation_function`` (see :doc:`reference`) lets
|
||||
you write that transformation as ordinary code instead of a combination of
|
||||
flags.
|
||||
|
||||
Neural network architectures
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
Reference in New Issue
Block a user