class_docstr: Simple CNNModel with max pooling for testing.
  
  Args:
      input_dim (Tuple[int, int, int]): Consistent to real CNNModel.
      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 of the cnn.
      padding (str): The type of padding algorithm to use,
          either 'SAME' or 'VALID'.
      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).
      pool_shapes (tuple[int]): Dimension of the pooling layer(s). For
          example, (2, 2) means that all the pooling layers have
          shape (2, 2).
      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.
class_docstr_tok: ["Simple","CNNModel","with","max","pooling","for","testing",".","Args",":","input_dim","(","Tuple","[","int",",","int",",","int","]",")",":","Consistent","to","real","CNNModel",".","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","of","the","cnn",".","padding","(","str",")",":","The","type","of","padding","algorithm","to","use",",","either","'SAME","'","or","'VALID","'",".","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",")",".","pool_shapes","(","tuple","[","int","]",")",":","Dimension","of","the","pooling","layer","(","s",")",".","For","example",",","(","2",",","2",")","means","that","all","the","pooling","layers","have","shape","(","2",",","2",")",".","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","."]
code: def __init__(
      self,
      input_dim,
      filters,
      strides,
      padding,
      pool_strides,
      pool_shapes,
      name=None,
      hidden_nonlinearity=None,
      hidden_w_init=None,
      hidden_b_init=None,
  ):
      del hidden_nonlinearity, hidden_w_init, hidden_b_init
      super().__init__(name)
      self.input_dim = input_dim
      self.filters = filters
      self.strides = strides
      self.padding = padding
      self.pool_strides = pool_strides
      self.pool_shapes = pool_shapes
  
imports: import tensorflow
  from garage.tf.models import Model
label_desc: Use image node_id 1 to create a new SimpleCNNModelWithMaxPooling object from inherited base classes: Model with example: obj = SimpleCNNModelWithMaxPooling(input_dim, filters, strides, padding, pool_strides, pool_shapes, name, hidden_nonlinearity, hidden_w_init, hidden_b_init)