如何在Spark上部署Tensorflow模型以仅进行推理

时间:2019-07-02 09:59:18

标签: java apache-spark tensorflow hdfs serving

我想部署一个大型模型,例如伯特,因为我没有足够的GPU,因此可以进行推断。现在我有两个问题。

  1. 我将模型导出为pb格式,并使用SavedModelBundle接口加载模型。
SavedModelBundle bundle=SavedModelBundle.load("E:\\pb\\1561992264","serve");

但是,我找不到一种为hdfs文件系统路径加载PB模型的方法

  1. spark环境的glibc版本与我训练的模型的tensorflow版本不兼容。有什么办法解决这个问题吗?

我不确定这是否是在Spark上提供张量流模型的好方法。任何其他建议,不胜感激!

1 个答案:

答案 0 :(得分:-1)

您可以使用 Elephas (https://github.com/maxpumperla/elephas),它支持在 Spark 上对 Keras 模型进行分布式训练和推理。既然你提到它是一个 Tensorflow 模型,那么这可能需要转换(详细在这里:How can I convert a trained Tensorflow model to Keras?),但是一旦它是一个 Keras 模型,它应该像这样简单:

from elephas.spark_model import SparkModel


model = ... # load Keras model
data = ... # load in the data you want to perform inference on
spark_model = SparkModel(model)
predictions = spark_model.predict(data) # perform distributed inference on Spark cluster or local cores, depending on how Spark session is configured