code: def _vgg(
      cfg: str,
      batch_norm: bool,
      weights: Optional[WeightsEnum],
      progress: bool,
      **kwargs: Any,
  ) -> VGG:
      if weights is not None:
          kwargs["init_weights"] = False
          if weights.meta["categories"] is not None:
              _ovewrite_named_param(
                  kwargs, "num_classes", len(weights.meta["categories"])
              )
      model = VGG(
          make_layers(cfgs[cfg], batch_norm=batch_norm), **kwargs
      )
      if weights is not None:
          model.load_state_dict(
              weights.get_state_dict(progress=progress, check_hash=True)
          )
      return model
  
imports: from functools import partial
  from typing import Any, cast, Dict, List, Optional, Union
  import torch
  import torch.nn
  from ..transforms._presets import ImageClassification
  from ..utils import _log_api_usage_once
  from ._api import register_model, Weights, WeightsEnum
  from ._meta import _IMAGENET_CATEGORIES
  from ._utils import _ovewrite_named_param, handle_legacy_interface
label_desc: Use image node_id 2 for calling a global function with example usage: _vgg(cfg, batch_norm, weights, progress) and returns: model