事前に構築された TensorFlow Lite ライブラリがニーズを満たしていない場合、ML デベロッパーとしての経験が豊富であれば、ML Kit とともにカスタム TensorFlow Lite ビルドを使用できます。たとえば、カスタム オペレーターを追加することができます。
前提条件
- 作業中の TensorFlow Lite ビルド環境
- TensorFlow Lite 1.10.1 のチェックアウト
Git を使用すると、適切なバージョンをチェックアウトできます。
git checkout -b work
git reset --hard tflite-v1.10.1
git cherry-pick 4dcfddc5d12018a5a0fdca652b9221ed95e9eb23
Tensorflow Lite ライブラリのビルド
- 標準的な手順に沿って、(変更を加えて)Tensorflow Lite をビルドします。
- フレームワークをビルドします。
tensorflow/lite/lib_package/create_ios_frameworks.sh
生成されたフレームワークは tensorflow/lite/gen/ios_frameworks/tensorflow_lite.framework.zip
にあります。
ローカルポッドの作成
- ローカルポッド用のディレクトリを作成します。
- 作成したディレクトリで
pod lib create TensorFlowLite
を実行します。 TensorFlowLite
ディレクトリ内にFrameworks
ディレクトリを作成します。- 上記の手順で生成した
tensorflow_lite.framework.zip
ファイルを解凍します。 - 解凍した
tensorflow_lite.framework
をTensorFlowLite/Frameworks
にコピーします。 - 目的のライブラリを参照するように、生成された
TensorFlowLite/TensorFlowLite.podspec
を変更します。
Pod::Spec.new do |s|
s.name = 'TensorFlowLite'
s.version = '0.1.7' # Version must match.
s.ios.deployment_target = '9.0'
# ... make other changes as desired
internal_pod_root = Pathname.pwd
s.frameworks = 'Accelerate'
s.libraries = 'c++'
s.vendored_frameworks = 'Frameworks/tensorflow_lite.framework'
s.pod_target_xcconfig = {
'SWIFT_VERSION' => '4.0',
'INTERNAL_POD_ROOT' => "#{internal_pod_root}",
'HEADER_SEARCH_PATHS' => "$(inherited) '${INTERNAL_POD_ROOT}/Frameworks/tensorflow_lite.framework/Headers'",
'OTHER_LDFLAGS' => "-force_load '${INTERNAL_POD_ROOT}/Frameworks/tensorflow_lite.framework/tensorflow_lite'"
}
end
プロジェクト内のカスタムポッドの参照
カスタムポッドは、アプリの Podfile
から直接参照することでインクルードできます。
pod 'Firebase/MLModelInterpreter'
pod 'TensorFlowLite', :path => 'path/to/your/TensorflowLite'
プライベート ポッドを管理するためのその他のオプションについては、CocoaPods ドキュメントのプライベート ポッドをご覧ください。バージョンは正確に一致している必要があります。プライベート リポジトリからポッドをインクルードする場合は、該当するバージョン(pod 'TensorFlowLite', "1.10.1"
など)を参照する必要があります。