Яку структуру глибокого навчання використовувати?

Якщо ви знайомі з глибоким навчанням, ви, ймовірно, не раз чули фразу PyTorch проти TensorFlow.

PyTorch і TensorFlow є двома найпопулярнішими фреймворками глибокого навчання. Цей посібник містить вичерпний огляд основних функцій цих двох фреймворків, щоб допомогти вам вирішити, який фреймворк використовувати для вашого наступного проекту глибокого навчання.

У цій статті ми спочатку познайомимося з двома фреймворками: PyTorch і TensorFlow. А потім підсумуйте функції, які вони пропонують.

Давайте почнемо!

Що таке PyTorch?

PyTorch — це фреймворк із відкритим вихідним кодом для створення моделей машинного та глибокого навчання для різноманітних додатків, зокрема обробки природної мови та машинного навчання.

Це фреймворк Pythonic, розроблений Meta AI (ніж Facebook AI) у 2016 році на основі Torch, пакета, написаного на Lua.

Нещодавно Meta AI випустила PyTorch 2.0. Новий випуск пропонує кращу підтримку для розподіленого навчання, компіляції моделей і графових нейронних мереж (GNN) тощо.

Що таке TensorFlow?

TensorFlow, представлений у 2014 році, — це платформа наскрізного машинного навчання з відкритим кодом від Google. Він оснащений функціями для підготовки даних, розгортання моделі та MLOps.

Завдяки TensorFlow ви отримуєте кросплатформну підтримку розробки та готову підтримку для всіх етапів життєвого циклу машинного навчання.

PyTorch проти TensorFlow

І PyTorch, і TensorFlow є надзвичайно популярними фреймворками в спільноті глибокого навчання. Для більшості програм, над якими ви хочете працювати, обидва ці фреймворки забезпечують вбудовану підтримку.

Джерело зображення: star-history.com

Тут ми підсумуємо ключові функції PyTorch і TensorFlow, а також визначимо випадки використання, коли ви можете віддати перевагу одному фреймворку над іншим.

#1. Бібліотека наборів даних і попередньо підготовлених моделей

Платформа глибокого навчання має поставлятися з батарейками. Часто ви не хочете кодувати модель з нуля. Натомість ви можете використати попередньо навчені моделі та налаштувати їх відповідно до свого випадку використання.

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

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

  Як налаштувати середній клік на сенсорній панелі

Набори даних і моделі PyTorch

PyTorch має такі бібліотеки, як torchtext, torchaudio та torchvision для завдань NLP, аудіо та обробки зображень відповідно. Отже, коли ви працюєте з PyTorch, ви можете використовувати набори даних і моделі, надані цими бібліотеками, зокрема:

  • torchtext.datasets і torchtext.models для наборів даних і обробки для завдань обробки природної мови
  • torchvision.datasets і torchvision.models надають набори даних зображень і попередньо підготовлені моделі для завдань комп’ютерного зору
  • torchaudio.datasets і torchaudio.models для наборів даних і попередньо навчених моделей ваг і утиліт для машинного навчання аудіо

Набори даних і моделі TensorFlow

Крім того, ви можете шукати моделі PyTorch і TensorFlow у HuggingFace Model Hub.

#2. Підтримка розгортання

У дебатах PyTorch проти TensorFlow підтримка розгортання часто займає центральне місце.

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

У цьому розділі ми розглянемо функції, які PyTorch і TensorFlow пропонують для розгортання моделей машинного навчання у виробництві.

TensorFlow Extended (TFX)

TensorFlow Extended, скорочено tfx, — це платформа для розгортання, яка базується на TensorFlow. Він надає функціональність, яка допомагає організовувати та підтримувати конвеєри машинного навчання. Він надає функції для перевірки та перетворення даних, серед іншого.

За допомогою TensorFlow Serving ви можете розгортати моделі машинного навчання у виробничих середовищах.

TorchServe

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

Як і TensorFlow Serving, PyTorch надає TorchServe, простий у використанні фреймворк, який спрощує обслуговування моделей PyTorch у виробництві. Крім того, ви також можете використовувати TensorFlow Lite для розгортання моделей машинного навчання на мобільних та інших периферійних пристроях.

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

#3. Особливості для інтерпретації моделі

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

  Який час для зустрічі в Google Meet

Це призвело до інтерпретованого машинного навчання (або пояснюваного ML), щоб знайти підходи до пояснення роботи нейронних мереж та інших моделей машинного навчання.

Тому можливість інтерпретації надзвичайно важлива для глибокого навчання та кращого розуміння роботи нейронних мереж. І ми побачимо, які функції пропонують PyTorch і TensorFlow для того ж.

PyTorch Captum

PyTorch Captum, бібліотека інтерпретації моделі для PyTorch, надає кілька функцій для інтерпретації моделі.

Ці функції включають такі методи атрибуції, як:

  • Інтегровані градієнти
  • ВАПНО, ШАП
  • DeepLIFT
  • GradCAM і варіанти
  • Методи шарової атрибуції

TensorFlow Explain (tf-explain)

Tensorflow Explain (tf-explain) — це бібліотека, яка надає функції для інтерпретації нейронної мережі, зокрема:

  • Інтегровані градієнти
  • GradCAM
  • SmoothGrad
  • Ванільні градієнти тощо.

Наразі ми бачили функції для інтерпретації. Переходимо до іншого важливого аспекту – конфіденційності.

#4. Підтримка машинного навчання із збереженням конфіденційності

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

PyTorch Opacus

Навчання за диференціальною приватною моделлю гарантує, що окремі записи записують корисну інформацію про набір даних у цілому.

А PyTorch Opacus дозволяє навчати моделі з диференціальною конфіденційністю. Щоб дізнатися, як реалізувати диференціальне навчання приватної моделі, перегляньте вступ до Opacus.

TensorFlow Federated

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

TensorFlow Federated надає функціональність для навчання моделей машинного навчання на децентралізованих даних.

#5. Легкість навчання

PyTorch — це структура глибокого навчання Pythonic. Комфортне кодування в PyTorch вимагає середнього володіння Python, включаючи добре розуміння концепцій об’єктно-орієнтованого програмування, таких як успадкування.

З іншого боку, з TensorFlow ви можете використовувати Keras API. Цей високорівневий API абстрагує деякі деталі низькорівневої реалізації. Як наслідок, якщо ви тільки починаєте будувати моделі глибокого навчання, вам може здатися, що Keras стане легшим у використанні.

PyTorch проти TensorFlow: огляд

Поки що ми обговорювали особливості PyTorch і TensorFlow. Ось вичерпне порівняння:

FeaturePyTorchTensorFlowНабори даних і попередньо навчені моделі в torchtext, touch audio і torchvisionLibrary of Datasets і попередньо навчені моделіDatasets і попередньо навчені моделі в torchtext, torchaudio і torchvisionDeploymentTorchServe для обслуговування моделей машинного навчання TensorFlow Serving і TensorFlow Lite для розгортання моделейModel InterpretabilityPyTorchexpla Captumtf- Збереження машинного навчання PyTorch Opacus для диференціального навчання приватної моделіTensorFlow Federated для об’єднаного машинного навчання Простота навчання Вимагає середнього рівня знання Python Відносно легше у вивченні та використанні

  Як користуватися новою функцією глибокого посилання в Google Chrome

Навчальні ресурси

Нарешті, давайте завершимо наше обговорення, переглянувши деякі корисні ресурси для вивчення PyTorch і TensorFlow. Це не вичерпний список, а список ресурсів, які вибрали вишні, які допоможуть вам швидко освоїти ці фреймворки.

#1. Глибоке навчання з PyTorch: 60-хвилинний бліц

60-хвилинний бліц-підручник на офіційному веб-сайті PyTorch є чудовим ресурсом для вивчення PyTorch для початківців.

Цей підручник допоможе вам почати працювати з основами Pytorch, такими як тензори та автографи, а також побудувати базову нейронну мережу класифікації зображень за допомогою PyTorch.

#2. Глибоке навчання з PyTorch: від нуля до GAN

Deep Learning with PyTorch: Zero to GANs від Jovian.ai — це ще один комплексний ресурс для вивчення глибокого навчання за допомогою PyTorch. Протягом приблизно шести тижнів ви зможете навчитися:

  • Основи PyTorch: тензори та градієнти
  • Лінійна регресія в PyTorch
  • Створення глибоких нейронних мереж, ConvNets і ResNets у PyTorch
  • Побудова генеративних змагальних мереж (GAN)

#3. Повний курс TensorFlow 2.0

Якщо ви хочете навчитися TensorFlow, повний курс TensorFlow 2.0 на каналі спільноти freeCodeCamp буде корисним.

#4. TensorFlow – Python Deep Learning Neural Network API від DeepLizard

Ще один чудовий курс TensorFlow для початківців від DeepLizard. У цьому зручному для початківців курсі TensorFlow ви дізнаєтеся про основи глибокого навчання, зокрема:

  • Завантаження та попередня обробка наборів даних
  • Побудова ванільних нейронних мереж
  • Побудова згорткових нейронних мереж (CNN)

Висновок

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

Ви програміст на Python і хочете вивчити ці фреймворки? Якщо так, ви можете розглянути можливість ознайомитися з одним або кількома ресурсами, наданими вище.

І якщо ви зацікавлені в НЛП, перегляньте цей список курсів обробки природної мови, які ви можете пройти. Щасливого навчання!