code: def _init_inference_stages_from_ludwig_model(
      model: "BaseModel",
      config: ModelConfigDict,
      training_set_metadata: TrainingSetMetadataDict,
      device: TorchDevice,
      scripted: bool = True,
  ) -> Dict[str, torch.nn.Module]:
      """Initializes inference stage modules from a LudwigModel (a BaseModel model, config, and
      training_set_metadata)."""
      preprocessor = _InferencePreprocessor(
          config, training_set_metadata
      )
      predictor = _InferencePredictor(model, device=device)
      postprocessor = _InferencePostprocessor(
          model, training_set_metadata
      )
  
      stage_to_module = {
          PREPROCESSOR: preprocessor,
          PREDICTOR: predictor,
          POSTPROCESSOR: postprocessor,
      }
      if scripted:
          stage_to_module = {
              stage: torch.jit.script(module)
              for stage, module in stage_to_module.items()
          }
      return stage_to_module
  
imports: import logging
  import os
  from typing import Any, Dict, Optional, TYPE_CHECKING, Union
  import pandas
  import torch
  from torch import nn
  from ludwig.constants import NAME, POSTPROCESSOR, PREDICTOR, PREPROCESSOR, TYPE
  from ludwig.data.postprocessing import convert_dict_to_df
  from ludwig.data.preprocessing import load_metadata
  from ludwig.features.feature_registries import get_input_type_registry
  from ludwig.features.feature_utils import get_module_dict_key_from_name, get_name_from_module_dict_key
  from ludwig.globals import MODEL_HYPERPARAMETERS_FILE_NAME, TRAIN_SET_METADATA_FILE_NAME
  from ludwig.types import ModelConfigDict, TrainingSetMetadataDict
  from ludwig.utils import output_feature_utils
  from ludwig.utils.data_utils import load_json, save_json
  from ludwig.utils.inference_utils import get_filename_from_stage, to_inference_module_input_from_dataframe
  from ludwig.utils.misc_utils import get_from_registry
  from ludwig.utils.output_feature_utils import get_feature_name_from_concat_name, get_tensor_name_from_concat_name
  from ludwig.utils.torch_utils import DEVICE
  from ludwig.utils.types import TorchDevice, TorchscriptPreprocessingInput
label_desc: Use image node_id 3 for calling a global function with example usage: _init_inference_stages_from_ludwig_model(model, config, training_set_metadata, device, scripted) and returns: stage_to_module