Użyj niestandardowej wersji TensorFlow Lite

Jeśli jesteś doświadczonym programistą ML i wstępnie skompilowana biblioteka TensorFlow Lite nie spełnia Twoich potrzeb, możesz użyć niestandardowej kompilacji TensorFlow Lite z ML Kit. Możesz na przykład dodać niestandardowe operacje.

Warunki wstępne

  • Działające środowisko kompilacji TensorFlow Lite
  • Kontrola TensorFlow Lite 1.10.1

Możesz sprawdzić poprawną wersję za pomocą Git:

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

Budowa biblioteki Tensorflow Lite

  1. Zbuduj Tensorflow Lite (ze swoimi modyfikacjami), postępując zgodnie ze standardowymi instrukcjami
  2. Zbuduj framework:
tensorflow/lite/lib_package/create_ios_frameworks.sh

Wygenerowany framework można znaleźć pod adresem tensorflow/lite/gen/ios_frameworks/tensorflow_lite.framework.zip

Tworzenie lokalnego poda

  1. Utwórz katalog dla lokalnego poda
  2. Uruchom pod lib create TensorFlowLite w utworzonym katalogu
  3. Utwórz katalog Frameworks w katalogu TensorFlowLite
  4. Rozpakuj wygenerowany powyżej plik tensorflow_lite.framework.zip
  5. Skopiuj rozpakowany plik tensorflow_lite.framework do TensorFlowLite/Frameworks
  6. Zmodyfikuj wygenerowany plik TensorFlowLite/TensorFlowLite.podspec , aby odwoływał się do biblioteki:
    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

Odwoływanie się do niestandardowego zasobnika w projekcie

Możesz dołączyć niestandardowy pod, odwołując się do niego bezpośrednio z Podfile swojej aplikacji:

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

Aby zapoznać się z innymi opcjami zarządzania prywatnymi kapsułami, zobacz Prywatne kapsuły w dokumentacji Cocoapods. Pamiętaj, że wersja musi być dokładnie zgodna i powinieneś odwoływać się do tej wersji, dołączając pod z prywatnego repozytorium, np. pod 'TensorFlowLite', "1.10.1" .