Use uma versão personalizada do TensorFlow Lite

Se você for um desenvolvedor de ML experiente e a biblioteca pré-criada do TensorFlow Lite não atender às suas necessidades, você poderá usar uma versão personalizada do TensorFlow Lite com o ML Kit. Por exemplo, você pode querer adicionar operações personalizadas.

Pré-requisitos

  • Um ambiente de compilação funcional do TensorFlow Lite
  • Uma verificação do TensorFlow Lite 1.10.1

Você pode verificar a versão correta usando Git:

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

Construindo a biblioteca Tensorflow Lite

  1. Crie o Tensorflow Lite (com suas modificações) seguindo as instruções padrão
  2. Construa a estrutura:
tensorflow/lite/lib_package/create_ios_frameworks.sh

A estrutura gerada pode ser encontrada em tensorflow/lite/gen/ios_frameworks/tensorflow_lite.framework.zip

Criando um pod local

  1. Crie um diretório para seu pod local
  2. Execute pod lib create TensorFlowLite no diretório que você criou
  3. Crie um diretório Frameworks dentro do diretório TensorFlowLite
  4. Descompacte o arquivo tensorflow_lite.framework.zip gerado acima
  5. Copie o tensorflow_lite.framework descompactado para TensorFlowLite/Frameworks
  6. Modifique o TensorFlowLite/TensorFlowLite.podspec gerado para fazer referência à 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

Referenciando o pod personalizado em seu projeto

Você pode incluir o pod personalizado referenciando-o diretamente no Podfile do seu aplicativo:

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

Para outras opções de gerenciamento de pods privados, consulte Pods privados na documentação do Cocoapods. Observe que a versão deve corresponder exatamente e você deve fazer referência a esta versão ao incluir o pod do seu repositório privado, por exemplo pod 'TensorFlowLite', "1.10.1" .