Wenn Sie ein erfahrener ML-Entwickler sind und die vorgefertigte TensorFlow Lite-Bibliothek Ihren Anforderungen nicht entspricht, können Sie einen benutzerdefinierten TensorFlow Lite- Build mit ML Kit verwenden. Beispielsweise möchten Sie möglicherweise benutzerdefinierte Operationen hinzufügen.
Voraussetzungen
- Eine funktionierende TensorFlow Lite -Build-Umgebung
- Ein Test von TensorFlow Lite 1.10.1
Sie können die richtige Version mit Git überprüfen:
git checkout -b work
git reset --hard tflite-v1.10.1
git cherry-pick 4dcfddc5d12018a5a0fdca652b9221ed95e9eb23
Aufbau der Tensorflow Lite-Bibliothek
- Erstellen Sie Tensorflow Lite (mit Ihren Änderungen) gemäß den Standardanweisungen
- Erstellen Sie das Framework:
tensorflow/lite/lib_package/create_ios_frameworks.sh
Das generierte Framework finden Sie unter tensorflow/lite/gen/ios_frameworks/tensorflow_lite.framework.zip
Einen lokalen Pod erstellen
- Erstellen Sie ein Verzeichnis für Ihren lokalen Pod
- Führen Sie
pod lib create TensorFlowLite
in dem von Ihnen erstellten Verzeichnis aus - Erstellen Sie ein
Frameworks
Verzeichnis imTensorFlowLite
Verzeichnis - Entpacken Sie die oben generierte Datei
tensorflow_lite.framework.zip
- Kopieren Sie das entpackte
tensorflow_lite.framework
nachTensorFlowLite/Frameworks
- Ändern Sie die generierte
TensorFlowLite/TensorFlowLite.podspec
, um auf die Bibliothek zu verweisen:
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
Verweisen auf den benutzerdefinierten Pod in Ihrem Projekt
Sie können den benutzerdefinierten Pod einschließen, indem Sie ihn direkt aus der Podfile
Ihrer App referenzieren:
pod 'Firebase/MLModelInterpreter'
pod 'TensorFlowLite', :path => 'path/to/your/TensorflowLite'
Weitere Optionen zum Verwalten privater Pods finden Sie unter Private Pods in der Cocoapods-Dokumentation. Beachten Sie, dass die Version genau übereinstimmen muss und Sie auf diese Version verweisen sollten, wenn Sie den Pod aus Ihrem privaten Repository einbinden, z. B. pod 'TensorFlowLite', "1.10.1"
.