class_docstr: The object detection naive strategy.
  
  The simplest (and least effective) Continual Learning strategy. Naive just
  incrementally fine-tunes a single model without employing any method
  to contrast the catastrophic forgetting of previous knowledge.
  This strategy does not use task identities.
  
  Naive is easy to set up and its results are commonly used to show the worst
  performing baseline.
  
  This strategy can be used as a template for any object detection strategy.
  This template assumes that the provided model follows the same interface
  of torchvision detection models.
  
  For more info, refer to "TorchVision Object Detection Finetuning Tutorial":
  https://pytorch.org/tutorials/intermediate/torchvision_tutorial.html
class_docstr_tok: ["The","object","detection","naive","strategy",".","The","simplest","(","and","least","effective",")","Continual","Learning","strategy",".","Naive","just","incrementally","fine-tunes","a","single","model","without","employing","any","method","to","contrast","the","catastrophic","forgetting","of","previous","knowledge",".","This","strategy","does","not","use","task","identities",".","Naive","is","easy","to","set","up","and","its","results","are","commonly","used","to","show","the","worst","performing","baseline",".","This","strategy","can","be","used","as","a","template","for","any","object","detection","strategy",".","This","template","assumes","that","the","provided","model","follows","the","same","interface","of","torchvision","detection","models",".","For","more","info",",","refer","to","``","TorchVision","Object","Detection","Finetuning","Tutorial","''",":","https",":","\/\/pytorch.org\/tutorials\/intermediate\/torchvision_tutorial.html"]
docstr: Data loader initialization.
  
  Called at the start of each learning experience after the dataset
  adaptation.
  
  :param num_workers: number of thread workers for the data loading.
  :param shuffle: True if the data should be shuffled, False otherwise.
  :param pin_memory: If True, the data loader will copy Tensors into CUDA
      pinned memory before returning them. Defaults to None, which means
      that the value will be determined by looking at the strategy
      `device` field.
  :param persistent_workers: If True, the data loader will not shutdown
      the worker processes after a dataset has been consumed once.
      Used only if `PyTorch >= 1.7.0`.
docstr_tok: ["Data","loader","initialization",".","Called","at","the","start","of","each","learning","experience","after","the","dataset","adaptation",".",":","param","num_workers",":","number","of","thread","workers","for","the","data","loading",".",":","param","shuffle",":","True","if","the","data","should","be","shuffled",",","False","otherwise",".",":","param","pin_memory",":","If","True",",","the","data","loader","will","copy","Tensors","into","CUDA","pinned","memory","before","returning","them",".","Defaults","to","None",",","which","means","that","the","value","will","be","determined","by","looking","at","the","strategy","`","device","`","field",".",":","param","persistent_workers",":","If","True",",","the","data","loader","will","not","shutdown","the","worker","processes","after","a","dataset","has","been","consumed","once",".","Used","only","if","`","PyTorch",">","=","1.7.0","`","."]
code: def make_train_dataloader(
      self,
      num_workers=0,
      shuffle=True,
      pin_memory=None,
      persistent_workers=False,
      **kwargs,
  ):
      """Data loader initialization.
  
      Called at the start of each learning experience after the dataset
      adaptation.
  
      :param num_workers: number of thread workers for the data loading.
      :param shuffle: True if the data should be shuffled, False otherwise.
      :param pin_memory: If True, the data loader will copy Tensors into CUDA
          pinned memory before returning them. Defaults to None, which means
          that the value will be determined by looking at the strategy
          `device` field.
      :param persistent_workers: If True, the data loader will not shutdown
          the worker processes after a dataset has been consumed once.
          Used only if `PyTorch >= 1.7.0`.
      """
  
      assert self.adapted_dataset is not None
  
      other_dataloader_args = self._obtain_common_dataloader_parameters(
          batch_size=self.train_mb_size,
          num_workers=num_workers,
          shuffle=shuffle,
          pin_memory=pin_memory,
          persistent_workers=persistent_workers,
          **kwargs,
      )
  
      self.dataloader = TaskBalancedDataLoader(
          self.adapted_dataset,
          oversample_small_groups=True,
          **other_dataloader_args,
      )
  
imports: from typing import Callable, Optional, Sequence, Union
  import torch
  from torch.nn import Module
  from torch.optim import Optimizer
  from torch.utils.data import DataLoader
  from avalanche.benchmarks.utils.data_loader import collate_from_data_or_kwargs, TaskBalancedDataLoader
  from avalanche.benchmarks.utils import detection_collate_fn
  from avalanche.core import SupervisedPlugin
  from avalanche.training.plugins import EvaluationPlugin
  from avalanche.training.plugins.evaluation import default_evaluator
  from avalanche.training.templates import SupervisedTemplate
label_desc: Use image node_id 2 for calling the ObjectDetectionTemplate obj's underlying member method code with example usage: obj.make_train_dataloader(num_workers, shuffle, pin_memory, persistent_workers) without return types