Если вы опытный разработчик ML и готовая библиотека 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
- Соберите Tensorflow Lite (с вашими изменениями), следуя стандартным инструкциям.
- Создайте структуру:
tensorflow/lite/lib_package/create_ios_frameworks.sh
Сгенерированный фреймворк можно найти по адресу tensorflow/lite/gen/ios_frameworks/tensorflow_lite.framework.zip
Создание локального модуля
- Создайте каталог для вашего локального модуля
- Запустите
pod lib create TensorFlowLite
в созданном вами каталоге. - Создайте каталог
Frameworks
внутри каталогаTensorFlowLite
- Разархивируйте файл
tensorflow_lite.framework.zip
, созданный выше. - Скопируйте распакованный
tensorflow_lite.framework
вTensorFlowLite/Frameworks
- Измените сгенерированный
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
Ссылка на пользовательский модуль в вашем проекте
Вы можете включить пользовательский модуль, сославшись на него непосредственно из Podfile
вашего приложения:
pod 'Firebase/MLModelInterpreter'
pod 'TensorFlowLite', :path => 'path/to/your/TensorflowLite'
Для других вариантов управления частными pods см. Private Pods в документации Cocoapods. Обратите внимание, что версия должна точно совпадать, и вы должны ссылаться на эту версию при включении pod из вашего частного репозитория, например pod 'TensorFlowLite', "1.10.1"
.