Utilizza 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 estrarre la 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. Crea 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 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 file tensorflow_lite.framework decompresso in TensorFlowLite/Frameworks
  6. Modifica il file TensorFlowLite/TensorFlowLite.podspec generato in modo che faccia 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 facendo riferimento direttamente a Podfile della tua app:

pod 'Firebase/MLModelInterpreter'
pod 'TensorFlowLite', :path => 'path/to/your/TensorflowLite'

Per altre opzioni di gestione dei pod privati, vedi Pod privati 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".