Используйте собственную сборку TensorFlow Lite. Используйте собственную сборку TensorFlow Lite.

Если вы опытный разработчик машинного обучения, и готовая библиотека TensorFlow Lite не удовлетворяет вашим потребностям, вы можете использовать собственную сборку TensorFlow Lite с помощью ML Kit. Например, вы можете захотеть добавить собственные операции.

Предварительные требования

  • Рабочая среда сборки TensorFlow Lite
  • Проверка версии TensorFlow Lite 1.10.1

Вы можете получить правильную версию с помощью Git:

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

Создание библиотеки TensorFlow Lite

  1. Соберите TensorFlow Lite (с вашими изменениями), следуя стандартным инструкциям.
  2. Создайте фреймворк:
tensorflow/lite/lib_package/create_ios_frameworks.sh

Сгенерированный фреймворк можно найти по адресу tensorflow/lite/gen/ios_frameworks/tensorflow_lite.framework.zip

Создание локального пода

  1. Создайте каталог для вашего локального пода.
  2. Выполните команду pod lib create TensorFlowLite в созданной вами директории.
  3. Создайте каталог Frameworks внутри каталога TensorFlowLite
  4. Распакуйте созданный выше файл tensorflow_lite.framework.zip
  5. Скопируйте распакованный файл tensorflow_lite.framework в папку TensorFlowLite/Frameworks
  6. Измените сгенерированный файл TensorFlowLite/TensorFlowLite.podspec , чтобы он ссылался на библиотеку:
    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

Укажите ссылку на пользовательский модуль в вашем проекте.

Вы можете подключить пользовательский pod, указав его непосредственно в Podfile вашего приложения:

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

Другие параметры управления приватными подами см. в разделе «Приватные поды» в документации Cocoapods. Обратите внимание, что версия должна точно совпадать, и вам следует ссылаться на эту версию при включении пода из вашего приватного репозитория, например pod 'TensorFlowLite', "1.10.1" .