首页 > 解决方案 > 在 python 中保存 Keras/Sklearn 并在 tensorflow.js 中加载保存的模型

问题描述

我有一个训练有素的 .pkl 格式的 sklearn SVM 模型和一个 Keras .h5 模型。我可以在浏览器上使用tensorflow.js加载这些模型吗?我在 python 中进行了大部分编码,但不确定如何使用 tensorflow.js 我的模型保存代码如下所示

from sklearn.externals import joblib 

joblib.dump(svc,'model.pkl') 
model = joblib.load('model.pkl')  
prediction = model.predict(X_test) 

#------------------------------------------------------------------

from keras.models import load_model

model.save('model.h5')  
model = load_model('my_model.h5')

标签: tensorflowkerasscikit-learntensorflow.js

解决方案


为了使用 tensorflow-js 部署模型,您需要使用tensorflowjs_converter,因此您还需要安装tensorflowjs依赖项。

你可以在 python 中通过 pip install tensorflowjs.

接下来,您通过此操作转换您训练的模型,根据您的自定义名称:tensorflowjs_converter --input_format=keras /tmp/model.h5 /tmp/tfjs_model,其中最后一个路径是转换结果的输出路径。

请注意,转换后,您将获得一个model.json(模型的架构)和一个 N 分片列表(权重分成 N 个分片)。

然后,在 JavaScript 中,您需要使用函数tf.loadLayersModel(MODEL_URL),其中 MODEL_URL 是指向您的 model.json 的 url。确保在与 model.json 相同的位置,也可以找到分片。

由于这是一个异步操作(您不希望您的网页在模型加载时被阻塞),您需要使用 JavaScriptawait关键字;因此await tf.loadLayersModel(MODEL_URL)

请查看以下链接以查看示例: https ://www.tensorflow.org/js/guide/conversion


推荐阅读