在 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
我有一个训练有素的 .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