class_docstr: A builder for simple CNNs to experiment with different basic architectures.
  
  Args:
      num_channels (int, optional): the number of input channels. Defaults to 3.
      conv_layers_spec (list): a list for each convolutional layer given as [num_channels, kernel_size].
          For example, [[16, 3], [16, 1]] represents 2 layers with 16 filters and kernel sizes of 3 and 1 respectively.
      activation_fun (str): a string specifying the activation function to use. one of ('relu', 'elu', 'leaky_relu').
          Defaults to "relu".
      use_batchnorm (boolean): a boolean flag indicating whether to use batch normalization. Defaults to True.
      pool_locations (tuple): the index after which pooling layers should be placed in the convolutional layer list.
          Defaults to (0,3). (0,3) means placing 2 pooling layers after the first and fourth convolutional layer.
      num_channels (int): the number of input channels. Defaults to 3.
code: def forward(self, x):
      for block in self.layers:
          x = block(x)
  
      return x
  
imports: import torch.nn
  from torch.nn import functional
  from torchvision import models
label_desc: Use image node_id 2 for calling the SimpleCNNBuilder obj's underlying member method code with example usage: obj.forward(x) and returns: x