Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python AI平台使用keras进行在线预测,自定义预处理?_Python_Tensorflow_Keras_Google Cloud Ml - Fatal编程技术网

Python AI平台使用keras进行在线预测,自定义预处理?

Python AI平台使用keras进行在线预测,自定义预处理?,python,tensorflow,keras,google-cloud-ml,Python,Tensorflow,Keras,Google Cloud Ml,我在部署方面是新手,我对用于在线预测的AI平台没有什么疑问。我使用的是Tensorflow 2.1。 我用KerasAPI训练了我的模型,并使用tf.saved\u model.save函数来保存我的模型。一切正常,但我希望将预处理(标记器和填充)包括到模型中(或者至少能够在“predict”函数中完成) 我知道google cloud ml引擎上有一个名为“自定义预测例程”的选项,它允许在我们想要的任何框架上执行该操作,但模型的限制是500 mb。我使用的型号是1.5 gb,由于我使用TF,我

我在部署方面是新手,我对用于在线预测的AI平台没有什么疑问。我使用的是Tensorflow 2.1。 我用KerasAPI训练了我的模型,并使用
tf.saved\u model.save
函数来保存我的模型。一切正常,但我希望将预处理(标记器和填充)包括到模型中(或者至少能够在“predict”函数中完成)

我知道google cloud 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})

嗨,谢谢你的回答。我需要将文本(tf.string)转换成字符串来进行预处理。你知道这是否可能吗?我尝试使用.numpy(),但它似乎不起作用。这是因为.numpy()提供字节。您必须通过解码将其转换为字符串。我已经编辑了我的答案。希望有帮助。谢谢你的回答。对不起,我不清楚。numpy方法似乎不存在于我的tf.tensor字符串中。我不知道为什么,因为在功能之外,它可以工作。convert_pytorch2TF.py:21 preproc_prediction*text=tf.constant(tokenizer.encode(text.numpy(),max_length=max_leng,pad_to_max_length=True))[None,:]AttributeError:“Tensor”对象没有属性“numpy”,你能告诉我你采用了什么解决方案吗??不知何故,我也面临着类似的问题。