我有一个经过训练的 .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
关键字;因此等待 tf.loadLayersModel(MODEL_URL)
请查看以下链接以查看示例:https://www.tensorflow.org/js/guide/conversion
关于tensorflow - 在 python 中保存 Keras/Sklearn 并在 tensorflow.js 中加载保存的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59873062/