Глоссарий

TensorFlow

Открой для себя TensorFlow, Google'мощный ML-фреймворк с открытым исходным кодом для инноваций в области ИИ. Создавай, обучай и внедряй нейросетевые модели без проблем!

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

TensorFlow - это широко используемая библиотека с открытым исходным кодом, разработанная командой Google Brain для численных вычислений и крупномасштабного машинного обучения (ML). Она предоставляет обширную экосистему инструментов, библиотек и ресурсов сообщества, которая позволяет исследователям продвигать передовые достижения в области ML, а разработчикам - легко создавать и развертывать приложения на базе ML. Его гибкая архитектура позволяет развертывать приложения на различных платформах, включая серверы, мобильные устройства с помощью TensorFlow Lite и веб-браузеры с помощью TensorFlow.js.

Как работает TensorFlow

В своей основе TensorFlow оперирует тензорами, которые представляют собой многомерные массивы, отсюда и названиеTensorFlow" - представление потока этих тензоров через вычислительный граф. Если ранние версии в значительной степени полагались на статические вычислительные графы, то в TensorFlow 2.x по умолчанию было введено нетерпеливое выполнение, что сделало его более интуитивным и легким для отладки, похожим по ощущениям на стандартный Python программирования. Среди ключевых особенностей - автоматическое дифференцирование, позволяющее легко вычислять градиенты, необходимые при обратном распространении и обучении моделей, а также широкий набор готовых слоев и утилит для построения нейронных сетей (НС). Для высокопроизводительных вычислений используется аппаратное ускорение с помощью GPU и специализированного оборудования вроде TPU.

Ключевые особенности и экосистема

TensorFlow предлагает несколько функций, которые упрощают рабочий процесс ML:

  • Keras API: Высокоуровневый API, интегрированный в TensorFlow, известный своим удобством и модульностью, упрощающий процесс построения и обучения моделей глубокого обучения. Keras позволяет быстро создавать прототипы.
  • Распределенное обучение: Встроенная поддержка распределения вычислений между несколькими машинами и GPU помогает ускорить обучение больших моделей на массивных наборах данных.
  • Оптимизация моделей: Такие инструменты, как TensorFlow Model Optimization Toolkit, предоставляют методики квантования и обрезки моделей для создания более компактных, быстрых и энергоэффективных моделей, подходящих для пограничных устройств.
  • Гибкость развертывания: Модели TensorFlow можно развернуть практически везде, от больших серверных ферм(облачные вычисления) до сред с ограниченными ресурсами, таких как мобильные и встраиваемые системы, используя экспортTensorFlow Lite или веб-приложения через экспортTensorFlow.js. Модели Ultralytics YOLO также можно экспортировать в форматTensorFlow SavedModel .

Применение и примеры

TensorFlow используется во многих областях:

  • Компьютерное зрение: На нем работают такие приложения, как классификация изображений, обнаружение объектов и сегментация изображений. Например, Google использует TensorFlow в Google Photos для распознавания изображений и функций поиска. Модели Ultralytics YOLO , хотя и разработаны в основном на PyTorchно могут быть преобразованы в формат TensorFlow для развертывания.
  • Обработка естественного языка (NLP): Используется для таких задач, как машинный перевод, анализ настроения и построение сложных языковых моделей вроде BERT. Алгоритм RankBrain от Google Search, который помогает интерпретировать сложные поисковые запросы, был ранним крупномасштабным применением TensorFlow.
  • Здравоохранение: Помощь в анализе медицинских изображений для выявления заболеваний по снимкам или прогнозирования исхода болезни на основе электронных медицинских карт.
  • Финансы: Используется для обнаружения мошенничества, алгоритмической торговли и моделей кредитного скоринга.

TensorFlow против PyTorch

TensorFlow и PyTorch Это два доминирующих фреймворка в глубоком обучении. Исторически сложилось так, что TensorFlow был известен своими преимуществами в развертывании на производстве и масштабируемостью за счет использования статических графов, а PyTorch завоевал популярность в исследовательском сообществе за счет динамических графов и более питонического подхода. Однако с появлением в TensorFlow 2.x функции eager execution различия стали менее заметными. Выбор часто зависит от конкретных потребностей проекта, знакомства команды и инструментов экосистемы. Многие модели, включая Ultralytics YOLOv8предлагают опции совместимости или экспорта для обоих фреймворков, что позволяет гибко подходить к развертыванию моделей.

Читать полностью