class_docstr: An extension of Rainbow to perform implicit quantile regression.
docstr: Build an op used as a target for return values at given quantiles.
  
  Returns:
    An op calculating the target quantile return.
docstr_tok: ["Build","an","op","used","as","a","target","for","return","values","at","given","quantiles",".","Returns",":","An","op","calculating","the","target","quantile","return","."]
code: def _build_target_quantile_values_op(self):
      """Build an op used as a target for return values at given quantiles.
  
      Returns:
        An op calculating the target quantile return.
      """
      batch_size = tf.shape(self._replay.rewards)[0]
      # Shape of rewards: (num_tau_prime_samples x batch_size) x 1.
      rewards = self._replay.rewards[:, None]
      rewards = tf.tile(rewards, [self.num_tau_prime_samples, 1])
  
      is_terminal_multiplier = 1.0 - tf.cast(
          self._replay.terminals, tf.float32
      )
      # Incorporate terminal state to discount factor.
      # size of gamma_with_terminal: (num_tau_prime_samples x batch_size) x 1.
      gamma_with_terminal = (
          self.cumulative_gamma * is_terminal_multiplier
      )
      gamma_with_terminal = tf.tile(
          gamma_with_terminal[:, None], [self.num_tau_prime_samples, 1]
      )
  
      # Get the indices of the maximium Q-value across the action dimension.
      # Shape of replay_next_qt_argmax: (num_tau_prime_samples x batch_size) x 1.
  
      replay_next_qt_argmax = tf.tile(
          self._replay_next_qt_argmax[:, None],
          [self.num_tau_prime_samples, 1],
      )
  
      # Shape of batch_indices: (num_tau_prime_samples x batch_size) x 1.
      batch_indices = tf.cast(
          tf.range(self.num_tau_prime_samples * batch_size)[:, None],
          tf.int64,
      )
  
      # Shape of batch_indexed_target_values:
      # (num_tau_prime_samples x batch_size) x 2.
      batch_indexed_target_values = tf.concat(
          [batch_indices, replay_next_qt_argmax], axis=1
      )
  
      # Shape of next_target_values: (num_tau_prime_samples x batch_size) x 1.
      target_quantile_values = tf.gather_nd(
          self._replay_net_target_quantile_values,
          batch_indexed_target_values,
      )[:, None]
  
      return rewards + gamma_with_terminal * target_quantile_values
  
file_path: dopamine/dopamine/agents/implicit_quantile/implicit_quantile_agent.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from dopamine.agents.rainbow import rainbow_agent
  from dopamine.discrete_domains import atari_lib
  import gin.tf
  import tensorflow
label_desc: Use image node_id 4 for calling the ImplicitQuantileAgent obj's underlying member method code with example usage: obj._build_target_quantile_values_op() and returns: unknown