要开始在 iOS 上使用 TensorFlow Lite,我们建议您探索以下示例
有关源代码的解释,您还应该阅读 TensorFlow Lite iOS 图像分类。
此示例应用程序使用 图像分类 不断地对设备后置摄像头所看到的任何内容进行分类,并显示最有可能的分类结果。它允许用户在浮点模型或 量化 模型之间进行选择,并选择用于执行推理的线程数。
将 TensorFlow Lite 添加到您的 Swift 或 Objective-C 项目中
TensorFlow Lite 提供了用 Swift 和 Objective-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
和 TensorFlowLiteObjC
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 版本开始,默认情况下 GPU 和 Core 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
# 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;