class_docstr: Convolutional Neural Network
  
  **Example**::
  
      >>> from avalanche.models import SimpleCNN
      >>> n_classes = 10 # e.g. MNIST
      >>> model = SimpleCNN(num_classes=n_classes)
      >>> print(model) # View model details
code: def __init__(self, num_classes=10):
      super(SimpleCNN, self).__init__()
  
      self.features = nn.Sequential(
          nn.Conv2d(3, 32, kernel_size=3, stride=1, padding=1),
          nn.ReLU(inplace=True),
          nn.Conv2d(32, 32, kernel_size=3, padding=0),
          nn.ReLU(inplace=True),
          nn.MaxPool2d(kernel_size=2, stride=2),
          nn.Dropout(p=0.25),
          nn.Conv2d(32, 64, kernel_size=3, padding=1),
          nn.ReLU(inplace=True),
          nn.Conv2d(64, 64, kernel_size=3, padding=0),
          nn.ReLU(inplace=True),
          nn.MaxPool2d(kernel_size=2, stride=2),
          nn.Dropout(p=0.25),
          nn.Conv2d(64, 64, kernel_size=1, padding=0),
          nn.ReLU(inplace=True),
          nn.AdaptiveMaxPool2d(1),
          nn.Dropout(p=0.25),
      )
      self.classifier = nn.Sequential(nn.Linear(64, num_classes))
  
file_path: avalanche/avalanche/models/simple_cnn.py
imports: import torch.nn
  from avalanche.models.dynamic_modules import MultiTaskModule, MultiHeadClassifier
label_desc: Use image node_id 1 to create a new SimpleCNN object from inherited base classes: nn with example: obj = SimpleCNN(num_classes)