android - 保存/传输模型 - Android 上的 TensorFlow Lite 迁移学习

标签 android tensorflow serialization android-bluetooth tensorflow-lite

我正在尝试创建一对 Android 应用程序:一个用于训练图像分类迁移学习模型,另一个仅使用经过训练的模型进行推理。这些应用程序将在不同的设备上运行,其用处在于在功能更强大的设备上训练模型,并能够在功能较弱的可穿戴设备上使用该模型进行推理。正在按照此处帖子中的说明实现迁移学习:https://blog.tensorflow.org/2019/12/example-on-device-model-personalization.html .

问题是我找不到一种好的方法来保存训练好的模型并将其从第一台设备传输到第二台设备。我已经尝试实现蓝牙传输的序列化,但 Android TFL 库不容易序列化。在 Android 上以某种方式保存 .tflite 文件有多困难?此功能是否已经存在但我错过了?任何帮助或想法将不胜感激。谢谢!

最佳答案

为了传输模型,您应该以二进制形式执行此操作,而不是尝试显式序列化/反序列化。 Android 上有许多不同的库可用于此目的,因此找到适合您的应用的库应该不会太难。

至于加载 TFLite 模型本身和运行推理,可以使用 TFLite Interpreter 类在设备本地执行此操作,只需将其指向设备上的文件即可。你可以在这里找到一个例子:https://www.tensorflow.org/lite/inference_with_metadata/lite_support

关于android - 保存/传输模型 - Android 上的 TensorFlow Lite 迁移学习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63460359/

相关文章:

Android:如何检测滚动何时结束

android - 按下返回按钮时关闭应用程序

android - 单击电话 : link 时抑制 native 对话框

python - 测试数据用于 keras fit_generator 中的验证数据

python - TensorFlow 估计器与手动/ session 方法

android - 推送通知是否需要实时互联网连接?

android - 在移动设备上更新 Tensorflow Lite 模型而不更新应用程序?

java - 为什么枚举在java中的序列化方式不同

java - 有没有办法用 Jackson 序列化Optional<T> 的实例?

django - 将 redis 缓存提取到 django rest 框架序列化程序中