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].
undefined

Примечания

  1. Abadi, Martín; Barham, Paul; Chen, Jianmin; Chen, Zhifeng; Davis, Andy; Dean, Jeffrey; Devin, Matthieu; Ghemawat, Sanjay; Irving, Geoffrey; Isard, Michael; Kudlur, Manjunath; Levenberg, Josh; Monga, Rajat; Moore, Sherry; Murray, Derek G.; Steiner, Benoit; Tucker, Paul; Vasudevan, Vijay; Warden, Pete; Wicke, Martin; Yu, Yuan; Zheng, Xiaoqiang (2016). TensorFlow: A System for Large-Scale Machine Learning (PDF). Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI ’16). arXiv:1605.08695. Архивировано из оригинала (PDF) 12 декабря 2020. Дата обращения 26 октября 2020. Используется устаревший параметр |url-status= (справка)
  2. TensorFlow: Open source machine learning. Google. (2015).
  3. Top 30 Open Source Projects. Open Source Project Velocity by CNCF. Дата обращения: 12 октября 2023. Архивировано 3 сентября 2023 года.
  4. Credits. TensorFlow.org. Дата обращения: 10 ноября 2015. Архивировано 17 ноября 2015 года.
  5. Metz, Cade Google Just Open Sourced TensorFlow, Its Artificial Intelligence Engine. Wired (9 ноября 2015). Дата обращения: 10 ноября 2015. Архивировано 9 ноября 2015 года.
  6. 1 2 API Documentation. Дата обращения: 27 июня 2018. Архивировано 16 ноября 2015 года.
  7. Dean, Jeff; Monga, Rajat; Ghemawat, Sanjay TensorFlow: Large-scale machine learning on heterogeneous systems. TensorFlow.org. Google Research (9 ноября 2015). Дата обращения: 10 ноября 2015. Архивировано 20 ноября 2015 года.
  8. Perez, Sarah Google Open-Sources The Machine Learning Tech Behind Google Photos Search, Smart Reply And More. TechCrunch (9 ноября 2015). Дата обращения: 11 ноября 2015. Архивировано 9 ноября 2015 года.
  9. Oremus, Will What Is TensorFlow, and Why Is Google So Excited About It? Slate (9 ноября 2015). Дата обращения: 11 ноября 2015. Архивировано 10 ноября 2015 года.
  10. Ward-Bailey, Jeff Google chairman: We're making 'real progress' on artificial intelligence. CSMonitor (25 ноября 2015). Дата обращения: 25 ноября 2015. Архивировано 16 сентября 2015 года.
  11. TensorFlow Developers (2022). “Tensorflow Release 1.0.0”. GitHub. DOI:10.5281/zenodo.4724125. Архивировано из оригинала 27 февраля 2021. Дата обращения 24 июля 2017. Используется устаревший параметр |url-status= (справка)
  12. TensorFlow, Google's Open Source AI, Points to a Fast-Changing Hardware World (10 ноября 2015). Архивировано 11 ноября 2015. Дата обращения: 11 ноября 2015.
  13. Kudale, Aniket Eknath Building a Facial Expression Recognition App Using TensorFlow.js. Open Source For U (8 июня 2020). Дата обращения: 19 апреля 2025. Архивировано 11 октября 2024 года.
  14. MSV, Janakiram The Ultimate Guide to Machine Learning Frameworks. The New Stack (24 февраля 2021). Дата обращения: 19 апреля 2025. Архивировано 24 декабря 2024 года.
  15. Introduction to tensors. tensorflow.org. Дата обращения: 3 марта 2024. Архивировано 26 мая 2024 года.
  16. [ Machine Learning: Google I/O 2016, мин. 7:30/44:44]. Архивировано 21 декабря 2016.. Дата обращения: 5 июня 2016.
  17. TensorFlow Introducing TensorFlow.js: Machine Learning in Javascript. Medium (30 марта 2018). Дата обращения: 24 мая 2019. Архивировано 30 марта 2018 года.
  18. TensorFlow What's coming in TensorFlow 2.0. Medium (14 января 2019). Дата обращения: 24 мая 2019. Архивировано 14 января 2019 года.
  19. TensorFlow TensorFlow 2.0 is now available! Medium (30 сентября 2019). Дата обращения: 24 ноября 2019. Архивировано 7 октября 2019 года.
  20. TensorFlow Introducing TensorFlow Graphics: Computer Graphics Meets Deep Learning. Medium (9 мая 2019). Дата обращения: 24 мая 2019. Архивировано 9 мая 2019 года.
  21. Jouppi, Norm Google supercharges machine learning tasks with TPU custom chip. Google Cloud Platform Blog. Дата обращения: 19 мая 2016. Архивировано 18 мая 2016 года.
  22. Build and train machine learning models on our new Google Cloud TPUs, Google (17 мая 2017). Архивировано 17 мая 2017. Дата обращения: 18 мая 2017.
  23. Cloud TPU. Google Cloud. Дата обращения: 24 мая 2019. Архивировано 17 мая 2017 года.
  24. Cloud TPU machine learning accelerators now available in beta, Google Cloud Platform Blog. Архивировано 12 февраля 2018. Дата обращения: 12 февраля 2018.
  25. Kundu, Kishalaya Google Announces Edge TPU, Cloud IoT Edge at Cloud Next 2018. Beebom (26 июля 2018). Дата обращения: 2 февраля 2019. Архивировано 26 мая 2024 года.
  26. Google's new machine learning framework is going to put more AI on your phone. The Verge (17 мая 2017). Дата обращения: 19 мая 2017. Архивировано 17 мая 2017 года.
  27. TensorFlow TensorFlow Lite Now Faster with Mobile GPUs (Developer Preview). Medium (16 января 2019). Дата обращения: 24 мая 2019. Архивировано 16 января 2019 года.
  28. uTensor and Tensor Flow Announcement. os.mbed.com. Дата обращения: 24 мая 2019. Архивировано 9 мая 2019 года.
  29. He, Horace The State of Machine Learning Frameworks in 2019. The Gradient (10 октября 2019). Дата обращения: 22 мая 2020. Архивировано 10 октября 2019 года.
  30. Ciaramella, Alberto. Introduction to Artificial Intelligence: from data analysis to generative AI / Alberto Ciaramella, Marco Ciaramella. — Intellisemantic Editions, июль 2024. — ISBN 9788894787603.
  31. Introduction to gradients and automatic differentiation (англ.). TensorFlow. Дата обращения: 4 ноября 2021. Архивировано 28 октября 2021 года.
  32. Eager execution (англ.). TensorFlow. Дата обращения: 4 ноября 2021. Архивировано 4 ноября 2021 года.
  33. Module: tf.distribute (англ.). TensorFlow. Дата обращения: 4 ноября 2021. Архивировано 26 мая 2024 года.
  34. Module: tf.losses (англ.). TensorFlow. Дата обращения: 4 ноября 2021. Архивировано 27 октября 2021 года.
  35. Module: tf.metrics (англ.). TensorFlow. Дата обращения: 4 ноября 2021. Архивировано 4 ноября 2021 года.
  36. Module: tf.nn (англ.). TensorFlow. Дата обращения: 6 ноября 2021. Архивировано 26 мая 2024 года.
  37. Module: tf.optimizers (англ.). TensorFlow. Дата обращения: 6 ноября 2021. Архивировано 30 октября 2021 года.
  38. TensorFlow Releases. GitHub. Дата обращения: 19 апреля 2025. Архивировано 19 апреля 2025 года.
  39. TensorFlow 2.0 is now available! Medium (30 сентября 2019). Дата обращения: 24 ноября 2019. Архивировано 7 октября 2019 года.
  40. TensorFlow Developers (2022). “Tensorflow Release 1.0.0”. GitHub. DOI:10.5281/zenodo.4724125. Архивировано из оригинала 27 февраля 2021. Дата обращения 24 июля 2017. Используется устаревший параметр |url-status= (справка)
  41. TensorFlow 0.8 Release Notes. GitHub. Дата обращения: 19 апреля 2025. Архивировано 19 апреля 2025 года.
  42. Customization basics: tensors and operations (англ.). TensorFlow. Дата обращения: 6 ноября 2021. Архивировано 6 ноября 2021 года.
  43. Guide (англ.). TensorFlow. Дата обращения: 4 ноября 2021. Архивировано 17 июля 2019 года.
  44. Libraries & extensions (англ.). TensorFlow. Дата обращения: 4 ноября 2021. Архивировано 4 ноября 2021 года.
  45. Colaboratory – Google. research.google.com. Дата обращения: 10 ноября 2018. Архивировано 24 октября 2017 года.
  46. Intelligent Scanning Using Deep Learning for MRI (англ.). Дата обращения: 4 ноября 2021. Архивировано 4 ноября 2021 года.
  47. Case Studies and Mentions (англ.). TensorFlow. Дата обращения: 4 ноября 2021. Архивировано 26 октября 2021 года.
  48. Ranking Tweets with TensorFlow (англ.). Дата обращения: 4 ноября 2021. Архивировано 4 ноября 2021 года.
  49. Davies, Dave A Complete Guide to the Google RankBrain Algorithm (англ.). Search Engine Journal (2 сентября 2020). Дата обращения: 15 октября 2024. Архивировано 6 ноября 2021 года.
  50. InSpace: A new video conferencing platform that uses TensorFlow.js for toxicity filters in chat (англ.). Дата обращения: 4 ноября 2021. Архивировано 4 ноября 2021 года.
  51. How Modiface utilized TensorFlow.js in production for AR makeup try on in the browser (англ.). Дата обращения: 4 ноября 2021. Архивировано 4 ноября 2021 года.
  52. Byrne, Michael Google Offers Up Its Entire Machine Learning Library as Open-Source Software. Vice (11 ноября 2015). Дата обращения: 11 ноября 2015. Архивировано 25 января 2021 года.

Ссылки