class_docstr: Distributional Q-function with discrete actions.
  
  Args:
      model (chainer.Link):
          Link that is callable and outputs atoms for each action.
      z_values (ndarray): Returns represented by atoms. Its shape must be
          (n_atoms,).
class_docstr_tok: ["Distributional","Q-function","with","discrete","actions",".","Args",":","model","(","chainer.Link",")",":","Link","that","is","callable","and","outputs","atoms","for","each","action",".","z_values","(","ndarray",")",":","Returns","represented","by","atoms",".","Its","shape","must","be","(","n_atoms",",",")","."]
code: def __call__(self, x):
      h = self.model(x)
      return DistributionalDiscreteActionValue(h, self.z_values)
  
imports: import chainer
  from chainer import cuda
  from chainer import functions
  from chainer import links
  import numpy
  import chainerrl
  from chainerrl.action_value import DiscreteActionValue
  from chainerrl.action_value import DistributionalDiscreteActionValue
  from chainerrl.action_value import QuadraticActionValue
  from chainerrl.functions.lower_triangular_matrix import lower_triangular_matrix
  from chainerrl.links.mlp import MLP
  from chainerrl.links.mlp_bn import MLPBN
  from chainerrl.q_function import StateQFunction
  from chainerrl.recurrent import RecurrentChainMixin
label_desc: Use image node_id 2 for calling the DistributionalSingleModelStateQFunctionWithDiscreteAction obj's underlying member method code with example usage: obj.__call__(x) and returns: DistributionalDiscreteActionValue