如何在 iOS 中使用经过 Tensorflow 训练的机器学习模型

Posted

技术标签:

【中文标题】如何在 iOS 中使用经过 Tensorflow 训练的机器学习模型【英文标题】:How to use Tensorflow trained Machine Learning Model in iOS 【发布时间】:2018-02-01 00:04:41 【问题描述】:

我正在尝试识别使用 Tensorflow 训练的图像。我关注了这个steps 最后我成功地训练了我自己的数据集并给出了一个很好的预测结果。所有代码都在python中。现在我正在尝试在我的 ios 项目中使用这个训练有素的模型。我正在关注tutorial 在我的 iOS 项目中使用我训练有素的模型。但是当我按照这些步骤操作时,我的 mac 终端窗口中出现了一个错误,例如 -

"ERROR: /tensorflow/tensorflow/core/kernels/BUILD:2235:1: C++ compilation of rule '//tensorflow/core/kernels:self_adjoint_eig_v2_op' failed: gcc failed: error executing command /usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -B/usr/bin -B/usr/bin -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer -g0 -O2 '-D_FORTIFY_SOURCE=1' -DNDEBUG ... (remaining 124 argument(s) skipped): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 4. gcc: internal compiler error: Killed (program cc1plus)"

这个问题的解决方案是什么,或者有什么方法可以将此张量流模型转换为 iOS 支持的 Core ML 模型?在这里,我正在分享该错误的屏幕截图。请帮帮我。谢谢。

【问题讨论】:

【参考方案1】:

这很可能是由于 docker 容器内的内存不足,无法使用默认参数运行 bazel。尝试使用这些额外标志重新运行(在bazel clean 之后)构建命令:--local_resources 2048,2.0,1.0 -j 1。您也可以尝试提供更多资源:--local_resources 4096,2.0,1.0 -j 1

以下是此问题的一些链接:https://github.com/tensorflow/tensorflow/issues/1530 Tensorflow Serving Compile Error Using Docker on OSX

【讨论】:

以上是关于如何在 iOS 中使用经过 Tensorflow 训练的机器学习模型的主要内容,如果未能解决你的问题,请参考以下文章

如何保存经过训练的模型(估计器)并将其加载回来以使用 Tensorflow 中的数据对其进行测试?

如何使用tensorflow_io的IODataset?

中文视频教学 | 在 iOS 中使用 TensorFlow Lite

如何在Tensorflow中添加未知单词的新嵌入(训练和预设测试)

无法使用经过训练的 Tensorflow 模型

如何在 tensorflow 服务 (gpu) 中加载自定义动态库 (*.so)?