tensorflow - 在 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')
解决方案
为了使用 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
推荐阅读
- firebase - Firebase 实时数据库中的存储大小是如何计算的?
- excel - 发布 RunTime 91 数据输入
- .net - 使用 xunit 使用 .Net Framework 4.7.2 在 jenkins 中生成 .TRX 文件
- selenium - 在 Intellij 中离线配置 Selenium
- c# - 使用 .StartsWith 和正则表达式过滤列表?
- c# - 删除文本窗口窗体上的白色轮廓
- python - Python写入功能未保存所有图像
- sql-server - 努力在动态查询中使用 IN 运算符和列表参数。Jaspersoft 工作室
- javascript - 如何在运行时配置 MsAdalAngular6Module?
- python - 使用令牌对 Kubernetes 集群进行身份验证