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 get_unfiltered_action_space(
      self, output_action_space: AttentionActionSpace
  ) -> DiscreteActionSpace:
      if isinstance(self.num_bins_per_dimension, int):
          self.num_bins_per_dimension = [
              self.num_bins_per_dimension
          ] * output_action_space.shape[0]
  
      # create a discrete to linspace map to ease the extraction of attention actions
      discrete_to_box = BoxDiscretization(
          [n + 1 for n in self.num_bins_per_dimension],
          self.force_int_bins,
      )
      discrete_to_box.get_unfiltered_action_space(
          BoxActionSpace(
              output_action_space.shape,
              output_action_space.low,
              output_action_space.high,
          ),
      )
  
      rows, cols = self.num_bins_per_dimension
      start_ind = [
          i * (cols + 1) + j
          for i in range(rows + 1)
          if i < rows
          for j in range(cols + 1)
          if j < cols
      ]
      end_ind = [i + cols + 2 for i in start_ind]
      self.target_actions = [
          np.array(
              [
                  discrete_to_box.target_actions[start],
                  discrete_to_box.target_actions[end],
              ]
          )
          for start, end in zip(start_ind, end_ind)
      ]
  
      return super().get_unfiltered_action_space(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 3 for calling the AttentionDiscretization obj's underlying member method code with example usage: obj.get_unfiltered_action_space(output_action_space) and returns: super