Разработчики) | Команда Google Brain [1] |
---|---|
Первый выпуск | 9 ноября 2015 г . |
Стабильный выпуск | 2.4.1 [2] / 21 января 2021 г . |
Репозиторий | github |
Написано в | Python , C ++ , CUDA |
Платформа | Linux , macOS , Windows , Android , JavaScript [3] |
Тип | Библиотека машинного обучения |
Лицензия | Лицензия Apache 2.0 |
Веб-сайт | www |
TensorFlow - это бесплатная библиотека программного обеспечения с открытым исходным кодом для машинного обучения . Он может быть использован в целом ряде задач , но имеет особый акцент на обучение и умозаключение из глубоких нейронных сетей . [4] [5]
Tensorflow - это символьная математическая библиотека, основанная на потоке данных и дифференцируемом программировании . Он используется как для исследований, так и для производства в Google . [6] [7] [8]
TensorFlow был разработан командой Google Brain для внутреннего использования Google . Он был выпущен под лицензией Apache License 2.0 в 2015 году. [1] [9]
История [ править ]
DistBelief [ править ]
Начиная с 2011 года Google Brain создала DistBelief как проприетарную систему машинного обучения , основанную на нейронных сетях глубокого обучения . Его использование в различных компаниях Alphabet стремительно росло как в исследовательских, так и в коммерческих приложениях. [10] [11] Google поручил нескольким компьютерным специалистам, включая Джеффа Дина , упростить и реорганизовать кодовую базу DistBelief в более быструю и надежную библиотеку прикладного уровня, которая стала TensorFlow. [12] В 2009 году команда под руководством Джеффри Хинтона внедрила обобщенный метод обратного распространения ошибки.и другие улучшения, которые позволили создавать нейронные сети с существенно более высокой точностью, например, снижение ошибок распознавания речи на 25% . [13]
TensorFlow [ править ]
TensorFlow - это система второго поколения Google Brain. Версия 1.0.0 была выпущена 11 февраля 2017 года. [14] Хотя эталонная реализация работает на отдельных устройствах, TensorFlow может работать на нескольких процессорах и графических процессорах (с дополнительными расширениями CUDA и SYCL для универсальных вычислений на графических процессорах ). [15] TensorFlow доступен для 64-разрядных версий Linux , macOS , Windows и мобильных вычислительных платформ, включая Android и iOS .
Его гибкая архитектура позволяет легко развертывать вычисления на различных платформах (процессоры, графические процессоры, TPU ), а также от настольных компьютеров до кластеров серверов и мобильных и пограничных устройств.
Вычисления TensorFlow выражаются в виде графов потоков данных с отслеживанием состояния . Название TensorFlow происходит от операций, которые такие нейронные сети выполняют с многомерными массивами данных, которые называются тензорами . Во время конференции Google I / O в июне 2016 года Джефф Дин заявил, что в 1500 репозиториях на GitHub упоминается TensorFlow, из которых только 5 принадлежат Google. [16]
В декабре 2017 года разработчики из Google, Cisco, RedHat, CoreOS и CaiCloud представили Kubeflow на конференции. Kubeflow позволяет работать и развертывать TensorFlow в Kubernetes .
В марте 2018 года Google анонсировал TensorFlow.js версии 1.0 для машинного обучения на JavaScript . [17]
В январе 2019 года Google анонсировал TensorFlow 2.0. [18] Он стал официально доступен в сентябре 2019 года. [19]
В мае 2019 года Google анонсировал TensorFlow Graphics для глубокого обучения компьютерной графике. [20]
Блок тензорной обработки (TPU) [ править ]
В мае 2016 года Google анонсировал свой процессор Tensor (TPU), интегральную схему для конкретного приложения (ASIC, аппаратный чип), созданную специально для машинного обучения и адаптированную для TensorFlow. TPU - это программируемый ускоритель искусственного интеллекта, предназначенный для обеспечения высокой производительности арифметических операций с низкой точностью (например, 8-битных ) и ориентированный на использование или запуск моделей, а не на их обучение . Google объявил, что они использовали TPU в своих центрах обработки данных более года и обнаружили, что они обеспечивают на порядок лучше оптимизированную производительность на ватт.для машинного обучения. [21]
В мае 2017 года Google объявил о втором поколении, а также о доступности TPU в Google Compute Engine . [22] TPU второго поколения обеспечивают производительность до 180 терафлопс, а при объединении в кластеры по 64 TPU - до 11,5 петафлопс.
В мае 2018 года Google анонсировал TPU третьего поколения с производительностью до 420 терафлопс и 128 ГБ памяти с высокой пропускной способностью (HBM). Модули Cloud TPU v3 обеспечивают производительность 100+ петафлопс и 32 ТБ HBM. [23]
В феврале 2018 года Google объявил, что они делают TPU доступными в бета-версии на платформе Google Cloud Platform . [24]
Edge TPU [ править ]
В июле 2018 года был анонсирован Edge TPU. Edge TPU - это специальный чип ASIC от Google, предназначенный для запуска моделей машинного обучения (ML) TensorFlow Lite на небольших клиентских вычислительных устройствах, таких как смартфоны [25], известных как периферийные вычисления .
TensorFlow Lite [ править ]
В мае 2017 года Google анонсировал программный стек TensorFlow Lite специально для мобильной разработки. [26] В январе 2019 года команда TensorFlow выпустила предварительную версию механизма вывода для мобильных GPU с вычислительными шейдерами OpenGL ES 3.1 на устройствах Android и вычислительными шейдерами Metal на устройствах iOS. [27] В мае 2019 года Google объявил, что их TensorFlow Lite Micro (также известный как TensorFlow Lite для микроконтроллеров) и uTensor от ARM будут объединены. [28]
TensorFlow Lite использует FlatBuffers в качестве формата сериализации данных для сетевых моделей, избегая формата протокольных буферов , используемого стандартными моделями TensorFlow.
Pixel Visual Core (PVC) [ править ]
В октябре 2017 года Google выпустила Google Pixel 2, в котором было реализовано Pixel Visual Core (PVC), полностью программируемый процессор изображений , машинного зрения и искусственного интеллекта для мобильных устройств. PVC поддерживает TensorFlow для машинного обучения (и Halide для обработки изображений).
Приложения [ править ]
Google официально выпустил RankBrain 26 октября 2015 года при поддержке TensorFlow.
Google также выпустил Colaboratory, среду для ноутбуков TensorFlow Jupyter, для использования которой не требуется настройка. [29]
Ускоренный курс машинного обучения (MLCC) [ править ]
1 марта 2018 г. компания Google выпустила ускоренный курс по машинному обучению (MLCC). Первоначально разработанный для того, чтобы помочь сотрудникам Google освоить практические основы искусственного интеллекта и машинного обучения, Google организовал бесплатные семинары по TensorFlow в нескольких городах по всему миру, прежде чем наконец опубликовать курс для широкой публики. [30]
TensorFlow 2.0 [ править ]
Поскольку рыночная доля TensorFlow среди исследовательских работ уменьшалась в пользу PyTorch [31], команда TensorFlow объявила о выпуске новой основной версии библиотеки в сентябре 2019 года. TensorFlow 2.0 внес много изменений, наиболее значительными из которых является стремление TensorFlow, которое изменило схема автоматического дифференцирования от статического вычислительного графа до схемы «Define-by-Run» , первоначально ставшей популярной благодаря Chainer, а затем PyTorch . [32] Другие важные изменения включали удаление старых библиотек, перекрестную совместимость между обученными моделями в разных версиях TensorFlow и значительное улучшение производительности на GPU. [33] [требуется неосновной источник ]
Особенности [ править ]
TensorFlow предоставляет стабильный Python (для версии 3.7 на всех платформах) [34] и C API ; [35] и без гарантии обратной совместимости API: C ++ , Go , Java , [36] JavaScript [3] и Swift (заархивировано, разработка прекращена). [37] [38] Сторонние пакеты доступны для C # , [39] [40] Haskell , [41] Julia , [42] MATLAB , [43] R , [44] Scala , [45] Rust , [46] OCaml , [47] и Crystal . [48]
«Поддержка нового языка должна быть построена на основе C API. Однако [..] еще не все функции доступны в C». [49] Некоторые дополнительные функции предоставляет Python API.
Приложения [ править ]
Среди приложений, для которых TensorFlow лежит в основе, есть программное обеспечение для автоматического создания подписей к изображениям , такое как DeepDream . [50]
См. Также [ править ]
- Сравнение программного обеспечения для глубокого обучения
- Дифференцируемое программирование
Ссылки [ править ]
- ^ a b «Кредиты» . TensorFlow.org . Проверено 10 ноября 2015 года .
- ^ "TensorFlow Release" . Проверено 28 января 2021 года .
- ^ a b "TensorFlow.js" . Проверено 28 июня 2018 года .
- ^ Абади, Мартин; Бархэм, Пол; Чен, Цзяньминь; Чен, Чжифэн; Дэвис, Энди; Дин, Джеффри; Девин, Матье; Гемават, Санджай; Ирвинг, Джеффри; Айсард, Майкл; Кудлур, Манджунатх; Левенберг, Джош; Монга, Раджат; Мур, Шерри; Мюррей, Дерек Дж .; Штайнер, Бенуа; Такер, Пол; Васудеван, Виджай; Начальник, Пит; Вик, Мартин; Юй Юань; Чжэн, Сяоцян (2016). «TensorFlow: система для крупномасштабного машинного обучения» (PDF) . arXiv : 1605.08695 . Цитировать журнал требует
|journal=
( помощь ) - ^ Google (2015). TensorFlow: машинное обучение с открытым исходным кодом . «Это программное обеспечение для машинного обучения, которое используется для различных задач восприятия и понимания языка» - Джеффри Дин, минута 0:47 / 2:17 из ролика на YouTube.
- ^ Видеоклип Google о TensorFlow 2015 на минуте 0: 15/2: 17
- ^ Видеоклип от Google о TensorFlow 2015 на минуте 0: 26/2: 17
- ^ Дин и др., 2015 , стр. 2
- ^ Metz, Кейд (9 ноября 2015). "Google Just Open Sourced TensorFlow, его механизм искусственного интеллекта" . Проводной . Проверено 10 ноября 2015 года .
- ^ Дин, Джефф ; Монга, Раджат; и другие. (9 ноября 2015 г.). «TensorFlow: крупномасштабное машинное обучение в гетерогенных системах» (PDF) . TensorFlow.org . Google Research . Проверено 10 ноября 2015 года .
- ↑ Перес, Сара (9 ноября 2015 г.). "Google Open-Источники The Machine Learning Tech Behind Google Фотографии Поиск, смарт - ответ и многое другое" . TechCrunch . Проверено 11 ноября 2015 года .
- ^ Оремус, Вилл (9 ноября 2015). "Что такое TensorFlow и почему Google так взволнован?" . Шифер . Проверено 11 ноября 2015 года .
- Рианна Уорд-Бейли, Джефф (25 ноября 2015 г.). «Председатель Google: Мы добиваемся« реального прогресса »в области искусственного интеллекта» . CSMonitor . Проверено 25 ноября 2015 года .
- ^ «Tensorflow Release 1.0.0» .
- ^ Metz, Кейд (10 ноября 2015). «TensorFlow, ИИ с открытым исходным кодом от Google, указывает на быстро меняющийся мир оборудования» . Проводной . Проверено 11 ноября 2015 года .
- ^ Машинное обучение: Google I / O 2016 Минута 07: 30/44: 44 accessdate = 2016-06-05
- ^ TensorFlow (30 марта 2018 г.). «Знакомство с TensorFlow.js: машинное обучение в Javascript» . Средний . Проверено 24 мая 2019 года .
- ^ TensorFlow (14 января 2019 г.). «Что будет с TensorFlow 2.0» . Средний . Проверено 24 мая 2019 года .
- ^ TensorFlow (30 сентября 2019 г.). «TensorFlow 2.0 уже доступен!» . Средний . Проверено 24 ноября 2019 года .
- ^ TensorFlow (9 мая 2019 г.). «Знакомство с графикой TensorFlow: компьютерная графика требует глубокого обучения» . Средний . Проверено 24 мая 2019 года .
- ^ Джуппи, Норм . «Google решает задачи машинного обучения с помощью специального чипа TPU» . Блог Google Cloud Platform . Проверено 19 мая 2016 года .
- ^ «Создавайте и обучайте модели машинного обучения на наших новых TPU Google Cloud» . Google . 17 мая 2017 года . Проверено 18 мая 2017 года .
- ^ «Облако ТПУ» . Google Cloud . Проверено 24 мая 2019 года .
- ^ «Ускорители машинного обучения Cloud TPU теперь доступны в бета-версии» . Блог Google Cloud Platform . Проверено 12 февраля 2018 года .
- ^ Кунда, Kishalaya (26 июля 2018). «Google анонсирует Edge TPU, Cloud IoT Edge на Cloud Next 2018» . Бибом . Проверено 2 февраля 2019 года .
- ^ "Новая структура машинного обучения Google добавит больше возможностей искусственного интеллекта в ваш телефон" .
- ^ TensorFlow (16 января 2019 г.). «TensorFlow Lite теперь работает быстрее с мобильными графическими процессорами (предварительная версия для разработчиков)» . Средний . Проверено 24 мая 2019 года .
- ^ "Объявление uTensor и Tensor Flow | Mbed" . os.mbed.com . Проверено 24 мая 2019 года .
- ^ "Коллаборатория - Google" . research.google.com . Проверено 10 ноября 2018 года .
- ^ «Ускоренный курс машинного обучения с API TensorFlow» .
- ↑ Он, Гораций (10 октября 2019 г.). «Состояние фреймворков машинного обучения в 2019 году» . Градиент . Проверено 22 мая 2020 года .
- ↑ Он, Гораций (10 октября 2019 г.). «Состояние фреймворков машинного обучения в 2019 году» . Градиент . Проверено 6 июля, 2020 .
- ^ "TensorFlow 2.0 уже доступен!" . Блог TensorFlow. 30 сентября 2019 . Проверено 22 мая 2020 года .
- ^ «Все символы в TensorFlow | TensorFlow» . TensorFlow . Проверено 18 февраля 2018 года .
- ^ «Совместимость версий TensorFlow | TensorFlow» . TensorFlow . Проверено 10 мая 2018 года .
Некоторые функции API явно помечены как «экспериментальные» и могут изменяться обратно несовместимыми способами между второстепенными выпусками.
К ним относятся другие языки
- ^ «Документация по API» . Проверено 27 июня 2018 года .
- ^ TensorFlow (26 апреля 2018 г.). «Представляем Swift для TensorFlow» . Средний . Проверено 14 августа 2019 года .
не просто оболочка API TensorFlow, написанная на Swift
- ^ «Swift для Tensorflow архивируется, и разработка прекращена» . Проверено 18 февраля 2021 года .
Когда S4TF переходит в режим обслуживания, это немного взрывается, чтобы отразить, сколько я узнал.
- ↑ Икаса, Мигель де (17 февраля 2018 г.). «TensorFlowSharp: API TensorFlow для языков .NET» . Проверено 18 февраля 2018 года .
- ^ Chen, Haiping (11 декабря 2018). «TensorFlow.NET: стандартные привязки .NET для TensorFlow» . Проверено 11 декабря 2018 года .
- ^ "haskell: привязки Haskell для TensorFlow" . тензорный поток. 17 февраля 2018 . Проверено 18 февраля 2018 года .
- ^ Malmaud, Джон (12 августа 2019). «Обертка Julia для TensorFlow» . Проверено 14 августа 2019 года .
такие операции, как sin, * (умножение матриц),. * (поэлементное умножение) и т. д. [..].
Сравните с Python, который требует изучения специализированных функций с именами, таких как tf.matmul.
- ^ "Обертка MATLAB для TensorFlow Core" . 3 ноября 2019 . Проверено 13 февраля 2020 года .
- ^ "tensorflow: TensorFlow для R" . RStudio. 17 февраля 2018 . Проверено 18 февраля 2018 года .
- ^ Platanios, Энтони (17 февраля 2018). «tensorflow_scala: API TensorFlow для языка программирования Scala» . Проверено 18 февраля 2018 года .
- ^ "rust: языковые привязки Rust для TensorFlow" . тензорный поток. 17 февраля 2018 . Проверено 18 февраля 2018 года .
- ^ Мазар, Лоран (16 февраля 2018). «tenorflow-ocaml: привязки OCaml для TensorFlow» . Проверено 18 февраля 2018 года .
- ^ "fazibear / tensorflow.cr" . GitHub . Проверено 10 октября 2018 года .
- ^ «TensorFlow на других языках | TensorFlow Core» . TensorFlow . Проверено 14 августа 2019 года .
- ↑ Бирн, Майкл (11 ноября 2015 г.). «Google предлагает всю свою библиотеку машинного обучения как программное обеспечение с открытым исходным кодом» . Vice . Проверено 11 ноября 2015 года .
Библиография [ править ]
- Морони, Лоуренс (1 октября 2020 г.). Искусственный интеллект и машинное обучение для кодеров (1-е изд.). O'Reilly Media . п. 365. ISBN 9781492078197.
- Жерон, Орелиен (15 октября 2019 г.). Практическое машинное обучение с помощью Scikit-Learn, Keras и TensorFlow (2-е изд.). O'Reilly Media . п. 856. ISBN. 9781492032632.
- Рамсундар, Бхарат; Заде, Реза Босах (23 марта 2018 г.). TensorFlow для глубокого обучения (1-е изд.). O'Reilly Media . п. 256. ISBN 9781491980446.
- Надеюсь, Том; Resheff, Yehezkel S .; Лидер, Итай (27 августа 2017 г.). Изучение TensorFlow: Руководство по созданию систем глубокого обучения (1-е изд.). O'Reilly Media . п. 242. ISBN. 9781491978504.
- Шукла, Нишант (12 февраля 2018 г.). Машинное обучение с TensorFlow (1-е изд.). Публикации Мэннинга . п. 272. ISBN. 9781617293870.
Внешние ссылки [ править ]
- Официальный веб-сайт