我使用TensorFlowJS在MobileNet logits结果之上训练了一个KNN。
我想知道如何将MobileNet + KNN的结果导出到TFLite模型。
const knn = knnClassifier.create()
const net = await mobilenet.load()
const handleTrain = (imgEl, label) => {
const image = tf.browser.fromPixels(imgEl);
const activation = net.infer(image, true);
knn.addExample(activation, label)
}
保存模型
保存模型这个例子将文件保存到本地文件系统,或者如果您需要将它保存在其他地方,那么请查看文档。
await model.save('file:///path/to/my-model');
在这一步之后,你应该有一个JSON文件和一个二进制权重文件。
2。将TensorFlow.js图层模型转换为已保存模型格式
tfjs_model.json
是您从上一步获得的model.json
的路径,saved_model
是您想要保存SavedModel格式的路径。
你可以在这里阅读更多关于使用TensorflowJS转换器的内容。
tensorflowjs_converter --input_format=tfjs_layers_model --output_format=keras_saved_model tfjs_model.json saved_model
3。从SavedModel格式转换为TFLite格式
从SavedModel格式转换为TFLite是按照文档推荐的方法。
import tensorflow as tf
# Convert the model
converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir) # path to the SavedModel directory
tflite_model = converter.convert()
# Save the model.
with open('model.tflite', 'wb') as f:
f.write(tflite_model)