借助 LiteRT,您可以在 iOS 应用中运行 TensorFlow、PyTorch 和 JAX 模型。LiteRT 系统提供预构建且可自定义的执行环境,可快速高效地在 iOS 上运行模型,并提供额外的版本管理灵活性,以及 coreML 和 Metal 等可选代理以提升性能。
例如,使用 LiteRT 的 iOS 应用,请参阅 LiteRT 示例代码库。
将 LiteRT 添加到您的 Swift 或 Objective-C 项目
LiteRT 提供以 Swift 和 Objective-C 编写的原生 iOS 库。
以下部分演示了如何将 LiteRT Swift 或 Objective-C 添加到您的项目中:
CocoaPods 开发者
在 Podfile
中,添加 LiteRT pod。然后,运行 pod install
。
Swift
use_frameworks!
pod 'TensorFlowLiteSwift'
Objective-C
pod 'TensorFlowLiteObjC'
指定版本
TensorFlowLiteSwift
和 TensorFlowLiteObjC
pod 都提供稳定版和夜间版。如果您未指定版本约束条件(如上例所示),CocoaPods 将默认拉取最新的稳定版。
您还可以指定版本约束条件。例如,如果您希望依赖于版本 2.10.0,可以将依赖项编写为:
pod 'TensorFlowLiteSwift', '~> 2.10.0'
这将确保应用中使用的是最新的 2.x.y 版 TensorFlowLiteSwift
pod。或者,如果您想依赖于每夜 build,可以编写以下代码:
pod 'TensorFlowLiteSwift', '~> 0.0.1-nightly'
从 2.4.0 版和最新的每夜版本开始,系统会默认从 pod 中排除 GPU 和 Core ML 代理,以减小二进制文件大小。您可以通过指定子规范来添加它们:
pod 'TensorFlowLiteSwift', '~> 0.0.1-nightly', :subspecs => ['CoreML', 'Metal']
这样,您就可以使用 LiteRT 中新增的最新功能。请注意,在您首次运行 pod install
命令时创建 Podfile.lock
文件后,每夜库版本将锁定为当前日期的版本。如果您想将每夜库更新为较新版本,则应运行 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 文件,请导入 LiteRT 模块:
import TensorFlowLite
对于 Objective-C 文件,请导入伞形头文件:
#import "TFLTensorFlowLite.h"
或者,如果您在 Xcode 项目中设置了 CLANG_ENABLE_MODULES = YES
,则为模块:
@import TFLTensorFlowLite;