iOS クイックスタート

LiteRT を使用すると、iOS アプリで TensorFlow、PyTorch、JAX モデルを実行できます。LiteRT システムは、iOS でモデルを迅速かつ効率的に実行するための、事前構築済みでカスタマイズ可能な実行環境を提供します。また、バージョン管理の柔軟性を高め、パフォーマンスを向上させるために、coreML や Metal などのオプションのデリゲートを使用できます。

LiteRT を使用する iOS アプリの例については、LiteRT サンプル リポジトリをご覧ください。

Swift または Objective-C プロジェクトに LiteRT を追加する

LiteRT には、SwiftObjective-C で記述されたネイティブ iOS ライブラリが用意されています。

以降のセクションでは、LiteRT Swift または Objective-C をプロジェクトに追加する方法について説明します。

CocoaPods デベロッパー

Podfile に LiteRT Pod を追加します。その後、pod install を実行します。

Swift

use_frameworks!
pod 'TensorFlowLiteSwift'

Objective-C

pod 'TensorFlowLiteObjC'

バージョンの指定

TensorFlowLiteSwiftTensorFlowLiteObjC の両方のポッドで、安定版リリースとナイトリー リリースを使用できます。上記の例のようにバージョン制約を指定しない場合は、デフォルトで最新の安定版が pull されます。

バージョン制約を指定することもできます。たとえば、バージョン 2.10.0 に依存する場合は、依存関係を次のように記述します。

pod 'TensorFlowLiteSwift', '~> 2.10.0'

これにより、アプリで使用可能な最新の 2.x.y バージョンの TensorFlowLiteSwift Pod が使用されます。ナイトリー ビルドに依存する場合は、次のように記述します。

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

2.4.0 バージョンと最新のナイトリー リリースでは、バイナリ サイズを削減するために、デフォルトで GPUCore ML デリゲートが Pod から除外されます。これらは、subspec を指定して含めることができます。

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

または、C API または 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;