class_docstr: Discretizes an **AttentionActionSpace**. The attention action space defines the actions
  as choosing sub-boxes in a given box. For example, consider an image of size 100x100, where the action is choosing
  a crop window of size 20x20 to attend to in the image. AttentionDiscretization allows discretizing the possible crop
  windows to choose into a finite number of options, and map a discrete action space into those crop windows.
  
  Warning! this will currently only work for attention spaces with 2 dimensions.
code: def validate_output_action_space(
      self, output_action_space: AttentionActionSpace
  ):
      if not isinstance(output_action_space, AttentionActionSpace):
          raise ValueError(
              "AttentionActionSpace discretization only works with an output space of type AttentionActionSpace. "
              "The given output space is {}".format(output_action_space)
          )
  
file_path: coach/rl_coach/filters/action/attention_discretization.py
imports: from typing import Union, List
  import numpy
  from rl_coach.filters.action.box_discretization import BoxDiscretization
  from rl_coach.filters.action.partial_discrete_action_space_map import PartialDiscreteActionSpaceMap
  from rl_coach.spaces import AttentionActionSpace, BoxActionSpace, DiscreteActionSpace
label_desc: Use image node_id 2 for calling the AttentionDiscretization obj's underlying member method code with example usage: obj.validate_output_action_space(output_action_space) without return types