#python #tensorflow #tensorflow2.0 #tf.keras #onnx
Вопрос:
У меня есть модель, обученная Keras TF 2.0, и теперь я хотел бы передать ее кому-нибудь, кто будет использовать ее в качестве черного ящика в коде python. Они будут запускать его на 5 образцах одновременно в цикле. Они не могут знать входные значения перед запуском цикла, приложение должно находиться внутри цикла. Каков эффективный способ обернуть эту модель в функцию черного ящика?
Одним из шагов для повышения эффективности является загрузка модели один раз в начале кода, даже если это нарушает подход «черного ящика».
from tensorflow.keras.models import load_model
model = load_model(model_file)
def pred_o(in1, in2, batch_size=32):
import numpy as np
inputs = np.concatenate([in1,in2.reshape(-1,1)], axis=1)
scaler_mean_, scaler_scale_ = np.array([ 1., 2., 3.]), np.array([1., 2., 3.])
inputs = (inputs - scaler_mean_)/scaler_scale_
return model.predict(inputs, batch_size=batch_size).ravel()
Полезно ли отключать нетерпеливое выполнение? Перенесите модель, использующую ONNX, в какой-нибудь пакет быстрее при выводе по сравнению с TF?