code: def ie_network(self, model):
      if isinstance(model, (str, Path)):
          self._ie_network = self._ie.read_model(model=str(model))
      else:
          self._ie_network = model
      if self.thread_num is not None and self._device == "CPU":
          if OpenVINO_LESS_2022_3:
              config = {"CPU_THREADS_NUM": str(self.thread_num)}
          else:
              config = {"INFERENCE_NUM_THREADS": str(self.thread_num)}
      else:
          config = {}
      if self.additional_config is not None:
          if self._device == "CPU":
              # TODO: check addition config based on device
              config.update(self.additional_config)
          else:
              ov_cache_dir = self.additional_config.get(
                  "CACHE_DIR", None
              )
              if ov_cache_dir:
                  config["CACHE_DIR"] = ov_cache_dir
      self.final_config = config
  
      if self.shapes is None:
          self.create_infer_request()
      else:
          self._infer_request = None
          self.reshape(self.shapes)
  
      input_names = [t.any_name for t in self._ie_network.inputs]
      self._forward_args = input_names
  
imports: from pathlib import Path
  from tempfile import TemporaryDirectory
  from typing import List, Union
  from openvino.runtime import Core
  from bigdl.nano.utils.common import invalidInputError, _flatten, invalidOperationError
  from openvino.runtime import Model
  from openvino.runtime import AsyncInferQueue
  import numpy
  from datetime import datetime
  from .utils import save, OpenVINO_LESS_2022_3
label_desc: Use image node_id 10 for calling the OpenVINOModel obj's underlying member method code with example usage: obj.ie_network(model) without return types