Usa una build TensorFlow Lite personalizzata

Se sei uno sviluppatore ML esperto e la libreria TensorFlow Lite predefinita non soddisfa le tue esigenze, puoi utilizzare una build TensorFlow Lite personalizzata con ML Kit. Ad esempio, potresti voler aggiungere operazioni personalizzate.

Prerequisiti

  • Un ambiente di compilazione TensorFlow Lite funzionante
  • Un checkout di TensorFlow Lite 1.10.1

Puoi controllare la versione corretta usando Git:

git checkout -b work
git reset --hard tflite-v1.10.1
git cherry-pick 4dcfddc5d12018a5a0fdca652b9221ed95e9eb23

Costruire la libreria Tensorflow Lite

  1. Costruisci Tensorflow Lite (con le tue modifiche) seguendo le istruzioni standard
  2. Costruisci il quadro:
tensorflow/lite/lib_package/create_ios_frameworks.sh

Il framework generato può essere trovato su tensorflow/lite/gen/ios_frameworks/tensorflow_lite.framework.zip

Creazione di un pod locale

  1. Crea una directory per il tuo pod locale
  2. Esegui pod lib create TensorFlowLite nella directory che hai creato
  3. Crea una directory Frameworks all'interno della directory TensorFlowLite
  4. Decomprimi il file tensorflow_lite.framework.zip generato sopra
  5. Copia il tensorflow_lite.framework decompresso in TensorFlowLite/Frameworks
  6. Modifica il TensorFlowLite/TensorFlowLite.podspec generato per 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

Riferimento al pod personalizzato nel tuo 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 Pod privati ​​nella documentazione di Cocoapods. Tieni presente che la versione deve corrispondere esattamente e dovresti fare riferimento a questa versione quando includi il pod dal tuo repository privato, ad esempio pod 'TensorFlowLite', "1.10.1" .