code: def _expand_inputs(inputs, tensors_with_value, loss):
      additional_inputs = []
      additional_values = []
      inputs = nest.flatten(inputs)
      names = set([i.name for i in inputs])
  
      if tensors_with_value:
          for t, v in tensors_with_value.items():
              if t.name in names:
                  msg = f"tensor {t} already in inputs, cannot put it in tensor_with_value"
                  raise ValueError(msg)
              additional_inputs.append(t)
              additional_values.append(v)
  
      return inputs, additional_inputs, additional_values
  
imports: import json
  import logging
  import os
  import sys
  import tempfile
  from bigdl.nn.criterion import Criterion
  from bigdl.nn.layer import Layer
  from bigdl.optim.optimizer import MaxEpoch, EveryEpoch
  from bigdl.util.common import to_list, JavaValue
  from zoo.common.utils import callZooFunc
  from zoo.feature.common import FeatureSet
  from zoo.pipeline.api.keras.engine.topology import to_bigdl_metric, Loss, OptimMethod
  from zoo.pipeline.api.net.utils import find_placeholders, to_bigdl_optim_method, find_tensors
  from zoo.pipeline.estimator import Estimator
  from zoo.util import nest
  from zoo.util.triggers import EveryEpoch
  from zoo.util.triggers import ZooTrigger
  from zoo.tfpark.tf_dataset import TFNdarrayDataset, check_data_compatible
  from zoo.tfpark.tf_dataset import _standarize_feature_label_dataset
label_desc: Use image node_id 2 for calling the TFModel obj's underlying member method code with example usage: obj._expand_inputs(inputs, tensors_with_value, loss) and returns: inputs,  additional_inputs,  additional_values