class_docstr: Distributional Q-function with discrete actions.
  
  Args:
      model (nn.Module):
          model 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","(","nn.Module",")",":","model","that","is","callable","and","outputs","atoms","for","each","action",".","z_values","(","ndarray",")",":","Returns","represented","by","atoms",".","Its","shape","must","be","(","n_atoms",",",")","."]
code: def forward(self, x):
      h = self.model(x)
      return DistributionalDiscreteActionValue(h, self.z_values)
  
imports: import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from pfrl.action_value import DiscreteActionValue, DistributionalDiscreteActionValue, QuadraticActionValue
  from pfrl.functions.lower_triangular_matrix import lower_triangular_matrix
  from pfrl.initializers import init_chainer_default
  from pfrl.nn import Lambda
  from pfrl.nn.mlp import MLP
  from pfrl.q_function import StateQFunction
label_desc: Use image node_id 2 for calling the DistributionalSingleModelStateQFunctionWithDiscreteAction obj's underlying member method code with example usage: obj.forward(x) and returns: DistributionalDiscreteActionValue