使用自定义 TensorFlow Lite build

如果您是一位经验丰富的机器学习开发者,并且预构建的 TensorFlow Lite 库不能满足您的需求,您可以通过机器学习套件使用自定义 TensorFlow Lite build。例如,您可能需要添加自定义操作。

前提条件

  • 可正常使用的 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 下找到

创建本地 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

要添加自定义 pod,只需直接从应用的 Podfile 中引用它即可:

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

如需了解有关管理专用 pod 的其他选项,请参阅 Cocoapods 文档中的专用 pod。请注意,版本必须完全匹配,并且当您从专用代码库中添加 pod(例如 pod 'TensorFlowLite', "1.10.1")时,应该引用此版本。