Добавление содержимого ссылки, предоставленной @PedApps, ниже.
Введение:
Среда выполнения TensorFlow имеет компоненты, которые инициализируются лениво, чтоможет вызвать высокую задержку для первого запроса / запросов, отправленных модели после ее загрузки.
Эта задержка может быть на несколько порядков выше, чем у одного запроса логического вывода.
До уменьшить влияние отложенной инициализации на задержку запроса , возможно инициироватьинициализация подсистем и компонентов во время загрузки модели путем предоставления выборочного набора запросов на вывод вместе с SavedModel
.
Этот процесс известен как «прогрев» модели.
Использование:
SavedModel Warmup
поддерживается дляRegress, Classify, MultiInference and Predict
.
Чтобы запустить прогрев модели во время загрузки, вложите файл данных прогона в подпапку assets.extra
каталога SavedModel
.
Требования к моделипрогрев для правильной работы:
Имя файла прогрева: 'tf_serving_warmup_requests'
Расположение файла: assets.extra /
Формат файла: TFRecord с каждой записью в виде PredictionLog.
Количество записей прогрева <= 1000. </p>
Данные прогрева должны быть репрезентативными для запросов на вывод, используемых при обслуживании.
Пример фрагмента кода, вырабатывающего данные прогрева:
import tensorflow as tf
from tensorflow_serving.apis import classification_pb2
from tensorflow_serving.apis import inference_pb2
from tensorflow_serving.apis import model_pb2
from tensorflow_serving.apis import predict_pb2
from tensorflow_serving.apis import prediction_log_pb2
from tensorflow_serving.apis import regression_pb2
def main():
with tf.python_io.TFRecordWriter("tf_serving_warmup_requests") as writer:
# replace <request> with one of:
# predict_pb2.PredictRequest(..)
# classification_pb2.ClassificationRequest(..)
# regression_pb2.RegressionRequest(..)
# inference_pb2.MultiInferenceRequest(..)
log = prediction_log_pb2.PredictionLog(
predict_log=prediction_log_pb2.PredictLog(request=<request>))
writer.write(log.SerializeToString())
if __name__ == "__main__":
main()