AI平台在线预测与keras,自定义预处理?



我是部署新手,我对用于在线预测的AI平台几乎没有疑问。我正在使用张量流 2.1 。 我使用 keras API 训练了我的模型,并使用tf.saved_model.save函数来保存我的模型。一切正常,但我想将我的预处理(分词器和填充(包含在模型中(或者至少能够在"预测"函数中执行此操作(

我知道谷歌云 ml 引擎上有一个名为"自定义预测例程"的选项,它允许在我们想要的任何框架上执行此操作,但模型的限制为 500 MB。我使用的模型是 1.5 GB,由于我使用的是 TF,因此我想保持运行 2 GB 模型作为限制大小的优势。

现在,我正在做的是:

预处理数据 ->执行请求 -> 模型执行预测并发送结果 ->获得结果。

我想做:

对"原始数据"进行请求 -> 模型 进行预处理,进行预测并发送结果 ->得到结果

有没有办法做到这一点?

您可能不需要为此提供预处理容器。相反,请在导出之前编写自定义服务函数:

@tf.function(input_signature=[tf.TensorSpec([None], dtype=tf.string)])
def preproc_prediction(text):
# preprocess
text_str = text.numpy().decode('utf-8')
text_str = preproc(text_str)
# call model with preprocessed string
text = tf.constant(text_str)
pred = model(text, training=False)
return {
'preds': pred
}
model.save(EXPORT_PATH, signatures={'serving_default': preproc_prediction})

最新更新