【问题标题】:Does Tensorflow server serve/support non-tensorflow based libraries like scikit-learn?Tensorflow 服务器是否提供/支持非基于 TensorFlow 的库,如 scikit-learn?
【发布时间】:2020-03-20 11:38:26
【问题描述】:
实际上,我们正在创建一个能够将 AI 用例投入生产的平台。 TFX 是首选,但如果我们想使用非基于 TensorFlow 的库(如 scikit learn 等)并希望包含 python 脚本来创建模型,该怎么办。这种模型的输出将由 tensorflow 服务器提供。如何确保能够在一个系统设计中同时运行基于 tensorflow 的模型和非基于 tensorflow 的库和模型。请提出建议。
【问题讨论】:
标签:
tensorflow
machine-learning
scikit-learn
tensorflow-serving
tfx
【解决方案1】:
下面提到的是 Deploy 和 Serve 的过程 Sci-kit Learn Model 在 Google Cloud Platform强>。
第一步是使用以下代码保存/导出 SciKit 学习模型:
from sklearn.externals import joblib
joblib.dump(clf, 'model.joblib')
下一步是将model.joblib文件上传到Google Cloud Storage.
之后,我们需要创建我们的模型和版本,指定我们正在加载一个scikit-learn model,并选择的runtime version Cloud ML engine,以及我们用于导出此模型的 Python 版本。
接下来,我们需要将数据作为一个简单的数组呈现给 Cloud ML Engine,编码为 json 文件,如下所示。我们也可以使用JSON Library。
print(list(X_test.iloc[10:11].values))
接下来,我们需要运行以下命令来执行推理,
gcloud ml-engine predict --model $MODEL_NAME --version $VERSION_NAME --json-instances $INPUT_FILE
更多信息请参考this link。