class_docstr: Q function based on a CNN-MLP structure for discrete action space.
  
  This class implements a Q value network to predict Q based on the
  input state and action. It uses an CNN and a MLP to fit the function
  of Q(s, a).
  
  Args:
      env_spec (garage.envs.env_spec.EnvSpec): Environment specification.
      filters (Tuple[Tuple[int, Tuple[int, int]], ...]): Number and dimension
          of filters. For example, ((3, (3, 5)), (32, (3, 3))) means there
          are two convolutional layers. The filter for the first layer have 3
          channels and its shape is (3 x 5), while the filter for the second
          layer have 32 channels and its shape is (3 x 3).
      strides (tuple[int]): The stride of the sliding window. For example,
          (1, 2) means there are two convolutional layers. The stride of the
          filter for first layer is 1 and that of the second layer is 2.
      hidden_sizes (list[int]): Output dimension of dense layer(s).
          For example, (32, 32) means the MLP of this q-function consists of
          two hidden layers, each with 32 hidden units.
      name (str): Variable scope of the cnn.
      padding (str): The type of padding algorithm to use,
          either 'SAME' or 'VALID'.
      max_pooling (bool): Boolean for using max pooling layer or not.
      pool_shapes (tuple[int]): Dimension of the pooling layer(s). For
          example, (2, 2) means that all the pooling layers have
          shape (2, 2).
      pool_strides (tuple[int]): The strides of the pooling layer(s). For
          example, (2, 2) means that all the pooling layers have
          strides (2, 2).
      cnn_hidden_nonlinearity (callable): Activation function for
          intermediate dense layer(s) in the CNN. It should return a
          tf.Tensor. Set it to None to maintain a linear activation.
      hidden_nonlinearity (callable): Activation function for intermediate
          dense layer(s) in the MLP. It should return a tf.Tensor. Set it to
          None to maintain a linear activation.
      hidden_w_init (callable): Initializer function for the weight
          of intermediate dense layer(s) in the MLP. The function should
          return a tf.Tensor.
      hidden_b_init (callable): Initializer function for the bias
          of intermediate dense layer(s) in the MLP. The function should
          return a tf.Tensor.
      output_nonlinearity (callable): Activation function for output dense
          layer in the MLP. It should return a tf.Tensor. Set it to None
          to maintain a linear activation.
      output_w_init (callable): Initializer function for the weight
          of output dense layer(s) in the MLP. The function should return
          a tf.Tensor.
      output_b_init (callable): Initializer function for the bias
          of output dense layer(s) in the MLP. The function should return
          a tf.Tensor.
      dueling (bool): Bool for using dueling network or not.
      layer_normalization (bool): Bool for using layer normalization or not.
docstr: Object.__getstate__.
  
  Returns:
      dict: The state.
docstr_tok: ["Object.__getstate__",".","Returns",":","dict",":","The","state","."]
code: def __getstate__(self):
      """Object.__getstate__.
  
      Returns:
          dict: The state.
  
      """
      new_dict = super().__getstate__()
      del new_dict["_obs_input"]
      del new_dict["_network"]
      return new_dict
  
file_path: garage/src/garage/tf/q_functions/discrete_cnn_q_function.py
imports: import akro
  import tensorflow
  from garage.experiment import deterministic
  from garage.tf.models import CNNModel, CNNModelWithMaxPooling, MLPDuelingModel, MLPModel, Sequential
label_desc: Use image node_id 8 for calling the DiscreteCNNQFunction obj's underlying member method code with example usage: obj.__getstate__() and returns: new_dict