在 python 中保存 Keras/Sklearn 并在 tensorflow.js 中加载保存的模型

Saving a Keras/Sklearn in python and loading the saved model in 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')

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

您可以通过 pip install tensorflowjs 在 python 中做到这一点。

接下来,根据您自定义的名称: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 相同的位置,碎片也位于。

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

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