in src/neo_loader/helpers/tf_model_helper.py [0:0]
def __extract_input_and_output_tensors_from_saved_model_v2(self) -> None:
from tensorflow.python.framework.convert_to_constants import convert_variables_to_constants_v2
tags = self.__get_tag_set()
loaded = tf.compat.v2.saved_model.load(self.model_path.as_posix(), tags=tags)
for shape in self.__data_shape.values():
tensor_spec = tf.TensorSpec(tuple(shape))
if len(loaded.signatures) == 0:
f = loaded.__call__.get_concrete_function(tensor_spec)
elif 'serving_default' in loaded.signatures:
f = loaded.signatures['serving_default']
else:
f = loaded.signatures[list(loaded.signatures.keys())[0]]
frozen_func = convert_variables_to_constants_v2(f, lower_control_flow=True)
for tensor in frozen_func.inputs:
self.__input_tensor_names.append(tensor.name)
for tensor in frozen_func.outputs:
self.__output_tensor_names.append(tensor.name)
self.__input_tensors = frozen_func.inputs
self.__output_tensors = frozen_func.outputs