TensorFlow проти Theano проти Torch проти Keras: бібліотека глибокого навчання
З 2016 року популярність штучного інтелекту зростає: 20% великих компаній використовують ШІ у своєму бізнесі (McKinsey звітом, 2018). Згідно з тим же звітом, штучний інтелект може створити значну цінність у різних галузях. У банківській справі, наприклад, оцінюють потенціал ШІ $300 мільярдів, у роздрібній торгівлі цифра різко зросла до $600 млрд.
Щоб розкрити потенційну цінність ШІ, компанії повинні вибрати правильну структуру глибокого навчання. У цьому посібнику ви дізнаєтеся про різні бібліотеки, доступні для виконання завдань глибокого навчання. Деякі бібліотеки існують роками, а нові бібліотеки, такі як TensorFlow, з’явилися останніми роками.
8 найкращих бібліотек/фреймворків глибокого навчання
У цьому списку ми порівняємо найкращі фреймворки глибокого навчання. Усі вони мають відкритий вихідний код і популярні серед дослідників даних. Ми також порівняємо популярних ML як постачальників послуг
Факел
Torch — це стара бібліотека машинного навчання з відкритим кодом. Вперше він був випущений 15 років тому. Це основна мова програмування LUA, але вона реалізована на C. Порівнюючи PyTorch і TensorFlow, він підтримує величезну бібліотеку для алгоритмів машинного навчання, включаючи глибоке навчання. Він підтримує реалізацію CUDA для паралельних обчислень.
Інструмент глибокого навчання Torch використовується більшістю провідних лабораторій, таких як Facebook, Google, Twitter, Nvidia тощо. У Torch є бібліотека в Python імена Питорч.
Infer.net
Infer.net розроблено та підтримується Microsoft. Infer.net — це бібліотека, в основному зосереджена на байєсівській статистиці. Infer.net — це інструмент візуалізації для глибокого навчання, розроблений, щоб запропонувати практикам найсучасніші алгоритми для імовірнісного моделювання. Бібліотека містить аналітичні інструменти такі як байєсівський аналіз, прихований ланцюг Маркова, кластеризація.
Керас
Керас є a Python основа для глибокого навчання. Це зручна бібліотека для створення будь-якого алгоритму глибокого навчання. Перевага Keras в тому, що він використовує те саме Python код для запуску на CPU або GPU. Крім того, середовище кодування є чистим і дозволяє навчати сучасний алгоритм для комп’ютерного зору, розпізнавання тексту, серед іншого.
Keras був розроблений Франсуа Шолле, дослідником Google. Keras використовується у відомих організаціях, таких як CERN, Yelp, Square або Google, Netflixі Uber.
Теано
Theano — це бібліотека глибокого навчання, розроблена Університетом Монреаля в 2007 році. Порівнюючи Theano з TensorFlow, вона пропонує швидкі обчислення та може працювати як на ЦП, так і на ГП. Theano було розроблено для навчання алгоритмів глибокої нейронної мережі.
Microsoft Cognitive Toolkit (CNTK)
Microsoft набір інструментів, раніше відомий як CNTK, є бібліотекою глибокого навчання, розробленою Microsoft. Відповідно до Microsoft, бібліотека є однією з найшвидших на ринку. Microsoft toolkit є бібліотекою з відкритим кодом, хоча Microsoft широко використовує його для свого продукту, як Skype, Cortana, Bing і Xbox. Набір інструментів доступний як у Python та C++.
MX Net
MXnet — це нова бібліотека глибокого навчання. Він доступний з кількома мовами програмування, включаючи C++, Юлія, Python і R. MXNet можна налаштувати для роботи як на ЦП, так і на ГП. MXNet включає найсучаснішу архітектуру глибокого навчання, таку як згорточна нейронна мережа та довготривала короткочасна пам’ять. MXNet створено для роботи harmony з динамічною хмарною інфраструктурою. Основним користувачем MXNet є Amazon
Кафе
Caffe — це бібліотека, створена Янціном Цзя, коли він був докторантом у Берклі. Порівнюючи Caffe з TensorFlow, Caffe написано в C++ і може виконувати обчислення як на ЦП, так і на ГП. Основним використанням Caffe є згорточна нейронна мережа. Хоча в 2017 році Facebook розширив Caffe більш глибокою архітектурою навчання, включаючи Recurrent Neural Network. Caffe використовують науковці та стартапи, а також деякі великі компанії, такі як Yahoo!.
TensorFlow
TensorFlow — проект Google з відкритим кодом. TensorFlow є найвідомішою бібліотекою глибокого навчання на сьогоднішній день. Він був оприлюднений наприкінці 2015 року
TensorFlow розроблено в C++ і має зручне Python Хоча API C++ API також доступні. Такі відомі компанії, як Airbus, Google, IBM і так далі використовують TensorFlow для створення алгоритмів глибокого навчання.
TensorFlow проти Theano проти Torch проти Keras проти infer.net проти CNTK проти MXNet проти Caffe: ключові відмінності
Library | платформа | Написано в | Підтримка Cuda | Паралельне виконання | Має навчених моделей | RNN | CNN |
---|---|---|---|---|---|---|---|
Факел | Linux macOS, Windows | Lua | Так | Так | Так | Так | Так |
Infer.Net | Linux macOS, Windows | Visual Studio | Немає | Немає | Немає | Немає | Немає |
Керас | Linux macOS, Windows | Python | Так | Так | Так | Так | Так |
Теано | Крос-платформенний | Python | Так | Так | Так | Так | Так |
TensorFlow | Linux macOS, Windows, Android | C++, Python, CUDA | Так | Так | Так | Так | Так |
КОГНІТИВНИЙ ІНСТРУМЕНТАРІЙ MICROSOFT | Linux Windows, Mac з Docker | C++ | Так | Так | Так | Так | Так |
Кафе | Linux macOS, Windows | C++ | Так | Так | Так | Так | Так |
MX Net | Linux Windows, macOS, Android, IOS, Javascript | C++ | Так | Так | Так | Так | Так |
Вердикт
TensorFlow — це найкраща бібліотека з усіх, оскільки вона створена, щоб бути доступною для всіх. Бібліотека Tensorflow містить різні API для створення масштабної архітектури глибокого навчання, як-от CNN або RNN. TensorFlow заснований на обчисленні графів, він дозволяє розробнику візуалізувати побудову нейронної мережі за допомогою Tensorboad. Цей інструмент корисний для налагодження програми. Нарешті, Tensorflow створено для масштабного розгортання. Він працює на CPU та GPU.
Tensorflow користується найбільшою популярністю на GitHub порівняно з іншими бібліотеками глибокого навчання.
Порівняння машинного навчання як послуги
Нижче наведено 4 популярних DL як постачальники послуг
Google Cloud ML
Google надає для розробників попередньо навчену модель, доступну в Cloud AutoML. Це рішення існує для розробників без серйозного досвіду навчання за допомогою машини. Розробники можуть використовувати сучасну попередньо навчену модель Google для своїх даних. Це дозволяє будь-якому розробнику навчити та оцінити будь-яку модель всього за кілька хвилин.
Зараз Google надає REST API для комп’ютерного зору, розпізнавання мовлення, перекладу та NLP.
використання Google Cloud, ви можете навчити структуру машинного навчання на TensorFlow, Scikit-learn, XGBoost або Keras. Google Cloud машинне навчання навчатиме моделі в хмарі.
Перевагою використання хмарних обчислень Google є простота розгортання машинного навчання у виробництві. Немає необхідності налаштовувати контейнер Docker. Крім того, хмара піклується про інфраструктуру. Він знає, як розподіляти ресурси за допомогою процесорів, графічних процесорів і TPU. Це робить навчання швидшим завдяки паралельним обчисленням.
AWS SageMaker
Основний конкурент для Google Cloud is Amazon хмара, AWS. Amazon розробила Amazon SageMaker дозволяє науковцям і розробникам даних створювати, навчати та запускати у виробництво будь-які моделі машинного навчання.
SageMaker доступний у форматі a Jupyter Блокнот і містить найбільш використовувану бібліотеку машинного навчання, TensorFlow, MXNet, Scikit-learn серед інших. Програми, написані за допомогою SageMaker, автоматично запускаються в контейнерах Docker. Amazon керує розподілом ресурсів для оптимізації навчання та розгортання.
Amazon надає API для розробників, щоб додати інтелект до їхніх програм. У деяких випадках немає потреби заново винаходити колесо, створюючи з нуля нові моделі, тоді як у хмарі є потужні попередньо навчені моделі. Amazon надає послуги API для комп’ютерного зору, розмовних чат-ботів і мовних сервісів:
Три основні доступні API:
- Amazon визнання: надає програмі розпізнавання зображень і відео
- Amazon Зрозуміти: Виконуйте інтелектуальний аналіз тексту та обробку нейронної мови, щоб, наприклад, автоматизувати процес перевірки законності фінансового документа
- Amazon Лекс: Додайте чат-бота до програми
Azure Студія машинного навчання
Ймовірно, один із найдружніших підходів до машинного навчання Azure Студія машинного навчання. Значною перевагою цього рішення є те, що не потрібні попередні знання з програмування.
Microsoft Azure Machine Learning Studio — це інструмент для спільної роботи за допомогою перетягування, щоб створювати, навчати, оцінювати та розгортати рішення машинного навчання. Модель можна ефективно розгортати як веб-сервіси та використовувати в кількох програмах, таких як Excel.
Azure Інтерфейс машинного навчання є інтерактивним, що дозволяє користувачеві будувати модель, просто швидко перетягуючи елементи.
Коли модель готова, розробник може зберегти її та відправити Azure Галерея or Azure Ринок.
Azure Машинне навчання можна інтегрувати в R або Python їхній спеціальний вбудований пакет.
IBM Watson ML
Студія Watson може спростити проекти даних за допомогою оптимізованого процесу, який дозволяє отримувати цінність і ідеї з даних, щоб допомогти бізнесу стати розумнішим і швидшим. Студія Watson надає просте у використанні середовище для спільної обробки даних і машинного навчання для побудови та навчання моделей, підготовки й аналізу даних, а також для обміну інформацією в одному місці. Watson Studio проста у використанні за допомогою коду перетягування.
Студія Watson підтримує деякі з найпопулярніших фреймворків, як-от Tensorflow, Keras, Pytorch, Caffe, і може розгорнути алгоритм глибокого навчання на найновіших графічних процесорах від Nvidia, щоб прискорити моделювання.
Вердикт
З нашої точки зору, хмарне рішення Google є найбільш рекомендованим. Хмарне рішення Google забезпечує нижчі ціни на AWS принаймні на 30% за рішення для зберігання даних і машинного навчання. Google робить чудову роботу з демократизації ШІ. Він розробив оптимізовану мову з відкритим кодом TensorFlow сховище даних підключення, надає величезні інструменти від візуалізації даних, аналізу даних до машинного навчання. Крім того, Google Console є ергономічною та набагато більш комплексною, ніж AWS або Windows.