class_docstr: A lightweight container mapping model names to models.
class_docstr_tok: ["A","lightweight","container","mapping","model","names","to","models","."]
docstr: Initialize a `ModelDict`.
  
  Args:
      models: An arbitrary number of models. Each model can be any type
          of BoTorch `Model`, including multi-output models and `ModelList`.
code: def __init__(self, **models: Model) -> None:
      r"""Initialize a `ModelDict`.
  
      Args:
          models: An arbitrary number of models. Each model can be any type
              of BoTorch `Model`, including multi-output models and `ModelList`.
      """
      if any(not isinstance(m, Model) for m in models.values()):
          raise InputDataError(
              f"Expected all models to be a BoTorch `Model`. Got {models}."
          )
      super().__init__(modules=models)
  
imports: from __future__ import annotations
  import warnings
  from abc import ABC, abstractmethod
  from collections import defaultdict
  from copy import deepcopy
  from typing import Any, Callable, Dict, List, Mapping, Optional, Set, TYPE_CHECKING, TypeVar, Union
  import numpy
  import torch
  from botorch import settings
  from botorch.exceptions.errors import BotorchTensorDimensionError, DeprecationError, InputDataError
  from botorch.logging import shape_to_str
  from botorch.models.utils.assorted import fantasize
  from botorch.posteriors import Posterior, PosteriorList
  from botorch.sampling.base import MCSampler
  from botorch.sampling.list_sampler import ListSampler
  from botorch.utils.datasets import SupervisedDataset
  from botorch.utils.transforms import is_fully_bayesian
  from gpytorch.likelihoods.gaussian_likelihood import FixedNoiseGaussianLikelihood
  from torch import Tensor
  from torch.nn import Module, ModuleDict, ModuleList
label_desc: Use image node_id 1 to create a new ModelDict object from inherited base classes: ModuleDict with example: obj = ModelDict()