class_docstr: Linear adapter for Progressive Neural Networks.
docstr: :param in_features: size of each input sample
  :param out_features_per_column: size of each output sample
  :param num_prev_modules: number of previous modules
docstr_tok: [":","param","in_features",":","size","of","each","input","sample",":","param","out_features_per_column",":","size","of","each","output","sample",":","param","num_prev_modules",":","number","of","previous","modules"]
code: def __init__(
      self, in_features, out_features_per_column, num_prev_modules
  ):
      """
      :param in_features: size of each input sample
      :param out_features_per_column: size of each output sample
      :param num_prev_modules: number of previous modules
      """
      super().__init__()
      # Eq. 1 - lateral connections
      # one layer for each previous column. Empty for the first task.
      self.lat_layers = nn.ModuleList([])
      for _ in range(num_prev_modules):
          m = nn.Linear(in_features, out_features_per_column)
          self.lat_layers.append(m)
  
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 LinearAdapter object from inherited base classes: nn with example: obj = LinearAdapter(in_features, out_features_per_column, num_prev_modules)