【问题标题】:Model is not tightly coupled with my app模型与我的应用程序不紧密耦合
【发布时间】:2018-01-08 09:26:20
【问题描述】:

我正在使用本教程“https://codelabs.developers.google.com/codelabs/tensorflow-for-poets/#3”使用适用于 Android 的 Tensor 流构建 android 应用程序 现在我想为另一组图像更改模型,但我不想对 Android 应用程序进行任何更改。我们如何实现这一点?

【问题讨论】:

  • 也许让演示项目在某个下载文件夹而不是apk中搜索模型文件?
  • 但 Tensor flow SDK api 之类的“TensorFlowInferenceInterface”正在 Assets 中寻找文件,而我没有将任何其他方法放入 SDK,即从其他位置选择文件。
  • 不改变代码是不可能的,因为模型资产文件是硬编码的。但您可以轻松地将文件传递给 TensorFlowInferenceInterface,如此处github.com/Qualeams/… 或替换资产模型文件
  • 我一直在寻找将模型文件放置在应用程序中的资产文件夹以外的选项。当模型文件发生变化时,我不想更改移动应用程序。因为如果模型发生微小变化或在模型中添加少量图像,则不需要更改我的应用程序,因为与我公司的所有用户共享 APK 将是另一项任务。

标签: android tensorflow tensorflow-serving


【解决方案1】:

如果您想将模型与应用分开部署,您可以从服务器下载并保存在文件系统中。

然后只需将文件路径传递给 InferenceInterface。例如:

String folder_path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/.models";
String model_name = "model.pb";
new TensorFlowInferenceInterface(getAssets(), folder_path + "/" + model_name);

TensorFlowInferenceInterface 的这个实现将检查文件https://github.com/tensorflow/tensorflow/blob/25d275280dfb163674f81c7681c2c1d34545a155/tensorflow/contrib/android/java/org/tensorflow/contrib/android/TensorFlowInferenceInterface.java#L76

【讨论】:

    猜你喜欢
    • 2011-05-24
    • 2019-06-08
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    相关资源
    最近更新 更多