class_docstr: Progressive Neural Network.
  
  The model assumes that each experience is a separate task.
  Multiple experiences with the same task label or multiple task labels
  within the same experience will result in a runtime error.
docstr: :param num_layers: number of layers (default=1)
  :param in_features: size of each input sample
  :param hidden_features_per_column:
      number of hidden units for each column
  :param adapter: adapter type. One of {'linear', 'mlp'} (default='mlp')
docstr_tok: [":","param","num_layers",":","number","of","layers","(","default=1",")",":","param","in_features",":","size","of","each","input","sample",":","param","hidden_features_per_column",":","number","of","hidden","units","for","each","column",":","param","adapter",":","adapter","type",".","One","of","{","'linear","'",",","'mlp","'","}","(","default='mlp","'",")"]
code: def __init__(
      self,
      num_layers=1,
      in_features=784,
      hidden_features_per_column=100,
      adapter="mlp",
  ):
      """
      :param num_layers: number of layers (default=1)
      :param in_features: size of each input sample
      :param hidden_features_per_column:
          number of hidden units for each column
      :param adapter: adapter type. One of {'linear', 'mlp'} (default='mlp')
      """
      super().__init__()
      assert num_layers >= 1
      self.num_layers = num_layers
      self.in_features = in_features
      self.out_features_per_columns = hidden_features_per_column
  
      self.layers = nn.ModuleList()
      self.layers.append(
          PNNLayer(in_features, hidden_features_per_column)
      )
      for _ in range(num_layers - 1):
          lay = PNNLayer(
              hidden_features_per_column,
              hidden_features_per_column,
              adapter=adapter,
          )
          self.layers.append(lay)
      self.classifier = MultiHeadClassifier(hidden_features_per_column)
  
imports: import torch
  import torch.nn.functional
  from torch import nn
  from avalanche.benchmarks.utils.flat_data import ConstantSequence
  from avalanche.models import MultiTaskModule
  from avalanche.models import MultiHeadClassifier
  from avalanche.benchmarks.scenarios import CLExperience
label_desc: Use image node_id 1 to create a new PNN object from inherited base classes: MultiTaskModule with example: obj = PNN(num_layers, in_features, hidden_features_per_column, adapter)