使用自定義 TensorFlow Lite 構建

如果您是經驗豐富的 ML 開發人員,且預先建置的 TensorFlow Lite 程式庫無法滿足您的需求,您可以使用 ML Kit 的自訂TensorFlow Lite建置。例如,您可能想要新增自訂操作。

先決條件

您可以使用 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中找到

建立本地 Pod

  1. 為本地 Pod 建立目錄
  2. 在您建立的目錄中執行pod lib create TensorFlowLite
  3. TensorFlowLite目錄中建立Frameworks目錄
  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 來包含它:

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

有關管理私有 Pod 的其他選項,請參閱 Cocoapods 文件中的私有 Pod 。請注意,版本必須完全匹配,並且在包含私有儲存庫中的 pod 時應引用此版本,例如pod 'TensorFlowLite', "1.10.1"