iOS 快速入门

要开始在 iOS 上使用 TensorFlow Lite,我们建议您探索以下示例

iOS 图像分类示例

有关源代码的解释,您还应该阅读 TensorFlow Lite iOS 图像分类

此示例应用程序使用 图像分类 不断地对设备后置摄像头所看到的任何内容进行分类,并显示最有可能的分类结果。它允许用户在浮点模型或 量化 模型之间进行选择,并选择用于执行推理的线程数。

将 TensorFlow Lite 添加到您的 Swift 或 Objective-C 项目中

TensorFlow Lite 提供了用 SwiftObjective-C 编写的原生 iOS 库。使用 Swift 图像分类示例 作为起点,开始编写您自己的 iOS 代码。

以下部分演示了如何将 TensorFlow Lite Swift 或 Objective-C 添加到您的项目中

CocoaPods 开发人员

在您的 Podfile 中,添加 TensorFlow Lite pod。然后,运行 pod install

Swift

use_frameworks!
pod 'TensorFlowLiteSwift'

Objective-C

pod 'TensorFlowLiteObjC'

指定版本

对于 TensorFlowLiteSwiftTensorFlowLiteObjC pod,都提供了稳定版本和 nightly 版本。如果您没有像上面的示例那样指定版本约束,CocoaPods 默认情况下会拉取最新的稳定版本。

您也可以指定版本约束。例如,如果您希望依赖版本 2.10.0,您可以将依赖项写为

pod 'TensorFlowLiteSwift', '~> 2.10.0'

这将确保在您的应用程序中使用最新的可用 2.x.y 版本的 TensorFlowLiteSwift pod。或者,如果您希望依赖 nightly 版本,您可以写为

pod 'TensorFlowLiteSwift', '~> 0.0.1-nightly'

从 2.4.0 版本和最新的 nightly 版本开始,默认情况下 GPUCore ML 代理 被排除在 pod 之外,以减小二进制文件大小。您可以通过指定子规范来包含它们

pod 'TensorFlowLiteSwift', '~> 0.0.1-nightly', :subspecs => ['CoreML', 'Metal']

这将允许您使用添加到 TensorFlow Lite 的最新功能。请注意,一旦您在第一次运行 pod install 命令时创建了 Podfile.lock 文件,nightly 库版本将锁定在当前日期的版本。如果您希望将 nightly 库更新到较新的版本,您应该运行 pod update 命令。

有关指定版本约束的不同方法的更多信息,请参阅 指定 pod 版本

Bazel 开发人员

在您的 BUILD 文件中,将 TensorFlowLite 依赖项添加到您的目标中。

Swift

swift_library(
  deps = [
      "//tensorflow/lite/swift:TensorFlowLite",
  ],
)

Objective-C

objc_library(
  deps = [
      "//tensorflow/lite/objc:TensorFlowLite",
  ],
)

C/C++ API

或者,您可以使用 C APIC++ API

# Using C API directly
objc_library(
  deps = [
      "//tensorflow/lite/c:c_api",
  ],
)

# Using C++ API directly
objc_library(
  deps = [
      "//tensorflow/lite:framework",
  ],
)

导入库

对于 Swift 文件,导入 TensorFlow Lite 模块

import TensorFlowLite

对于 Objective-C 文件,导入伞头文件

#import "TFLTensorFlowLite.h"

或者,如果您在 Xcode 项目中设置了 CLANG_ENABLE_MODULES = YES,则导入模块

@import TFLTensorFlowLite;