Вывод TensorFlow замедлился с Python 3.12 – проблемы с EagerExecute и EagerTensorPython

Программы на Python
Anonymous
Вывод TensorFlow замедлился с Python 3.12 – проблемы с EagerExecute и EagerTensor

Сообщение Anonymous »

Я обновляю службу FastAPI, которая выполняет прогнозы на основе TensorFlow. После обновления до Python 3.12 я заметил значительное снижение производительности прогнозирования.
Я внес некоторые улучшения, но в настоящее время у меня возникли проблемы с производительностью, связанные с EagerExecute и EagerTensor. Ниже приведен снимок экрана TensorBoard после профилирования вывода.
Результаты профилирования
Код для вывода следующий:

Код: Выделить всё

    @tf.function
def inference_with_tf_function(self, input_data: tf.float32):
"""
Perform optimized inference using tf.function.

Args:
model (tf.keras.Model): The Keras model to be used for inference.
input_data (tf.Tensor): Input features for the model.

Returns:
tf.Tensor: The predicted output.
"""
return self.model(input_data, training=False)

def predict(self, features: np.ndarray):
input_tensor = tf.convert_to_tensor(features, dtype=tf.float32)
return self.inference_with_tf_function(input_tensor).numpy()
Я использую TensorFlow 2.17 (устаревший режим с Keras v2). Вывод выполняется на ЦП.
Мне нужен совет о том, как в полной мере использовать выполнение графа TensorFlow и избежать узких мест при выполнении Eager во время вывода. Будем очень признательны за любые идеи о том, как оптимизировать использование GraphTensor или идеи по повышению производительности в этих обстоятельствах.
Я уже пробовал настроить:

Код: Выделить всё

tf.config.run_functions_eagerly(False)
Но это не помогло повысить производительность.

Подробнее здесь: https://stackoverflow.com/questions/789 ... xecute-and

Вернуться в «Python»