如何在tensorflow中编译ios示例

时间:2016-06-12 01:22:16

标签: tensorflow

我刚刚意识到张量流已经支持了ios。但是如何在contrib / ios_examples目录中编译示例?

谢谢!

约什

1 个答案:

答案 0 :(得分:12)

我们仍在完成所有文档,但这是我将要添加到ios_examples目录的自述文件的草稿。我很想知道这是否有帮助,如果你有改进的想法。

TensorFlow iOS示例

此文件夹包含如何使用TensorFlow为iOS设备构建应用程序的示例。

构建示例

  • 您需要安装命令行工具的Xcode 7.3或更高版本。

  • 按照tensorflow/contrib/makefile中的说明编译包含核心TensorFlow代码的静态库。

  • 下载Inception v1,并将标签和图形文件解压缩到简单和相机示例中的数据文件夹中。

  • 将Xcode项目加载到simple子文件夹中,然后按下Command-R在模拟器或连接的设备上构建并运行它。

  • 您应该会看到一个带有"运行模型"的单屏应用。按钮。点击它,您应该看到下面显示一些调试输出,表明已经分析了示例Grace Hopper图像,并且识别出军装。

  • 一旦成功运行,请确保已连接真实设备并在相机子文件夹中打开Xcode项目。构建并运行后,您应该获得一个可以指向对象的实时摄像机视图,以获得实时识别结果。

故障排除

如果您遇到问题,请参阅以下常见问题清单:

  • 确保您在运行download_dependencies.sh之前运行compile_ios_protobuf.shcompile_ios_tensorflow脚本。

  • 检查您是否有Xcode版本7.3。

  • 如果存在Eigen错误,请查看Xcode项目的构建设置。在“搜索路径”部分中,您将看到随每个版本的框架而更改的Eigen包含目录。您可能需要将此更新为tensorflow / contrib / makefile / downloads文件夹中的版本。

  • 如果有关于没有会话注册的投诉,这意味着TensorFlow依赖注册的C ++全局构建器已正确链接。您必须确保您的项目使用force_load,如下所述。

创建自己的应用

您需要更新应用中的各种设置才能与TensorFlow相关联。您可以在示例项目中查看它们,但这是一个完整的纲要:

  • `compile_ios_tensorflow.sh&#39> script在tensorflow / contrib / makefile / gen / lib / libtensorflow-core.a中构建通用静态库。您需要将此添加到链接构建阶段,并在搜索路径中将tensorflow / contrib / makefile / gen / lib添加到库搜索路径设置。

  • 您还需要将tensorflow / contrib / makefile / gen / protobuf_ios / lib中的libprotobuf.a和libprotobuf-lite.a添加到您的构建阶段和库搜索路径。

    < / LI>
  • Header Search路径需要包含tensorflow的根文件夹,tensorflow / contrib / makefile / downloads / protobuf / src,tensorflow / contrib / makefile / downloads,tensorflow / contrib / makefile / downloads / eigen-eigen - ,和tensorflow / contrib / makefile / gen / proto。

  • 在“链接”部分中,您需要在“其他链接器标志”部分中添加-force_load,后跟TensorFlow静态库的路径。这可确保不会删除用于在库中注册重要类的全局C ++对象。对于链接器,它们可能看起来未使用,因为没有其他代码引用变量,但实际上它们的构造函数具有注册类的重要副作用。

  • 图书馆目前不支持bitcode,因此您需要在项目设置中禁用它。