class_docstr: A Qtopt Agent.
  
  Implements the Qt-Opt algorithm from
  
  "QT-Opt: Scalable Deep Reinforcement Learning for Vision-Based Robotic "
    "Manipulation"
  
   Dmitry Kalashnikov et al., 2018
   https://arxiv.org/abs/1806.10293
code: def _setup_policy(
      self, time_step_spec, action_spec, emit_log_probability
  ):
      policy = qtopt_cem_policy.CEMPolicy(
          time_step_spec,
          action_spec,
          q_network=self._target_q_network,
          sampler=self._sampler,
          init_mean=self._init_mean_cem,
          init_var=self._init_var_cem,
          info_spec=self._info_spec,
          num_samples=self._num_samples_cem,
          num_elites=self._num_elites_cem,
          num_iterations=self._num_iter_cem,
          emit_log_probability=emit_log_probability,
          training=False,
      )
  
      collect_policy = epsilon_greedy_policy.EpsilonGreedyPolicy(
          policy, epsilon=self._epsilon_greedy
      )
  
      return policy, collect_policy
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import typing
  import gin
  import tensorflow
  from tf_agents.agents import data_converter
  from tf_agents.agents import tf_agent
  from tf_agents.networks import utils
  from tf_agents.policies import epsilon_greedy_policy
  from tf_agents.policies import qtopt_cem_policy
  from tf_agents.specs import tensor_spec
  from tf_agents.typing import types
  from tf_agents.utils import common
  from tf_agents.utils import eager_utils
  from tf_agents.utils import nest_utils
label_desc: Use image node_id 5 for calling the QtOptAgent obj's underlying member method code with example usage: obj._setup_policy(time_step_spec, action_spec, emit_log_probability) and returns: policy,  collect_policy