带有 Tensorflow Lite 的 Kotlin 多平台

Kotlin Multiplateform with TensorflowLite

有没有办法在共享逻辑中使用Kotlin Multiplateform和tensor flow lite模型开发项目。目标是使用具有相同 kotlin 代码的相同张量流模型从中检索数据,同时使用 android 和 iOS。 UI 需要与特定于平台的代码分开开发。

我已经探索了许多 kotlin MPP 项目,它们具有 kotlin 的共享逻辑,可用于 android 和 iOS,但我对 tenserflow lite 模型有疑问。它会在 kotlin 的共享逻辑中正常工作并向 android 和 iOS 提供相同的数据吗?

iOS 和 Android 都有使用 TensorFlow 的库,但这些库是不同的库,它们是为每个平台独立编写的(不像 TensorFlow C API 可以 built 对于 Android 和 iOS)。所以你将无法在普通的 kotlin 代码中使用官方支持的 TensorFlow API。

幸运的是,您可以通过引入通用 interface TensorFlowNativeApi 将通用逻辑与依赖于平台的 TensorFlow API 调用分开。只需将一些必要的 TensorFlow API 方法添加到此接口中并在公共代码中调用它们即可。然后在每个平台的应用程序中创建一个实现此接口的 class(针对特定平台使用 TensorFlow 库)并将此实现传递给使用 TensorFlow 的通用代码。

同样值得注意的是,相同的 TensorFlow Lite 模型可以在两个平台上使用,只是必须使用 converter.

从 TensorFlow 模型转换而来