Usa una compilación personalizada de TensorFlow Lite

Si eres un desarrollador con experiencia en AA, y la biblioteca integrada de TensorFlow Lite no satisface tus necesidades, puedes usar una compilación personalizada de TensorFlow Lite con el ML Kit. Por ejemplo, es posible que desees agregar operaciones personalizadas.

Requisitos previos

  • Un entorno compilación de TensorFlow Lite que sea operativo
  • Confirmación de compra de la versión 1.10.1 de TensorFlow Lite

Puedes comprobar la versión correcta mediante Git:

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

Cómo compilar la biblioteca de Tensorflow Lite

  1. Compila Tensorflow Lite (con tus modificaciones) mediante las instrucciones estándar
  2. Compila el framework:
tensorflow/lite/lib_package/create_ios_frameworks.sh

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

Crea un pod local

  1. Crea un directorio para tu pod local.
  2. Ejecuta pod lib create TensorFlowLite en el directorio que creaste.
  3. Crea un directorio Frameworks dentro del directorio TensorFlowLite.
  4. Descomprime el archivo tensorflow_lite.framework.zip generado anteriormente.
  5. Copia el tensorflow_lite.framework descomprimido en TensorFlowLite/Frameworks.
  6. Modifica 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

Haz referencia al pod personalizado en tu proyecto

Puedes incluir el pod personalizado si haces referencia a él directamente desde el elemento Podfile de tu app:

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

Para conocer otras opciones de administración de pods privados, consulta Pods privados en la documentación de CocoaPods. Ten en cuenta que la versión debe coincidir con exactitud y debes hacer referencia a ella cuando incluyas el pod desde tu repositorio privado, p. ej., pod 'TensorFlowLite', "1.10.1".