Se sei uno sviluppatore ML esperto e la libreria predefinita di TensorFlow Lite non soddisfa le tue esigenze, puoi utilizzare una compilazione personalizzata di TensorFlow Lite con ML Kit. Ad esempio, potresti voler aggiungere operazioni personalizzate.
Prerequisiti
- Un ambiente di compilazione TensorFlow Lite funzionante
- Un controllo di TensorFlow Lite 1.10.1
Puoi eseguire il check out della versione corretta utilizzando Git:
git checkout -b work
git reset --hard tflite-v1.10.1
git cherry-pick 4dcfddc5d12018a5a0fdca652b9221ed95e9eb23
Creazione della libreria TensorFlow Lite
- Compila Tensorflow Lite (con le tue modifiche) seguendo le istruzioni standard
- Crea il framework:
tensorflow/lite/lib_package/create_ios_frameworks.sh
Il framework generato è disponibile all'indirizzo tensorflow/lite/gen/ios_frameworks/tensorflow_lite.framework.zip
Creazione di un pod locale
- Crea una directory per il pod locale
- Esegui
pod lib create TensorFlowLite
nella directory che hai creato - Crea una directory
Frameworks
all'interno della directoryTensorFlowLite
- Decomprimere il file
tensorflow_lite.framework.zip
generato sopra - Copia
tensorflow_lite.framework
scompattato inTensorFlowLite/Frameworks
- Modifica il file
TensorFlowLite/TensorFlowLite.podspec
generato in modo da fare riferimento alla libreria:
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
Fare riferimento al pod personalizzato nel progetto
Puoi includere il pod personalizzato facendovi riferimento direttamente dal Podfile
della tua app:
pod 'Firebase/MLModelInterpreter'
pod 'TensorFlowLite', :path => 'path/to/your/TensorflowLite'
Per altre opzioni per la gestione dei pod privati, consulta
Private Pods nella
documentazione di Cocoapods. Tieni presente che la versione deve corrispondere esattamente e devi fare riferimento a questa versione quando includi il pod dal tuo repository privato, ad esempio pod 'TensorFlowLite', "1.10.1"
.