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 |
История
C 2011 года команда Google Brain создавала проприетарную систему машинного обучения под названием DistBelief на основе глубоких нейронных сетей. Её использование быстро распространялось среди компаний Alphabet Inc., как в исследовательских, так и в коммерческих проектах[7].[8] Google поручила группе инженеров во главе с Джеффом Дином упростить и переработать кодовую базу DistBelief, создав более быструю, надёжную и готовую к промышленному использованию библиотеку — так появилась TensorFlow[9]. В 2009 году команда под руководством Джеффри Хинтона реализовала генерализованный backpropagation и другие улучшения, что позволило значительно повысить точность нейронных сетей, например, на 25 % снизить ошибки в системах распознавания речи[10].
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].
В мае 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].
В июле 2018 года был представлен Edge TPU — специализированный чип ASIC для локального запуска моделей TensorFlow Lite на мобильных клиентах и edge-устройствах, таких как смартфоны[25].
В мае 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 в исследованиях по сравнению с PyTorch[29], в сентябре 2019 года вышла крупная версия TensorFlow 2.0, главным нововведением которой стала система eager execution («define-by-run»), аналогично изначально реализованному в Chainer и затем в PyTorch. Были также удалены устаревшие библиотеки, улучшена совместимость между моделями, обученными в разных версиях, и значительно повышена производительность на GPU[30].
Возможности
TensorFlow поддерживает автоматическое дифференцирование, позволяя автоматически вычислять градиенты параметров моделей, что особенно важно для реализации обратного распространения ошибки и оптимизации[31].
TensorFlow реализует режим немедленного (eager) исполнения, при котором операции выполняются сразу, а не добавляются в граф для последующего запуска[32]. Такой подход облегчает отладку и повышает прозрачность исполнения.
TensorFlow предоставляет API для распределения обучения и обработки, поддерживая различные стратегии вычислений как для графа, так и в немедленном режиме[33].
TensorFlow предоставляет множество стандартных функций потерь (cost functions), например среднеквадратичная ошибка (MSE), кросс-энтропия и др[34].
API TensorFlow включает стандартные метрики (точность, precision, recall, IoU и др.) для оценки качества моделей[35].
Модуль TensorFlow.nn обеспечивает примитивы для построения нейронных сетей, включая различные свёртки (1D/2D/3D), активации (Softmax, ReLU, GELU и др.), пулинг и другие операции[36].
В стандартную поставку входят оптимизаторы SGD, Adam, Adagrad и др[37].
Платформы и совместимость
Выпуски
Интеграции и экосистема
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].
Примечания
- ↑ 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=(справка) - ↑ TensorFlow: Open source machine learning. Google. (2015).
- ↑ Top 30 Open Source Projects. Open Source Project Velocity by CNCF. Дата обращения: 12 октября 2023. Архивировано 3 сентября 2023 года.
- ↑ Credits. TensorFlow.org. Дата обращения: 10 ноября 2015. Архивировано 17 ноября 2015 года.
- ↑ Metz, Cade Google Just Open Sourced TensorFlow, Its Artificial Intelligence Engine. Wired (9 ноября 2015). Дата обращения: 10 ноября 2015. Архивировано 9 ноября 2015 года.
- ↑ 1 2 API Documentation. Дата обращения: 27 июня 2018. Архивировано 16 ноября 2015 года.
- ↑ Dean, Jeff; Monga, Rajat; Ghemawat, Sanjay TensorFlow: Large-scale machine learning on heterogeneous systems. TensorFlow.org. Google Research (9 ноября 2015). Дата обращения: 10 ноября 2015. Архивировано 20 ноября 2015 года.
- ↑ Perez, Sarah Google Open-Sources The Machine Learning Tech Behind Google Photos Search, Smart Reply And More. TechCrunch (9 ноября 2015). Дата обращения: 11 ноября 2015. Архивировано 9 ноября 2015 года.
- ↑ Oremus, Will What Is TensorFlow, and Why Is Google So Excited About It? Slate (9 ноября 2015). Дата обращения: 11 ноября 2015. Архивировано 10 ноября 2015 года.
- ↑ Ward-Bailey, Jeff Google chairman: We're making 'real progress' on artificial intelligence. CSMonitor (25 ноября 2015). Дата обращения: 25 ноября 2015. Архивировано 16 сентября 2015 года.
- ↑ TensorFlow Developers (2022). “Tensorflow Release 1.0.0”. GitHub. DOI:10.5281/zenodo.4724125. Архивировано из оригинала 27 февраля 2021. Дата обращения 24 июля 2017. Используется устаревший параметр
|url-status=(справка) - ↑ TensorFlow, Google's Open Source AI, Points to a Fast-Changing Hardware World (10 ноября 2015). Архивировано 11 ноября 2015. Дата обращения: 11 ноября 2015.
- ↑ Kudale, Aniket Eknath Building a Facial Expression Recognition App Using TensorFlow.js. Open Source For U (8 июня 2020). Дата обращения: 19 апреля 2025. Архивировано 11 октября 2024 года.
- ↑ MSV, Janakiram The Ultimate Guide to Machine Learning Frameworks. The New Stack (24 февраля 2021). Дата обращения: 19 апреля 2025. Архивировано 24 декабря 2024 года.
- ↑ Introduction to tensors. tensorflow.org. Дата обращения: 3 марта 2024. Архивировано 26 мая 2024 года.
- ↑ [ Machine Learning: Google I/O 2016, мин. 7:30/44:44]. Архивировано 21 декабря 2016.. Дата обращения: 5 июня 2016.
- ↑ TensorFlow Introducing TensorFlow.js: Machine Learning in Javascript. Medium (30 марта 2018). Дата обращения: 24 мая 2019. Архивировано 30 марта 2018 года.
- ↑ TensorFlow What's coming in TensorFlow 2.0. Medium (14 января 2019). Дата обращения: 24 мая 2019. Архивировано 14 января 2019 года.
- ↑ TensorFlow TensorFlow 2.0 is now available! Medium (30 сентября 2019). Дата обращения: 24 ноября 2019. Архивировано 7 октября 2019 года.
- ↑ TensorFlow Introducing TensorFlow Graphics: Computer Graphics Meets Deep Learning. Medium (9 мая 2019). Дата обращения: 24 мая 2019. Архивировано 9 мая 2019 года.
- ↑ Jouppi, Norm Google supercharges machine learning tasks with TPU custom chip. Google Cloud Platform Blog. Дата обращения: 19 мая 2016. Архивировано 18 мая 2016 года.
- ↑ Build and train machine learning models on our new Google Cloud TPUs, Google (17 мая 2017). Архивировано 17 мая 2017. Дата обращения: 18 мая 2017.
- ↑ Cloud TPU. Google Cloud. Дата обращения: 24 мая 2019. Архивировано 17 мая 2017 года.
- ↑ Cloud TPU machine learning accelerators now available in beta, Google Cloud Platform Blog. Архивировано 12 февраля 2018. Дата обращения: 12 февраля 2018.
- ↑ Kundu, Kishalaya Google Announces Edge TPU, Cloud IoT Edge at Cloud Next 2018. Beebom (26 июля 2018). Дата обращения: 2 февраля 2019. Архивировано 26 мая 2024 года.
- ↑ Google's new machine learning framework is going to put more AI on your phone. The Verge (17 мая 2017). Дата обращения: 19 мая 2017. Архивировано 17 мая 2017 года.
- ↑ TensorFlow TensorFlow Lite Now Faster with Mobile GPUs (Developer Preview). Medium (16 января 2019). Дата обращения: 24 мая 2019. Архивировано 16 января 2019 года.
- ↑ uTensor and Tensor Flow Announcement. os.mbed.com. Дата обращения: 24 мая 2019. Архивировано 9 мая 2019 года.
- ↑ He, Horace The State of Machine Learning Frameworks in 2019. The Gradient (10 октября 2019). Дата обращения: 22 мая 2020. Архивировано 10 октября 2019 года.
- ↑ Ciaramella, Alberto. Introduction to Artificial Intelligence: from data analysis to generative AI / Alberto Ciaramella, Marco Ciaramella. — Intellisemantic Editions, июль 2024. — ISBN 9788894787603.
- ↑ Introduction to gradients and automatic differentiation (англ.). TensorFlow. Дата обращения: 4 ноября 2021. Архивировано 28 октября 2021 года.
- ↑ Eager execution (англ.). TensorFlow. Дата обращения: 4 ноября 2021. Архивировано 4 ноября 2021 года.
- ↑ Module: tf.distribute (англ.). TensorFlow. Дата обращения: 4 ноября 2021. Архивировано 26 мая 2024 года.
- ↑ Module: tf.losses (англ.). TensorFlow. Дата обращения: 4 ноября 2021. Архивировано 27 октября 2021 года.
- ↑ Module: tf.metrics (англ.). TensorFlow. Дата обращения: 4 ноября 2021. Архивировано 4 ноября 2021 года.
- ↑ Module: tf.nn (англ.). TensorFlow. Дата обращения: 6 ноября 2021. Архивировано 26 мая 2024 года.
- ↑ Module: tf.optimizers (англ.). TensorFlow. Дата обращения: 6 ноября 2021. Архивировано 30 октября 2021 года.
- ↑ TensorFlow Releases. GitHub. Дата обращения: 19 апреля 2025. Архивировано 19 апреля 2025 года.
- ↑ TensorFlow 2.0 is now available! Medium (30 сентября 2019). Дата обращения: 24 ноября 2019. Архивировано 7 октября 2019 года.
- ↑ TensorFlow Developers (2022). “Tensorflow Release 1.0.0”. GitHub. DOI:10.5281/zenodo.4724125. Архивировано из оригинала 27 февраля 2021. Дата обращения 24 июля 2017. Используется устаревший параметр
|url-status=(справка) - ↑ TensorFlow 0.8 Release Notes. GitHub. Дата обращения: 19 апреля 2025. Архивировано 19 апреля 2025 года.
- ↑ Customization basics: tensors and operations (англ.). TensorFlow. Дата обращения: 6 ноября 2021. Архивировано 6 ноября 2021 года.
- ↑ Guide (англ.). TensorFlow. Дата обращения: 4 ноября 2021. Архивировано 17 июля 2019 года.
- ↑ Libraries & extensions (англ.). TensorFlow. Дата обращения: 4 ноября 2021. Архивировано 4 ноября 2021 года.
- ↑ Colaboratory – Google. research.google.com. Дата обращения: 10 ноября 2018. Архивировано 24 октября 2017 года.
- ↑ Intelligent Scanning Using Deep Learning for MRI (англ.). Дата обращения: 4 ноября 2021. Архивировано 4 ноября 2021 года.
- ↑ Case Studies and Mentions (англ.). TensorFlow. Дата обращения: 4 ноября 2021. Архивировано 26 октября 2021 года.
- ↑ Ranking Tweets with TensorFlow (англ.). Дата обращения: 4 ноября 2021. Архивировано 4 ноября 2021 года.
- ↑ Davies, Dave A Complete Guide to the Google RankBrain Algorithm (англ.). Search Engine Journal (2 сентября 2020). Дата обращения: 15 октября 2024. Архивировано 6 ноября 2021 года.
- ↑ InSpace: A new video conferencing platform that uses TensorFlow.js for toxicity filters in chat (англ.). Дата обращения: 4 ноября 2021. Архивировано 4 ноября 2021 года.
- ↑ How Modiface utilized TensorFlow.js in production for AR makeup try on in the browser (англ.). Дата обращения: 4 ноября 2021. Архивировано 4 ноября 2021 года.
- ↑ Byrne, Michael Google Offers Up Its Entire Machine Learning Library as Open-Source Software. Vice (11 ноября 2015). Дата обращения: 11 ноября 2015. Архивировано 25 января 2021 года.
Ссылки
- https://www.tensorflow.org — официальный сайт
- Learning TensorFlow.js Book (ENG)