Nano Hash - криптовалюты, майнинг, программирование

Создание пользовательской платформы TensorFlowLite Swift

Мне нужно собрать TensorFlowLite Swift Framework/cocoapod из исходников, а затем использовать его вместо исходного фреймворка в одном из проектов Swift.

Скачал код и следовал инструкциям в нескольких сценариях, но безуспешно:

1) https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/experimental/swift

а) питон configure.py

б) Разработчики CocoaPods неприменимы, так как не берут исходники из локальной папки TensofFlow (или я ошибаюсь?)

c) Разработчики Bazel Да: bazel build tensorflow/lite/experimental/swift:TensorFlowLite

bazel test tensorflow/lite/experimental/swift:Tests --swiftcopt=-enable-testing

и в конце концов

generate_xcodeproj.sh --genconfig tensorflow/lite/experimental/swift/TensorFlowLite.tulsiproj:TensorFlowLite --outputfolder ~/path/to/generated/TensorFlowLite.xcodeproj

в результате я получаю проект с libtensorflow-lite-experimental-swift-TensorFlowLite.a и несколькими файлами idx. Он компилируется, и я вижу файл .a (но и приложение, и тесты не компилируются по разным причинам), и я не совсем понимаю, как я могу использовать этот .a lib с файлами Swift, поскольку нет модулей/заголовков и т. д. .файлы.

После всех этих упражнений в корне TensorFlow и в папках experimental/Swift есть TensorFlowLiteSwift.podspec. Это по-прежнему зависит от TensorFlowLiteC, и если я сошлюсь на этот podspec в другом проекте через параметр пути, я смогу сделать import TensorFlowLiteC, но не import TensorFlowLiteSwift/import TensorFlowLite, и я считаю, что TensorFlowLiteC по-прежнему берется из Интернета, а не локально.

2) Пользовательский путь фреймворка отсюда: https://firebase.google.com/docs/ml-kit/ios/use-custom-tflite

Вот несколько проблем:

а) если я попытаюсь просто использовать проект с внутренним добавлением tensorflow_lite.framework, я не смогу ссылаться на TensorFlowLite/TensorFlowLiteC и т. д. в файле Swift. б) если я попытаюсь следовать маршруту создания локального модуля и сослаться на проект модуля, то pod install не сработает, поскольку обязательные параметры не установлены (используется предоставленный пример).

Я ожидаю получить проект или рабочее пространство Xcode, созданное из локальных TensorFlowFiles и на которое я могу ссылаться из других проектов, таких как «импорт TensorFlowLiteSwift» или «импорт TensorFlowLite».

Проблема в том, что я даже не понимаю, как правильно это сделать.

Спасибо.


Ответы:


1

Хорошо, я понял ответ здесь:

  1. соберите фреймворк TensorFlowLiteC из корневой папки tensorflow:

     bazel build --config=ios_fat -c opt //tensorflow/lite/experimental/ios:TensorFlowLiteC_framework
    
  2. Результат можно посмотреть здесь: bazel-bin/tensorflow/lite/experimental/ios/TensorFlowLiteC_framework.zip
  3. Разархивируйте файл и добавьте содержимое в новый проект XCode (в моем случае это было приложение Swift Single Window). Если вы сделаете это с помощью перетаскивания, XCode автоматически изменит раздел Frameworks, библиотеки и встроенный контент, а также изменит пути Framework.
  4. Измените этот параметр Build Settings\Linking\Other Linker Flags на -lc++.
  5. Сделанный. Ты можешь сделать

     import TensorFlowLiteC
    
  6. и используйте исходные файлы из папки swift.
21.10.2019
  • При запуске интегрированного TensorFlowLiteC_framework в проекте target c я получаю сообщение об ошибке «Невозможно установить имя приложения». Я использую Xcode 11.6 Можете ли вы мне помочь? 12.03.2021
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..