Utiliser une version personnalisée de TensorFlow Lite

Si vous êtes un développeur ML expérimenté et que la bibliothèque TensorFlow Lite prédéfinie ne répond pas à vos besoins, vous pouvez utiliser une version TensorFlow Lite personnalisée avec ML Kit. Par exemple, vous souhaiterez peut-être ajouter des opérations personnalisées.

Conditions préalables

  • Un environnement de construction TensorFlow Lite fonctionnel
  • Une extraction de TensorFlow Lite 1.10.1

Vous pouvez consulter la version correcte en utilisant Git :

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

Construire la bibliothèque Tensorflow Lite

  1. Créez Tensorflow Lite (avec vos modifications) en suivant les instructions standard
  2. Construire le cadre :
tensorflow/lite/lib_package/create_ios_frameworks.sh

Le framework généré peut être trouvé sur tensorflow/lite/gen/ios_frameworks/tensorflow_lite.framework.zip

Créer un pod local

  1. Créez un répertoire pour votre pod local
  2. Exécutez pod lib create TensorFlowLite dans le répertoire que vous avez créé
  3. Créez un répertoire Frameworks dans le répertoire TensorFlowLite
  4. Décompressez le fichier tensorflow_lite.framework.zip généré ci-dessus
  5. Copiez le tensorflow_lite.framework décompressé dans TensorFlowLite/Frameworks
  6. Modifiez le TensorFlowLite/TensorFlowLite.podspec généré pour référencer la bibliothèque :
    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

Référencer le pod personnalisé dans votre projet

Vous pouvez inclure le pod personnalisé en le référençant directement depuis Podfile de votre application :

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

Pour d'autres options de gestion des pods privés, consultez Pods privés dans la documentation Cocoapods. Notez que la version doit correspondre exactement et vous devez référencer cette version lorsque vous incluez le pod de votre référentiel privé, par exemple pod 'TensorFlowLite', "1.10.1" .