class_docstr: Transformation groups for Avalanche datasets.
  
  TransformGroups supports preprocessing and augmentation pipelines for
  Avalanche datasets. Transfomations are separated into groups (e.g. `train`
  transforms and `test` transforms), that can be easily switched using the
  `with_transform` method.
class_docstr_tok: ["Transformation","groups","for","Avalanche","datasets",".","TransformGroups","supports","preprocessing","and","augmentation","pipelines","for","Avalanche","datasets",".","Transfomations","are","separated","into","groups","(","e.g",".","`","train","`","transforms","and","`","test","`","transforms",")",",","that","can","be","easily","switched","using","the","`","with_transform","`","method","."]
code: def __setitem__(self, key, value):
      self.transform_groups[key] = _normalize_transform(value)
  
imports: from collections import defaultdict
  from functools import partial
  from typing import Any, Dict, List, Mapping, Optional, Tuple, Union, Callable, Sequence
  from typing_extensions import Protocol
  from avalanche.benchmarks.utils.transforms import MultiParamCompose, TupleTransform, MultiParamTransform
label_desc: Use image node_id 3 for calling the TransformGroups obj's underlying member method code with example usage: obj.__setitem__(key, value) without return types