Usar um build personalizado do TensorFlow Lite

Se você é um desenvolvedor de ML experiente e a biblioteca pré-criada do TensorFlow Lite não atende às suas necessidades, use o build personalizado do TensorFlow Lite com o kit de ML. Por exemplo, com ela você pode adicionar operações personalizadas.

Pré-requisitos

  • um ambiente de criação do TensorFlow Lite ativo
  • uma verificação da versão 1.10.1 do TensorFlow Lite

Você pode fazer a verificação da versão correta usando o Git:

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

Como criar a biblioteca do Tensorflow Lite

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

O framework gerado pode ser encontrado em tensorflow/lite/gen/ios_frameworks/tensorflow_lite.framework.zip

Como criar 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

Como referenciar o pod personalizado no seu projeto

É possível incluir o pod personalizado fazendo referência a ele diretamente do Podfile do app:

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

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