在 iOS 中构建 TensorFlow
使用 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 Flags 和 Header 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论