Utiliser une version personnalisée de TensorFlow Lite

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

Prérequis

  • Un environnement de compilation TensorFlow Lite opérationnel
  • Un extrait de TensorFlow Lite 1.10.1

Vous pouvez extraire la version correcte à l'aide de Git:

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

Créer la bibliothèque TensorFlow Lite

  1. Créez TensorFlow Lite (avec vos modifications) en suivant les instructions standards.
  2. Créez le framework:
tensorflow/lite/lib_package/create_ios_frameworks.sh

Le framework généré est disponible à l'adresse tensorflow/lite/gen/ios_frameworks/tensorflow_lite.framework.zip

Créer un pod local

  1. Créer un répertoire pour votre pod local
  2. Exécutez pod lib create TensorFlowLite dans le répertoire que vous avez créé.
  3. Créer 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 fichier 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 à partir du fichier Podfile de votre application:

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

Pour connaître les autres options de gestion des pods privés, consultez la section Pods privés dans la documentation Cocoapods. Notez que la version doit correspondre exactement, et que vous devez faire référence à cette version lorsque vous incluez le pod à partir de votre dépôt privé, par exemple pod 'TensorFlowLite', "1.10.1".