class_docstr: CNN Model.
  
  Args:
      input_dim (Tuple[int, int, int]): Dimensions of unflattened input,
          which means [in_height, in_width, in_channels]. If the last 3
          dimensions of input_var is not this shape, it will be reshaped.
      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.
      name (str): Model name, also the variable scope.
      padding (str): The type of padding algorithm to use,
          either 'SAME' or 'VALID'.
      hidden_nonlinearity (callable): Activation function for intermediate
          dense layer(s). 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). The function should return a
          tf.Tensor.
      hidden_b_init (callable): Initializer function for the bias
          of intermediate dense layer(s). The function should return a
          tf.Tensor.
docstr: Build model given input placeholder(s).
  
  Args:
      state_input (tf.Tensor): Tensor input for state.
      name (str): Inner model name, also the variable scope of the
          inner model, if exist. One example is
          garage.tf.models.Sequential.
  
  Return:
      tf.Tensor: Tensor output of the model.
docstr_tok: ["Build","model","given","input","placeholder","(","s",")",".","Args",":","state_input","(","tf.Tensor",")",":","Tensor","input","for","state",".","name","(","str",")",":","Inner","model","name",",","also","the","variable","scope","of","the","inner","model",",","if","exist",".","One","example","is","garage.tf.models.Sequential",".","Return",":","tf.Tensor",":","Tensor","output","of","the","model","."]
code: def _build(self, state_input, name=None):
      """Build model given input placeholder(s).
  
      Args:
          state_input (tf.Tensor): Tensor input for state.
          name (str): Inner model name, also the variable scope of the
              inner model, if exist. One example is
              garage.tf.models.Sequential.
  
      Return:
          tf.Tensor: Tensor output of the model.
  
      """
      del name
      return cnn(
          input_var=state_input,
          input_dim=self._input_dim,
          filters=self._filters,
          hidden_nonlinearity=self._hidden_nonlinearity,
          hidden_w_init=self._hidden_w_init,
          hidden_b_init=self._hidden_b_init,
          strides=self._strides,
          padding=self._padding,
          name="cnn",
      )
  
imports: import tensorflow
  from garage.experiment import deterministic
  from garage.tf.models.cnn import cnn
  from garage.tf.models.model import Model
label_desc: Use image node_id 2 for calling the CNNModel obj's underlying member method code with example usage: obj._build(state_input, name) and returns: cnn