TensorFlow

TensorFlow — библиотека программного обеспечения для машинного обучения и искусственного интеллекта. Она используется для выполнения различных задач, однако наибольшее применение нашла в обучении и инференсе нейронных сетей[1].[2] TensorFlow входит в число самых популярных фреймворков для глубокого обучения, наряду с PyTorch и другими[3]. Распространяется бесплатно под лицензией Apache 2.0 как открытое программное обеспечение.

TensorFlow разработана командой Google Brain для внутреннего использования в Google как в исследованиях, так и в продуктивных приложениях[4].[5] Первая версия вышла в 2015 году. В сентябре 2019 была выпущена обновлённая версия TensorFlow 2.0.

TensorFlow поддерживает использование в различных языках программирования, включая Python, JavaScript, C++ и Java, что позволяет применять её в самых разных областях[6].

Что важно знать
TensorFlow
Тип библиотека машинного обучения
Разработчик Google Brain
Написана на Python, C++, CUDA
Операционные системы Microsoft Windows, Linux, macOS, iOS и Android
Первый выпуск 9 ноября 2015
Аппаратные платформы Linux, macOS, Windows, Android, JavaScript
Последняя версия 2.20.0 (19 августа 2025)
Репозиторий github.com/tensorflow/te…
Лицензия Apache 2.0
Сайт tensorflow.org

История

DistBelief

C 2011 года команда Google Brain создавала проприетарную систему машинного обучения под названием DistBelief на основе глубоких нейронных сетей. Её использование быстро распространялось среди компаний Alphabet Inc., как в исследовательских, так и в коммерческих проектах[7].[8] Google поручила группе инженеров во главе с Джеффом Дином упростить и переработать кодовую базу DistBelief, создав более быструю, надёжную и готовую к промышленному использованию библиотеку — так появилась TensorFlow[9]. В 2009 году команда под руководством Джеффри Хинтона реализовала генерализованный backpropagation и другие улучшения, что позволило значительно повысить точность нейронных сетей, например, на 25 % снизить ошибки в системах распознавания речи[10].

TensorFlow

TensorFlow — это система второго поколения от Google Brain. Версия 1.0.0 вышла 11 февраля 2017 года[11]. Хотя эталонная реализация работает на одном устройстве, TensorFlow может запускаться на нескольких процессорах и графических процессорах (с поддержкой CUDA и SYCL для вычисления общего назначения на графических процессорах)[12]. TensorFlow доступна на 64-битных системах Linux, macOS, Windows, а также на мобильных платформах, включая Android и iOS[13].[14]

Гибкая архитектура TensorFlow позволяет легко развёртывать вычисления на различных платформах (CPU, GPU, TPU), от настольных компьютеров и серверных кластеров до мобильных и периферийных устройств.

Расчёты TensorFlow описываются как ориентированные графы вычислений (dataflow), в которых данные — тензоры — передаются между узлами. Название TensorFlow происходит от операций с многомерными массивами данных — тензорами[15]. На конференции Google I/O в июне 2016 года Джефф Дин отметил, что 1500 репозиториев на GitHub были связаны с TensorFlow, из них только 5 — от самой Google[16].

В марте 2018 года Google объявила о выпуске TensorFlow.js версии 1.0 для машинного обучения на JavaScript[17].

В январе 2019 года анонсирована TensorFlow 2.0[18]. Официально версия 2.0 вышла в сентябре 2019[19].

В мае 2019 года представлена TensorFlow Graphics для задач компьютерной графики[20].

Tensor processing unit (TPU)

В мае 2016 года компания Google анонсировала TPU — специализированный чип (ASIC), разработанный для машинного обучения и оптимизированный под TensorFlow, способный выполнять операцию с низкой точностью (например, 8 бит). TPU рассчитан в первую очередь на запуск/использование моделей (инференс), а не на их обучение. Google заявила, что использует TPU в своих дата-центрах уже более года, и они обеспечивают значительно лучшее соотношение производительности на ватт для задач машинного обучения[21].

В мае 2017 года анонсирована вторая версия TPU и появилась возможность использования TPU в Google Compute Engine[22]. Вторая версия поддерживает производительность до 180 терафлопс; в кластере из 64 TPU — до 11,5 петафлопс.

В мае 2018 вышло третье поколение TPU, обеспечивающее до 420 терафлопс при 128 ГБ HBM-памяти. TPU v3 Pods способны выдавать более 100 петафлопс и до 32 ТБ HBM[23].

В феврале 2018 года TPU стали доступны разработчикам в облачном сервисе Google Cloud Platform[24].

Edge TPU

В июле 2018 года был представлен Edge TPU — специализированный чип ASIC для локального запуска моделей TensorFlow Lite на мобильных клиентах и edge-устройствах, таких как смартфоны[25].

TensorFlow Lite

В мае 2017 года Google анонсировала стек TensorFlow Lite для мобильных приложений[26]. В январе 2019 года команда выпустила предварительную версию inference-движка для мобильных GPU с поддержкой OpenGL ES 3.1 и Metal Compute Shaders[27]. В мае 2019 Google объявила о слиянии TensorFlow Lite Micro и ARM uTensor[28].

TensorFlow 2.0

На фоне падения доли публикаций, использующих TensorFlow в исследованиях по сравнению с PyTorch[29], в сентябре 2019 года вышла крупная версия TensorFlow 2.0, главным нововведением которой стала система eager execution («define-by-run»), аналогично изначально реализованному в Chainer и затем в PyTorch. Были также удалены устаревшие библиотеки, улучшена совместимость между моделями, обученными в разных версиях, и значительно повышена производительность на GPU[30].

Возможности

Автоматическое дифференцирование

TensorFlow поддерживает автоматическое дифференцирование, позволяя автоматически вычислять градиенты параметров моделей, что особенно важно для реализации обратного распространения ошибки и оптимизации[31].

Eager execution

TensorFlow реализует режим немедленного (eager) исполнения, при котором операции выполняются сразу, а не добавляются в граф для последующего запуска[32]. Такой подход облегчает отладку и повышает прозрачность исполнения.

Распределённые вычисления

TensorFlow предоставляет API для распределения обучения и обработки, поддерживая различные стратегии вычислений как для графа, так и в немедленном режиме[33].

Функции потерь

TensorFlow предоставляет множество стандартных функций потерь (cost functions), например среднеквадратичная ошибка (MSE), кросс-энтропия и др[34].

Метрики

API TensorFlow включает стандартные метрики (точность, precision, recall, IoU и др.) для оценки качества моделей[35].

TF.nn

Модуль TensorFlow.nn обеспечивает примитивы для построения нейронных сетей, включая различные свёртки (1D/2D/3D), активации (Softmax, ReLU, GELU и др.), пулинг и другие операции[36].

Оптимизаторы

В стандартную поставку входят оптимизаторы SGD, Adam, Adagrad и др[37].

Платформы и совместимость

TensorFlow доступна для Python, JavaScript, C++, Java, с официальными и сторонними привязками для C#, Haskell, Julia, MATLAB, Pascal, R, Scala, Rust, OCaml, Crystal, а также архивированные биндинги для Go и Swift[6].

Выпуски

История версий
Версия Дата Ветка/статус Примечания
2.20.0 19 августа 2025 стабильная [38]
2.0.0 сентябрь 2019 стабильная [39]
1.0.0 11 февраля 2017 стабильная [40]
0.8 13 мая 2016 стабильная [41]

Интеграции и экосистема

TensorFlow тесно интегрируется с NumPy: nd-массивы NumPy автоматически конвертируются в тензоры TensorFlow и обратно, что позволяет бесшовно комбинировать обе библиотеки[42]. Помимо этого доступны: Keras, пакет расширений (TFX), TensorFlow.js для JavaScript, TensorFlow Lite (LiteRT) для мобильных и встроенных устройств, TensorFlow Serving для развёртывания обученных моделей и пр[43][44].

Официальная среда Google Colaboratory предоставляет онлайн-доступ к бесплатным GPU и интеграцию с Google Drive[45].

Применение

  • GE Healthcare — ускорение и повышение точности МРТ[46].
  • Google и DermAssist — мобильное приложение для распознавания заболеваний кожи[47].
  • Twitter — персонализированный рейтинг твитов[48].
  • Google RankBrain — поисковый алгоритм, использующий TensorFlow[49].
  • InSpace, Liulishuo — фильтрация токсичных сообщений, адаптивное обучение[50].
  • Carousell и ModiFace — рекомендательные системы и работа с дополненной реальностью[51].
  • DeepDream — генерация описаний к изображениям[52].

Примечания

Ссылки