Я внес некоторые улучшения, но в настоящее время у меня возникли проблемы с производительностью, связанные с 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 и избежать узких мест при выполнении Eager во время вывода. Будем очень признательны за любые идеи о том, как оптимизировать использование GraphTensor или идеи по повышению производительности в этих обстоятельствах.
Я уже пробовал настроить:
Код: Выделить всё
tf.config.run_functions_eagerly(False)
Подробнее здесь: https://stackoverflow.com/questions/789 ... xecute-and