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 __init__(self, model, z_values):
      super().__init__()
      self.model = model
      self.register_buffer("z_values", torch.from_numpy(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 1 to create a new DistributionalSingleModelStateQFunctionWithDiscreteAction object from inherited base classes: nn, StateQFunction with example: obj = DistributionalSingleModelStateQFunctionWithDiscreteAction(model, z_values)