Utilizza una build TensorFlow Lite personalizzata

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

  1. Compila Tensorflow Lite (con le tue modifiche) seguendo le istruzioni standard
  2. 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

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