Usar una compilación personalizada de TensorFlow Lite

Si es un desarrollador de aprendizaje automático con experiencia y la biblioteca TensorFlow Lite prediseñada no satisface sus necesidades, puede usar una compilación personalizada de TensorFlow Lite con el kit de aprendizaje automático. Por ejemplo, es posible que desees agregar operaciones personalizadas.

Requisitos previos

  • Un entorno de construcción de TensorFlow Lite que funcione
  • Una revisión de TensorFlow Lite 1.10.1

Puedes consultar la versión correcta usando Git:

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

Construyendo la biblioteca Tensorflow Lite

  1. Construya Tensorflow Lite (con sus modificaciones) siguiendo las instrucciones estándar
  2. Construya el marco:
tensorflow/lite/lib_package/create_ios_frameworks.sh

El marco generado se puede encontrar en tensorflow/lite/gen/ios_frameworks/tensorflow_lite.framework.zip

Creando un pod local

  1. Crea un directorio para tu pod local
  2. Ejecute pod lib create TensorFlowLite en el directorio que creó
  3. Cree un directorio Frameworks dentro del directorio TensorFlowLite
  4. Descomprima el archivo tensorflow_lite.framework.zip generado arriba
  5. Copie el tensorflow_lite.framework descomprimido en TensorFlowLite/Frameworks
  6. Modifique el TensorFlowLite/TensorFlowLite.podspec generado para hacer referencia a la biblioteca:
    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

Hacer referencia al pod personalizado en su proyecto

Puedes incluir el pod personalizado haciendo referencia a él directamente desde Podfile de tu aplicación:

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

Para conocer otras opciones para administrar pods privados, consulte Pods privados en la documentación de Cocoapods. Tenga en cuenta que la versión debe coincidir exactamente y debe hacer referencia a esta versión al incluir el pod de su repositorio privado, por ejemplo pod 'TensorFlowLite', "1.10.1" .