code: def input_shape(self) -> torch.Size:
      return torch.Size(self._input_shape)
  
imports: import logging
  from typing import Any, Dict, List, Optional, Tuple, Type, Union
  import torch
  from ludwig.api_annotations import DeveloperAPI
  from ludwig.constants import ENCODER_OUTPUT, IMAGE
  from ludwig.encoders.base import Encoder
  from ludwig.encoders.registry import register_encoder
  from ludwig.encoders.types import EncoderOutputDict
  from ludwig.modules.convolutional_modules import Conv2DStack, ResNet
  from ludwig.modules.fully_connected_modules import FCStack
  from ludwig.modules.mlp_mixer_modules import MLPMixer
  from ludwig.schema.encoders.image.base import ImageEncoderConfig, MLPMixerConfig, ResNetConfig, Stacked2DCNNConfig, ViTConfig
  from ludwig.utils.torch_utils import FreezeModule
label_desc: Use image node_id 5 for calling the ResNetEncoder obj's underlying member method code with example usage: obj.input_shape() and returns: torch