JetBrains випустив альфа-версію KotlinDL - фреймворку для глибокого навчання нейромереж
JetBrains випустила альфа-версію KotlinDL - фреймворк для нейронних мереж глибокого навчання
JetBrains випустила першу альфа-версію KotlinDL, фреймворк для нейронних мереж глибокого навчання, API якого JetBrains намагався зробити максимально схожим на Keras (фреймворк Python поверх TensorFlow).
У KotlinDL ви знайдете прості API як для опису, так і для навчання нейронних мереж. З API високого рівня і ретельно підібраними за замовчуванням за багатьма параметрами, ми сподіваємося знизити поріг для вступу в глибоке навчання на JVM.
Підтримка графічного процесора
Навчання моделей на центральному процесорі може зайняти чималу кількість часу. Поширеною практикою є запуск обчислень на графічному процесорі. Для цього вам знадобиться CUDA від NVIDIA встановлена . Щоб почати навчання моделі на ГПУ, досить додати тільки одну залежність.
Що входить в API
У цій ранній версії ви знайдете всі необхідні методи опису багатошарових персептронів і згорткових мереж. Більшість гіперпараметрів мають розумні значення за замовчуванням, але при цьому у вас є широкий вибір оптимізаторів, ініціалізаторів, функцій активації та інших налаштувань. Модель, отримана в процесі навчання, може бути збережена і використана в бекенд-додатку, написаному на Kotlin або Java.
Завантаження моделей, навчених Керасом
KotlinDL не тільки здатний завантажувати моделі, навчені одному і тому ж фреймворку, але і надає можливість завантажувати і використовувати модель, навчену за допомогою Keras на Python (підтримуються версії Keras 2.*).
При завантаженні моделей також можна використовувати методику Transfer Learning, яка дозволяє не тренувати величезні нейронні мережі з нуля, а використовувати вже існуючу модель і просто підлаштовувати її під своє завдання.
Поточні ліміти
У цій, найбільш ранній версії, доступна обмежена кількість шарів: Input(), Flatten(), Dense(), Dropout(), Conv2D(), MaxPool2D() і AvgPool2D().
Це обмеження також стосується того, на що можна завантажувати моделі Keras. Це означає, що архітектури VGG-16 і VGG-19 вже підтримуються, а, наприклад, ResNet50 ще не підтримується. У найближчі місяці JetBrains планує випустити наступну проміжну версію, яка збільшить кількість підтримуваних архітектур.
Друге обмеження полягає в тому, що підтримка Android-пристроїв ще не включена в цю версію. Але JetBrains також буде працювати над цим.
А що під капотом?
KotlinDL використовує Java API TensorFlow як движок. Всі обчислення виконуються в TensorFlow, в рідній пам'яті, а під час навчання всі дані залишаються в рідній.
Спробуйте і поділіться враженнями!
У документації до проекту ви знайдете статті (англійською мовою), які допоможуть спробувати фреймворк:
- Короткий посібник користувача
- Створіть свою першу нейронну мережу за допомогою KotlinDL
- Навчання моделі
- приклад умовиводу
- Імпорт моделі Keras
- Приклад трансферного навчання
Приєднуйтесь до #deeplearning каналу в Kotlin Slack.
