iOS 快速入门

要开始在 iOS 上使用 TensorFlow Lite,我们建议浏览以下示例:

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'

指定版本

TensorFlowLiteSwift Pod 和 TensorFlowLiteObjC Pod 都有稳定版本和 Nightly 版本。如果您没有像上述示例那样指定版本约束,CocoaPods 将默认拉取最新的稳定版本。

您还可以指定版本约束。例如,如果您希望依赖版本 2.0.0,可以按照如下代码编写依赖关系:

pod 'TensorFlowLiteSwift', '~> 2.0.0'

这将确保您的应用中使用的是 TensorFlowLiteSwift Pod 最新可用的 2.x.y 版本。或者,如果您想依赖每日构建版本,可以编写如下代码:

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

从 2.4.0 版本和最新的 Nightly 版本开始,默认情况下,GPUCore ML 委托将从 Pod 中排除,以减少二进制文件的大小。您可以通过指定 subspec 来包含它们:

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 = [
      "//third_party/tensorflow/lite:framework",
  ],
)

导入库

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

import TensorFlowLite

对于 Objective-C 文件,导入包罗头:

#import "TFLTensorFlowLite.h"

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

@import TFLTensorFlowLite;

注:对于想要导入 Objective-C TensorFlow Lite 模块的 CocoaPods 开发者,还必须在 Podfile 中包括 use_frameworks!