TensorFlow – це бібліотека програмного забезпечення з відкритим кодом для чисельних розрахунків з використанням графів потоку даних [TensorFlow]. Вузли графу представлені у вигляді математичних операцій, в той час як ребра графу представляються багатовимірними масивами даних (тензорами), що передаються між вузлами.
TensorFlow був створений і підтримується командою Google Brain в рамках дослідницької організації Google Machine Intelligence для ML та DL. Зараз він випускається під ліцензією відкритого коду Apache 2.0. Інтерфейси програмування TensorFlow включають Python та C ++ з планами для API Java, GO, R та Haskell, також підтримуються хмарні середовища Google та Amazon. TensorFlow призначений для широкомасштабних розподілених тренувань, cюди входить 200 стандартних операцій, включаючи математичні, маніпуляції з масивом, управління потоками та операції з управління станом, написані на C ++. На відміну від інших бібліотек DL, які в основному орієнтовані на дослідження (наприклад, Theano), TensorFlow був розроблений для використання як у системах досліджень, так і у розробці та виробництві ПЗ. TensorFlow підтримується процесорами, графічними процесорами, мобільними пристроями і широкомасштабними розподіленими системами, які складаються з сотень вузлів. Крім того, існує TensorFlow Lite – легке рішення TensorFlow для мобільних та вбудованих пристроїв [TensorflowLite]. Це дає змогу випускати ML-орієнтовані рішення на пристрої користувачів дуже швидко та з невеликим двійковим розміром, але має підтримку обмеженого набору систем. Також підтримується апаратне прискорення за допомогою Android Neural Networks API.
Сильні сторони:
- На сьогоднішній день найпопулярніший інструмент DL, з відкритим кодом, швидким залученням, який добре підтримується сильною промисловою компанією (Google).
- Потужна чисельна бібліотека для програмування потоків даних, яка є основою для досліджень та розробок DL.
- Ефективно працює з математичними виразами, що включають багатовимірні масиви.
- Дуже добре задокументована.
- Обчислення на GPU / CPU, мобільні обчислення, висока масштабованість обчислень на різних машинах та величезні набори даних.
- Вищий шар абстракції, ніж Theano.
Слабкі сторони:
- API нижчого рівня важко використовувати безпосередньо для створення моделей DL.
- Кожен обчислювальний потік повинен бути побудований як статичний графік (хоча пакет Tensorflow Fold намагається полегшити цю проблему), а також відсутні символьни цикли.