class_docstr: The ``IceVisionAdapter`` is an :class:`~flash.core.adapter.Adapter` for integrating with IceVision.
code: def _wrap_collate_fn(collate_fn, samples):
      metadata = [
          sample.get(DataKeys.METADATA, None) for sample in samples
      ]
      return {
          DataKeys.INPUT: collate_fn(
              [to_icevision_record(sample) for sample in samples]
          ),
          DataKeys.METADATA: metadata,
      }
  
imports: import functools
  from importlib import import_module
  from typing import Any, Dict, Optional
  from torch import Tensor
  from torch.utils.data import DataLoader, Sampler
  import flash
  from flash.core.adapter import Adapter
  from flash.core.data.io.input import DataKeys, InputBase
  from flash.core.data.io.input_transform import InputTransform, create_worker_input_transform_processor
  from flash.core.integrations.icevision.transforms import from_icevision_predictions, from_icevision_record, to_icevision_record
  from flash.core.integrations.icevision.wrappers import wrap_icevision_adapter
  from flash.core.model import Task
  from flash.core.utilities.imports import _ICEVISION_AVAILABLE
  from flash.core.utilities.stages import RunningStage
  from flash.core.utilities.url_error import catch_url_error
label_desc: Use image node_id 3 for calling the IceVisionAdapter obj's underlying member method code with example usage: obj._wrap_collate_fn(collate_fn, samples) and returns: dict