Що ще пропонує TensorFlow керам?


16

Мені відомо, що кери служать інтерфейсом високого рівня для TensorFlow.

Але мені здається, що кери можуть робити багато функцій самостійно (введення даних, створення моделі, навчання, оцінка).

Крім того, деякі функції TensorFlow можна перенести безпосередньо в кери (наприклад, можна використовувати метрику tf або функцію втрат у керах).

Моє запитання: що пропонує TensorFlow, який неможливо відтворити в керах?

Відповіді:


15

Рамки глибокого навчання працюють на двох рівнях абстракції:

  • Нижній рівень : тут сидять рамки типу Tensorflow, MXNet, Theano та PyTorch. Це рівень, коли реалізуються математичні операції, такі як узагальнене множення матриці-матриці та примітиви нейронної мережі, такі як конволюційні операції.
  • Вищий рівень : Тут сидять рамки, як Керас. На цьому рівні примітиви нижнього рівня використовуються для реалізації абстракції нейронної мережі, як шари та моделі. Як правило, на цьому рівні реалізуються й інші корисні API, такі як економія моделей та навчання моделям.

Ви не можете порівнювати Keras і TensorFlow, оскільки вони сидять на різних рівнях абстракції. Я також хочу скористатися цією можливістю, щоб поділитися своїм досвідом використання Keras:

  • Я не згоден, що Керас корисний лише для основної роботи з глибокого навчання. Керас - це прекрасно написаний API. Функціональний характер API допомагає вам повністю і виходить з ваших можливостей для більш екзотичних застосувань. Керас не блокує доступ до рамок нижчого рівня.
  • Керас призводить до набагато більш читаного та лаконічного коду.
  • API керування серіалізацією / десеріалізацією Керасу, зворотні дзвінки та потокове передавання даних за допомогою генераторів Python дуже зрілі.
  • Керас оголошений офіційною абстракцією високого рівня для TensorFlow.

9

Якщо ви використовуєте TensorFlow як ваш бекенд у керах, вони більш-менш мають однаковий функціонал. Через keras.backendвас є доступ до функцій TensorFlow, тоді як tf.kerasви маєте доступ до керасу всього API через TensorFlow.

Оскільки це так, я пропоную вам дотримуватися керас, і якщо ви виявите, що чогось не вистачає (наприклад, показник або функція втрати), ви можете імпортувати його через TensorFlow.


5

Як ви кажете, Keras містить всю функціональність, але поза коробкою він працює лише на процесорі. Підключивши бекенд, такі як TensorFlow або CNTK (що я особисто вважаю за краще), ви розблокуєте потужність GPU, що може значно прискорити деякі робочі навантаження в ML, особливо робочі навантаження DL. Якщо у вас немає дискретного GPU, переваги мінімальні.

Більшу частину часу на практиці ви можете просто встановити свій бекенд і забути про нього, і повністю працювати в Keras, навіть поміняти свій бекенд на інший і порівняти продуктивність. Тому немає необхідності вивчати специфіку TF, якщо ви не хочете кодувати безпосередньо на нижчому рівні.


5

Зважаючи на те, що TensorFlow - це більш низька бібліотека, ніж Керас в цілому, ви б побачили, що це забезпечує додаткову гнучкість та покращену продуктивність (хоча й порівняно незначну, головним чином залежить від того, як ви пишете свій код). Я б сказав, якщо ви займаєтесь дослідженнями або розробкою нових типів нейронних мереж, знання TensorFlow було б дуже корисним. Поза цим ви не маєте відмінності з Керасом, хоча розуміння того, як працює TensorFlow, все-таки може бути корисним, якщо ви використовуєте його як бекенд.

Однак деякий час тому я прочитав, що Keras і TensorFlow стануть більш інтегрованими, що полегшить вам життя.

Очевидно, це лише мій особистий погляд, тому я хотів би вказати вам на кілька додаткових статей, щоб ви могли самостійно прочитати. Ця дискусія про Kaggle дає чудовий огляд аргументів і коли їх використовувати. Середня публікація на цю тему.


5

Кожен новачок має цей запит. Завжди здається, що Керас вирішує основні функції, такі як введення даних, створення моделі, навчання, оцінювання за меншою кількістю рядків коду.

Але тоді, коли ви починаєте розробляти модель ML з нуля, ви розумієте, що можете запрограмувати багато математики в NN, а бібліотека tensorflow надає безліч функціональних можливостей та контролю, роблячи ці концепції практичними. Математичні аспекти навчання можна легко візуалізувати та зробити за допомогою NN, виготовленого за допомогою tf.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.