docstr: Convert the LightGBM model to a PyTorch model and store internally.
docstr_tok: ["Convert","the","LightGBM","model","to","a","PyTorch","model","and","store","internally","."]
code: def compile(self):
      """Convert the LightGBM model to a PyTorch model and store internally."""
      if self.lgbm_model is None:
          raise ValueError("Model has not been trained yet.")
  
      try:
          self.compiled_model = convert(
              self.lgbm_model,
              "torch",
              extra_config={
                  # explicitly disable post-transform, so we get logits at inference time
                  "post_transform": None,
                  # return pytorch module only
                  "container": False,
              },
          )
          yield
      finally:
          self.compiled_model = None
  
imports: import os
  from contextlib import contextmanager
  from typing import Dict, Optional, Tuple, Union
  import lightgbm
  import numpy
  import torch
  from hummingbird.ml import convert
  from ludwig.accounting.used_tokens import get_used_tokens_for_gbm
  from ludwig.constants import BINARY, LOGITS, MODEL_GBM, NUMBER, USED_TOKENS
  from ludwig.features.base_feature import OutputFeature
  from ludwig.globals import MODEL_WEIGHTS_FILE_NAME
  from ludwig.models.base import BaseModel
  from ludwig.schema.features.base import BaseOutputFeatureConfig, FeatureCollection
  from ludwig.schema.model_config import ModelConfig
  from ludwig.utils import output_feature_utils
  from ludwig.utils.fs_utils import path_exists
  from ludwig.utils.gbm_utils import reshape_logits
  from ludwig.utils.torch_utils import get_torch_device
  from ludwig.utils.types import TorchDevice
label_desc: Use image node_id 4 for calling the GBM obj's underlying member method code with example usage: obj.compile() without return types