code: def packnet_simple_mlp(
      num_classes=10,
      input_size=28 * 28,
      hidden_size=512,
      hidden_layers=1,
      drop_rate=0.5,
  ) -> PackNetModel:
      """
      Convenience function for creating a PackNet compatible :class:`SimpleMLP`
      model.
  
      :param num_classes: output size
      :param input_size: input size
      :param hidden_size: hidden layer size
      :param hidden_layers: number of hidden layers
      :param drop_rate: dropout rate. 0 to disable
      :return: A PackNet compatible model
      """
      return PackNetModel(
          SimpleMLP(
              num_classes,
              input_size,
              hidden_size,
              hidden_layers,
              drop_rate,
          )
      )
  
imports: import typing
  import torch
  import torch.nn
  from torch import Tensor
  from torch.nn import functional
  from abc import ABC, abstractmethod
  from enum import Enum
  from avalanche.core import BaseSGDPlugin, Template
  from avalanche.models.dynamic_modules import MultiTaskModule
  from avalanche.models.simple_mlp import SimpleMLP
  from typing import Union
  from avalanche.training.templates.base_sgd import BaseSGDTemplate
label_desc: Use image node_id 1 for calling a global function with example usage: packnet_simple_mlp(num_classes, input_size, hidden_size, hidden_layers, drop_rate) and returns: PackNetModel