返回介绍

在 iOS 中构建 TensorFlow

发布于 2025-01-22 23:08:16 字数 3407 浏览 0 评论 0 收藏 0

使用 CocoaPods

在 iOS 上开始使用 TensorFlow 最简单的方法是使用 CocoaPods 包管理器。你可以将 TensroFlow-experimental 这个 pod 添加到你的 Podfile 中,进而安装通用的二进制框架。它上手简单,但却有一些难以定制的缺点。定制对缩小二进制大小非常重要。如果你确实需要具备自定义库的能力,请查看后面的小节来了解相关方法。

创建应用

你若你想在自己的应用中增加 TensorFlow 的能力,那么:

  • 在 Xcode 中创建或加载你的应用。
  • 将下面的内容添加一个命名为 Podfile 的文件到根目录下:
      target 'YourProjectName'
      pod 'TensorFlow-experimental'
    
  • 运行 pod install 来下载并安装 TensorFlow-experimental pod。
  • 打开 YourProjectName.xcworkspace 并添加你自己的代码。
  • 在应用的 Build Settings 选项中,确保在 Other Linker FlagsHeader Search Paths 中添加 $(inherited)

运行示例

你需要使用 Xcode 7.3 或更新的版本来运行我们的 iOS 示例程序。

目前有三个例子,分别叫做:simple、benchmark 和 camera。现在你可以通过克隆 TensorFlow 仓库来下载示例代码(我们计划在日后将例子在单独的仓库进行提供)从 TensorFlow 文件夹根目录下载 Inception v1 ,然后将标签和图形文件提取到 data 文件夹中(simple 和 camera 示例步骤一致):

mkdir -p ~/graphs
curl -o ~/graphs/inception5h.zip \
 https://storage.googleapis.com/download.tensorflow.org/models/inception5h.zip \
 && unzip ~/graphs/inception5h.zip -d ~/graphs/inception5h
cp ~/graphs/inception5h/* tensorflow/examples/ios/benchmark/data/
cp ~/graphs/inception5h/* tensorflow/examples/ios/camera/data/
cp ~/graphs/inception5h/* tensorflow/examples/ios/simple/data/

切换到其中一个示例的目录,下载 Tensorflow-experimental pod,并打开 Xcode workspace。注意,安装 pod 的时间可能会很长(大约 450MB)。如果你想运行 Simple 示例,那么:

cd tensorflow/examples/ios/simple
pod install
open tf_simple_example.xcworkspace   # note .xcworkspace, not .xcodeproj
                                     # this is created by pod install

在 Xcode 模拟器中运行 Simple 示例程序。你可以看到一个有着 Run Model 按钮的单屏应用。点击它,你会在下方的日志框中看到一些调试信息,这表明已经分析了目录数据中的 Grace Hopper 图像,并识别出了军装。使用相同的过程可以运行其他的样本。相机示例则需要连接一个真实的 iOS 设备。一旦构建并运行它,就能得到一个实时的相机视图,你便能够将相机对准任何对象从而获得识别的结果。

iOS 示例细节

有三个 iOS 示例程,均在 Xcode 项目中定义: tensorflow/examples/ios

  • Simple :这是一个展示了如何在尽可能少的代码下加载和运行 TensorFlow 模型的简单例子。它值包含一个单一视图,并包含一个按钮,用户点击时执行模型的加载和推断。
  • Camera :这个例子与 Android TF Classify 演示程序非常像。它加载了 Inception v3 并输出了估计出的最佳的标签,以显示实时相机图像中的内容。与 Android 版本一样,你可以使用 TensorFlow for Poets 来训练自定义的模型,并以最小的代码修改将其放入此示例中。
  • Benchmark :它与 Simple 很接近,但它会重复运行计算图并将类似的统计信息输出到 Android 上的基准测试工具中。

排错

  • 确保你使用的是 TensorFlow-experimental pod(而不是 TensorFlow)。
  • TensorFlow-experimental pod 大约有 450MB。原因在于我们绑定了多个平台,而 pod 包含了所有平台的 TensorFlow 功能(例如:运算)。最终应用的大小很小(约为 25 MB)。使用完整的 pod 在自己的开发过程中非常方便,但请阅读下一节内容来交接如何通过构建自己定制的 TensorFlow 库来缩减大小。

从源码构建 TensorFlow iOS 库

尽管 Cocoapods 是最简单快捷的入门方式,但你有时候需要更加灵活的确定你的应用程序需要附带那些 TensorFlow 组件。对于这种情况,你可以从源码构建 iOS 库,请参考 这篇教程 来了解相关操作的详细说明。

如果您发现本页面存在错误或可以改进,请 点击此处 帮助我们改进。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文