docstr: :param algorithm:
      A class inheriting AlgorithmParameters.
      The parameters used for the specific algorithm used by the agent.
      These parameters can be later referenced in the agent implementation through self.ap.algorithm.
  :param exploration:
      Either a class inheriting ExplorationParameters or a dictionary mapping between action
      space types and their corresponding ExplorationParameters. If a dictionary was used,
      when the agent will be instantiated, the correct exploration policy parameters will be used
      according to the real type of the environment action space.
      These parameters will be used to instantiate the exporation policy.
  :param memory:
      A class inheriting MemoryParameters. It defines all the parameters used by the memory module.
  :param networks:
      A dictionary mapping between network names and their corresponding network parmeters, defined
      as a class inheriting NetworkParameters. Each element will be used in order to instantiate
      a NetworkWrapper class, and all the network wrappers will be stored in the agent under
      self.network_wrappers. self.network_wrappers is a dict mapping between the network name that
      was given in the networks dict, and the instantiated network wrapper.
  :param visualization:
      A class inheriting VisualizationParameters and defining various parameters that can be
      used for visualization purposes, such as printing to the screen, rendering, and saving videos.
docstr_tok: [":","param","algorithm",":","A","class","inheriting","AlgorithmParameters",".","The","parameters","used","for","the","specific","algorithm","used","by","the","agent",".","These","parameters","can","be","later","referenced","in","the","agent","implementation","through","self.ap.algorithm",".",":","param","exploration",":","Either","a","class","inheriting","ExplorationParameters","or","a","dictionary","mapping","between","action","space","types","and","their","corresponding","ExplorationParameters",".","If","a","dictionary","was","used",",","when","the","agent","will","be","instantiated",",","the","correct","exploration","policy","parameters","will","be","used","according","to","the","real","type","of","the","environment","action","space",".","These","parameters","will","be","used","to","instantiate","the","exporation","policy",".",":","param","memory",":","A","class","inheriting","MemoryParameters",".","It","defines","all","the","parameters","used","by","the","memory","module",".",":","param","networks",":","A","dictionary","mapping","between","network","names","and","their","corresponding","network","parmeters",",","defined","as","a","class","inheriting","NetworkParameters",".","Each","element","will","be","used","in","order","to","instantiate","a","NetworkWrapper","class",",","and","all","the","network","wrappers","will","be","stored","in","the","agent","under","self.network_wrappers",".","self.network_wrappers","is","a","dict","mapping","between","the","network","name","that","was","given","in","the","networks","dict",",","and","the","instantiated","network","wrapper",".",":","param","visualization",":","A","class","inheriting","VisualizationParameters","and","defining","various","parameters","that","can","be","used","for","visualization","purposes",",","such","as","printing","to","the","screen",",","rendering",",","and","saving","videos","."]
code: def __init__(
      self,
      algorithm: AlgorithmParameters,
      exploration: "ExplorationParameters",
      memory: "MemoryParameters",
      networks: Dict[str, NetworkParameters],
      visualization: VisualizationParameters = VisualizationParameters(),
  ):
      """
      :param algorithm:
          A class inheriting AlgorithmParameters.
          The parameters used for the specific algorithm used by the agent.
          These parameters can be later referenced in the agent implementation through self.ap.algorithm.
      :param exploration:
          Either a class inheriting ExplorationParameters or a dictionary mapping between action
          space types and their corresponding ExplorationParameters. If a dictionary was used,
          when the agent will be instantiated, the correct exploration policy parameters will be used
          according to the real type of the environment action space.
          These parameters will be used to instantiate the exporation policy.
      :param memory:
          A class inheriting MemoryParameters. It defines all the parameters used by the memory module.
      :param networks:
          A dictionary mapping between network names and their corresponding network parmeters, defined
          as a class inheriting NetworkParameters. Each element will be used in order to instantiate
          a NetworkWrapper class, and all the network wrappers will be stored in the agent under
          self.network_wrappers. self.network_wrappers is a dict mapping between the network name that
          was given in the networks dict, and the instantiated network wrapper.
      :param visualization:
          A class inheriting VisualizationParameters and defining various parameters that can be
          used for visualization purposes, such as printing to the screen, rendering, and saving videos.
      """
      super().__init__()
      self.visualization = visualization
      self.algorithm = algorithm
      self.exploration = exploration
      self.memory = memory
      self.network_wrappers = networks
      self.input_filter = None
      self.output_filter = None
      self.pre_network_filter = NoInputFilter()
      self.full_name_id = None
      self.name = None
      self.is_a_highest_level_agent = True
      self.is_a_lowest_level_agent = True
      self.task_parameters = None
      self.is_batch_rl_training = False
  
imports: import inspect
  import json
  import os
  import sys
  import types
  from collections import OrderedDict
  from enum import Enum
  from typing import Dict, List, Union
  from rl_coach.core_types import TrainingSteps, EnvironmentSteps, GradientClippingMethod, RunPhase, SelectedPhaseOnlyDumpFilter, MaxDumpFilter
  from rl_coach.filters.filter import NoInputFilter
  from rl_coach.logger import screen
label_desc: Use image node_id 1 to create a new AgentParameters object from inherited base classes: Parameters with example: obj = AgentParameters(algorithm, exploration, memory, networks, visualization)