【发布时间】:2018-06-18 11:03:43
【问题描述】:
我目前在 python 中有 TensorFlow 代码,并试图找到将其添加到 android 应用程序的最佳方法。正如我所看到的,有几个选项可以做到这一点。
我一直在研究机器学习套件 (https://developers.google.com/ml-kit/)。但我不确定这是否可行,因为我正在使用一些特定的 TensorFlow 函数在图中进行计算。例如这两行:
t_score = tf.reduce_mean(t_obj)
t_grad = tf.gradients(t_score, t_input)[0]
这可能与机器学习套件有关吗?
另一个选择是在没有 ML 套件的情况下使用 TensorFlow (lite) for Java,但看看 Java API 似乎是有限的,上面的这两个调用是否可以在 java 中进行?
最后一个选项是托管 python 代码并将其用作后端,以便 Android 应用可以将数据发送给它并接收结果。这将更加昂贵,因为无法在移动设备上进行计算。因此,如果可能,其他选项是首选。
你会怎么做?
【问题讨论】:
-
我会说现在使用 tensorflow 移动版,因为 tensorflow lite 仍处于开发者预览版中。我目前正在使用 TF mobile 进行对象检测,我也尝试了 TFLite,并且使用 TF mobile 获得了更好的结果..(我没有尝试 ML kit,所以很抱歉不能给你任何有用的信息)......和据我了解,如果您想使用一些尚未与库一起打包的特定操作,您只有一个选择是将这些操作添加到 .cpp 文件中。并使用 bazel 构建库,然后将其添加到您的 android 项目中..
-
bytedeco.org 的人们创建了一个包,用于在没有 JNI 的情况下直接从 Java 调用 C/C++ 代码。他们还在包括 Android 在内的各种平台上为 Tensorflow 创建了一个预设包。看看github.com/bytedeco/javacpp-presets/tree/master/tensorflow恕我直言,这将是您在 Android 上使用 Tensorflow 做更精细的事情的最佳选择。
标签: android python tensorflow firebase-mlkit