code: def _resnet(
      block: Type[Union[BasicBlock, Bottleneck]],
      layers: List[int],
      weights: Optional[WeightsEnum],
      progress: bool,
      **kwargs: Any,
  ) -> ResNet:
      if weights is not None:
          _ovewrite_named_param(
              kwargs, "num_classes", len(weights.meta["categories"])
          )
  
      model = ResNet(block, layers, **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, Callable, List, Optional, Type, Union
  import torch
  import torch.nn
  from torch import Tensor
  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 3 for calling a global function with example usage: _resnet(block, layers, weights, progress) and returns: model