Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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 (справа)

Среди приложений, для которых TensorFlow лежит в основе, есть программное обеспечение для автоматического создания подписей к изображениям , такое как DeepDream . [50]

См. Также [ править ]

  • Сравнение программного обеспечения для глубокого обучения
  • Дифференцируемое программирование

Ссылки [ править ]

  1. ^ a b «Кредиты» . TensorFlow.org . Проверено 10 ноября 2015 года .
  2. ^ "TensorFlow Release" . Проверено 28 января 2021 года .
  3. ^ a b "TensorFlow.js" . Проверено 28 июня 2018 года .
  4. ^ Абади, Мартин; Бархэм, Пол; Чен, Цзяньминь; Чен, Чжифэн; Дэвис, Энди; Дин, Джеффри; Девин, Матье; Гемават, Санджай; Ирвинг, Джеффри; Айсард, Майкл; Кудлур, Манджунатх; Левенберг, Джош; Монга, Раджат; Мур, Шерри; Мюррей, Дерек Дж .; Штайнер, Бенуа; Такер, Пол; Васудеван, Виджай; Начальник, Пит; Вик, Мартин; Юй Юань; Чжэн, Сяоцян (2016). «TensorFlow: система для крупномасштабного машинного обучения» (PDF) . arXiv : 1605.08695 . Цитировать журнал требует |journal=( помощь )
  5. ^ Google (2015). TensorFlow: машинное обучение с открытым исходным кодом . «Это программное обеспечение для машинного обучения, которое используется для различных задач восприятия и понимания языка» - Джеффри Дин, минута 0:47 / 2:17 из ролика на YouTube.
  6. ^ Видеоклип Google о TensorFlow 2015 на минуте 0: 15/2: 17
  7. ^ Видеоклип от Google о TensorFlow 2015 на минуте 0: 26/2: 17
  8. ^ Дин и др., 2015 , стр. 2
  9. ^ Metz, Кейд (9 ноября 2015). "Google Just Open Sourced TensorFlow, его механизм искусственного интеллекта" . Проводной . Проверено 10 ноября 2015 года .
  10. ^ Дин, Джефф ; Монга, Раджат; и другие. (9 ноября 2015 г.). «TensorFlow: крупномасштабное машинное обучение в гетерогенных системах» (PDF) . TensorFlow.org . Google Research . Проверено 10 ноября 2015 года .
  11. Перес, Сара (9 ноября 2015 г.). "Google Open-Источники The Machine Learning Tech Behind Google Фотографии Поиск, смарт - ответ и многое другое" . TechCrunch . Проверено 11 ноября 2015 года .
  12. ^ Оремус, Вилл (9 ноября 2015). "Что такое TensorFlow и почему Google так взволнован?" . Шифер . Проверено 11 ноября 2015 года .
  13. Рианна Уорд-Бейли, Джефф (25 ноября 2015 г.). «Председатель Google: Мы добиваемся« реального прогресса »в области искусственного интеллекта» . CSMonitor . Проверено 25 ноября 2015 года .
  14. ^ «Tensorflow Release 1.0.0» .
  15. ^ Metz, Кейд (10 ноября 2015). «TensorFlow, ИИ с открытым исходным кодом от Google, указывает на быстро меняющийся мир оборудования» . Проводной . Проверено 11 ноября 2015 года .
  16. ^ Машинное обучение: Google I / O 2016 Минута 07: 30/44: 44 accessdate = 2016-06-05
  17. ^ TensorFlow (30 марта 2018 г.). «Знакомство с TensorFlow.js: машинное обучение в Javascript» . Средний . Проверено 24 мая 2019 года .
  18. ^ TensorFlow (14 января 2019 г.). «Что будет с TensorFlow 2.0» . Средний . Проверено 24 мая 2019 года .
  19. ^ TensorFlow (30 сентября 2019 г.). «TensorFlow 2.0 уже доступен!» . Средний . Проверено 24 ноября 2019 года .
  20. ^ TensorFlow (9 мая 2019 г.). «Знакомство с графикой TensorFlow: компьютерная графика требует глубокого обучения» . Средний . Проверено 24 мая 2019 года .
  21. ^ Джуппи, Норм . «Google решает задачи машинного обучения с помощью специального чипа TPU» . Блог Google Cloud Platform . Проверено 19 мая 2016 года .
  22. ^ «Создавайте и обучайте модели машинного обучения на наших новых TPU Google Cloud» . Google . 17 мая 2017 года . Проверено 18 мая 2017 года .
  23. ^ «Облако ТПУ» . Google Cloud . Проверено 24 мая 2019 года .
  24. ^ «Ускорители машинного обучения Cloud TPU теперь доступны в бета-версии» . Блог Google Cloud Platform . Проверено 12 февраля 2018 года .
  25. ^ Кунда, Kishalaya (26 июля 2018). «Google анонсирует Edge TPU, Cloud IoT Edge на Cloud Next 2018» . Бибом . Проверено 2 февраля 2019 года .
  26. ^ "Новая структура машинного обучения Google добавит больше возможностей искусственного интеллекта в ваш телефон" .
  27. ^ TensorFlow (16 января 2019 г.). «TensorFlow Lite теперь работает быстрее с мобильными графическими процессорами (предварительная версия для разработчиков)» . Средний . Проверено 24 мая 2019 года .
  28. ^ "Объявление uTensor и Tensor Flow | Mbed" . os.mbed.com . Проверено 24 мая 2019 года .
  29. ^ "Коллаборатория - Google" . research.google.com . Проверено 10 ноября 2018 года .
  30. ^ «Ускоренный курс машинного обучения с API TensorFlow» .
  31. Он, Гораций (10 октября 2019 г.). «Состояние фреймворков машинного обучения в 2019 году» . Градиент . Проверено 22 мая 2020 года .
  32. Он, Гораций (10 октября 2019 г.). «Состояние фреймворков машинного обучения в 2019 году» . Градиент . Проверено 6 июля, 2020 .
  33. ^ "TensorFlow 2.0 уже доступен!" . Блог TensorFlow. 30 сентября 2019 . Проверено 22 мая 2020 года .
  34. ^ «Все символы в TensorFlow | TensorFlow» . TensorFlow . Проверено 18 февраля 2018 года .
  35. ^ «Совместимость версий TensorFlow | TensorFlow» . TensorFlow . Проверено 10 мая 2018 года . Некоторые функции API явно помечены как «экспериментальные» и могут изменяться обратно несовместимыми способами между второстепенными выпусками. К ним относятся другие языки
  36. ^ «Документация по API» . Проверено 27 июня 2018 года .
  37. ^ TensorFlow (26 апреля 2018 г.). «Представляем Swift для TensorFlow» . Средний . Проверено 14 августа 2019 года . не просто оболочка API TensorFlow, написанная на Swift
  38. ^ «Swift для Tensorflow архивируется, и разработка прекращена» . Проверено 18 февраля 2021 года . Когда S4TF переходит в режим обслуживания, это немного взрывается, чтобы отразить, сколько я узнал.
  39. Икаса, Мигель де (17 февраля 2018 г.). «TensorFlowSharp: API TensorFlow для языков .NET» . Проверено 18 февраля 2018 года .
  40. ^ Chen, Haiping (11 декабря 2018). «TensorFlow.NET: стандартные привязки .NET для TensorFlow» . Проверено 11 декабря 2018 года .
  41. ^ "haskell: привязки Haskell для TensorFlow" . тензорный поток. 17 февраля 2018 . Проверено 18 февраля 2018 года .
  42. ^ Malmaud, Джон (12 августа 2019). «Обертка Julia для TensorFlow» . Проверено 14 августа 2019 года . такие операции, как sin, * (умножение матриц),. * (поэлементное умножение) и т. д. [..]. Сравните с Python, который требует изучения специализированных функций с именами, таких как tf.matmul.
  43. ^ "Обертка MATLAB для TensorFlow Core" . 3 ноября 2019 . Проверено 13 февраля 2020 года .
  44. ^ "tensorflow: TensorFlow для R" . RStudio. 17 февраля 2018 . Проверено 18 февраля 2018 года .
  45. ^ Platanios, Энтони (17 февраля 2018). «tensorflow_scala: API TensorFlow для языка программирования Scala» . Проверено 18 февраля 2018 года .
  46. ^ "rust: языковые привязки Rust для TensorFlow" . тензорный поток. 17 февраля 2018 . Проверено 18 февраля 2018 года .
  47. ^ Мазар, Лоран (16 февраля 2018). «tenorflow-ocaml: привязки OCaml для TensorFlow» . Проверено 18 февраля 2018 года .
  48. ^ "fazibear / tensorflow.cr" . GitHub . Проверено 10 октября 2018 года .
  49. ^ «TensorFlow на других языках | TensorFlow Core» . TensorFlow . Проверено 14 августа 2019 года .
  50. Бирн, Майкл (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.

Внешние ссылки [ править ]

  • Официальный веб-сайт