Který rámec hlubokého učení použít?

Pokud jste obeznámeni s hlubokým učením, pravděpodobně jste frázi PyTorch vs. TensorFlow slyšeli více než jednou.

PyTorch a TensorFlow jsou dva z nejpopulárnějších rámců hlubokého učení. Tato příručka představuje komplexní přehled hlavních funkcí těchto dvou rámců – aby vám pomohl rozhodnout, který rámec použít – pro váš další projekt hlubokého učení.

V tomto článku si nejprve představíme dva rámce: PyTorch a TensorFlow. A pak shrnout funkce, které nabízejí.

Pojďme začít!

Co je PyTorch?

PyTorch je open-source framework pro vytváření modelů strojového učení a hlubokého učení pro různé aplikace, včetně zpracování přirozeného jazyka a strojového učení.

Je to rámec Pythonic vyvinutý společností Meta AI (než Facebook AI) v roce 2016, založený na Torch, balíčku napsaném v Lua.

Nedávno Meta AI vydala PyTorch 2.0. Nová verze nabízí mimo jiné lepší podporu pro distribuované školení, kompilaci modelů a grafové neuronové sítě (GNN).

Co je TensorFlow?

TensorFlow, představený v roce 2014, je end-to-end systém strojového učení s otevřeným zdrojovým kódem od společnosti Google. Je nabitý funkcemi pro přípravu dat, nasazení modelu a MLOps.

S TensorFlow získáte podporu vývoje napříč platformami a přímou podporu pro všechny fáze životního cyklu strojového učení.

PyTorch vs. TensorFlow

PyTorch i TensorFlow jsou super populární rámce v komunitě hlubokého učení. Pro většinu aplikací, na kterých chcete pracovat, poskytují oba tyto rámce integrovanou podporu.

Zdroj obrázku: star-history.com

Zde shrneme klíčové funkce PyTorch a TensorFlow a také identifikujeme případy použití, kdy byste mohli preferovat jeden rámec před druhým.

  Jak rozmazat pozadí schůzky při hovoru se zoomem

#1. Knihovna datových sad a předtrénovaných modelů

Rámec hlubokého učení by měl být dodáván s bateriemi. Často byste nechtěli kódovat model od začátku. Spíše můžete využít předem vyškolené modely a doladit je podle vašeho případu použití.

Podobně bychom chtěli, aby běžně používané datové sady byly snadno dostupné. To by nám umožnilo rychle sestavit experimentální modely, aniž bychom museli nastavovat kanál sběru dat nebo importovat a čistit data z jiných zdrojů.

Za tímto účelem bychom chtěli, aby tyto rámce přicházely s datovými sadami i předtrénovanými modely, abychom mohli získat základní model mnohem rychleji.

Datové sady a modely PyTorch

PyTorch má knihovny, jako je torchtext, torchaudio a torchvision pro úlohy zpracování NLP, zvuku a obrazu. Takže když pracujete s PyTorchem, můžete využít datové sady a modely poskytované těmito knihovnami, včetně:

  • torchtext.datasets a torchtext.models pro datové sady a zpracování pro úlohy zpracování přirozeného jazyka
  • torchvision.datasets a torchvision.models poskytují obrazové datové sady a předem připravené modely pro úlohy počítačového vidění
  • torchaudio.datasets and torchaudio.models pro datové sady a předem připravené modelové váhy a nástroje pro strojové učení zvuku

Datové sady a modely TensorFlow

Kromě toho můžete v HuggingFace Model Hub hledat modely PyTorch i TensorFlow.

#2. Podpora pro nasazení

V debatě PyTorch vs. TensorFlow je podpora nasazení často středem pozornosti.

Model strojového učení, který skvěle funguje ve vašem místním vývojovém prostředí, je dobrým výchozím bodem. Aby však bylo možné odvodit hodnotu z modelů strojového učení, je důležité je nasadit do výroby a průběžně je monitorovat.

V této části se podíváme na funkce, které PyTorch i TensorFlow nabízejí pro nasazení modelů strojového učení do výroby.

TensorFlow Extended (TFX)

TensorFlow Extended, zkráceně tfx, je framework pro nasazení, který je založen na TensorFlow. Poskytuje funkce, které vám pomohou organizovat a udržovat kanály strojového učení. Poskytuje funkce pro ověřování dat a transformaci dat, mimo jiné.

Se službou TensorFlow Serving můžete nasadit modely strojového učení v produkčních prostředích.

TorchServe

Existuje obecný názor, že PyTorch je populární ve výzkumné komunitě, zatímco TensorFlow je populární v průmyslu. V poslední době však oba tyto rámce našly široké použití.

Stejně jako TensorFlow Serving poskytuje PyTorch TorchServe, snadno použitelný rámec, který usnadňuje obsluhu modelů PyTorch ve výrobě. Kromě toho můžete také použít TensorFlow Lite pro nasazení modelů strojového učení na mobilních a dalších okrajových zařízeních.

  Jak provést Redis Benchmark?

Přestože oba rámce poskytují podporu nasazení, TensorFlow nativně podporuje nasazení modelu. Je proto preferovanou volbou v produkčním prostředí.

#3. Funkce pro interpretovatelnost modelu

Můžete vytvářet modely hlubokého učení pro aplikace používané v oblastech, jako je zdravotnictví a finance. Ale pokud jsou modely černé skříňky, které vydávají daný štítek nebo předpověď, je zde problém interpretovat předpovědi modelu.

To vedlo k interpretovatelnému strojovému učení (nebo vysvětlitelnému ML), aby bylo možné přijít s přístupy k vysvětlení fungování neuronových sítí a dalších modelů strojového učení.

Proto je interpretovatelnost velmi důležitá pro hluboké učení a pro lepší pochopení fungování neuronových sítí. A uvidíme, jaké funkce k tomu samému nabízí PyTorch a TensorFlow.

PyTorch Captum

PyTorch Captum, knihovna interpretovatelnosti modelů pro PyTorch, poskytuje několik funkcí pro interpretovatelnost modelu.

Mezi tyto funkce patří metody atribuce, jako jsou:

  • Integrované přechody
  • VÁPENKA, SHAP
  • DeepLIFT
  • GradCAM a varianty
  • Metody atribuce vrstev

TensorFlow Explain (tf-explain)

Tensorflow Explain (tf-explain) je knihovna, která poskytuje funkce pro interpretovatelnost neuronové sítě, včetně:

  • Integrované přechody
  • GradCAM
  • SmoothGrad
  • Vanilkové přechody a další.

Zatím jsme viděli funkce pro interpretovatelnost. Pojďme k dalšímu důležitému aspektu – soukromí.

#4. Podpora pro strojové učení se zachováním soukromí

Užitečnost modelů strojového učení závisí na přístupu k reálným datům. To však přichází s nevýhodou, že je ztraceno soukromí dat. V poslední době došlo k významnému pokroku v oblasti technik strojového učení, které chrání soukromí, jako je diferenciální soukromí a federované učení.

PyTorch Opacus

Diferenciálně privátní model školení zajišťuje, že jednotlivé záznamy a přitom se stále učí užitečné informace o datové sadě jako celku.

A PyTorch Opacus vám umožní trénovat modely s rozdílným soukromím. Chcete-li se dozvědět, jak zavést diferenciálně soukromý model školení, podívejte se na úvod do Opacus.

TensorFlow Federated

Federované učení odstraňuje potřebu centralizované entity sběru a zpracování dat. Ve federovaném nastavení data nikdy neopustí vlastníka nebo premisu. Proto federované učení usnadňuje lepší správu dat.

TensorFlow Federated poskytuje funkce pro trénování modelů strojového učení na decentralizovaných datech.

  Zvyšte dosah Wi-Fi svého routeru

#5. Snadnost učení

PyTorch je rámec pro hluboké učení Pythonic. Pohodlné kódování v PyTorch vyžaduje středně pokročilé znalosti jazyka Python, včetně dobrého pochopení konceptů objektově orientovaného programování, jako je dědičnost.

Na druhou stranu s TensorFlow můžete použít Keras API. Toto rozhraní API na vysoké úrovni abstrahuje některé detaily implementace na nízké úrovni. Výsledkem je, že pokud s vytvářením modelů hlubokého učení teprve začínáte, může se vám zdát snazší použití Kerasu.

PyTorch vs. TensorFlow: Přehled

Zatím jsme diskutovali o funkcích PyTorch a TensorFlow. Zde je komplexní srovnání:

FunkcePyTorchTensorFlowDatové sady a předem trénované modely v torchtextu, dotykovém zvuku a torchvisionKnihovna datových sad a předem připravených modelůDatové sady a předem trénované modely v torchtextu, torchaudio a torchvisionDeploymentTorchServe pro obsluhu modelů strojového učení a TensorFlow Serve-Serve pro obsluhu modelů pro strojové učení a TensorpretumFlow Servey Capture Zachování strojového učeníPyTorch Opacus pro odlišně soukromý modelový trénink TensorFlow Federovaný pro federované strojové učení Snadné učeníVyžaduje středně pokročilé znalosti Pythonu Relativně jednodušší na naučení a použití

Výukové zdroje

Nakonec zakončeme naši diskusi tím, že si projdeme několik užitečných zdrojů, abychom se naučili PyTorch a TensorFlow. Toto není vyčerpávající seznam, ale seznam vybraných zdrojů, které vás s těmito frameworky rychle zorientují.

#1. Hluboké učení s PyTorchem: 60minutový bleskový útok

60minutový bleskový tutoriál na oficiálních stránkách PyTorch je vynikajícím zdrojem pro začátečníky, jak se naučit PyTorch.

Tento tutoriál vám pomůže začít používat základy Pytorch, jako jsou tenzory a autogramy, a vytvořit základní neuronovou síť pro klasifikaci obrázků pomocí PyTorch.

#2. Hluboké učení s PyTorch: Zero to GANs

Deep Learning with PyTorch: Zero to GANs od Jovian.ai je dalším komplexním zdrojem pro výuku hlubokého učení s PyTorchem. Během přibližně šesti týdnů se můžete naučit:

  • Základy PyTorch: tenzory a gradienty
  • Lineární regrese v PyTorch
  • Budování hlubokých neuronových sítí, ConvNetů a ResNetů v PyTorch
  • Budování generativních adversariálních sítí (GAN)

#3. Kompletní kurz TensorFlow 2.0

Pokud se chcete naučit TensorFlow, pomůže vám kompletní kurz TensorFlow 2.0 na komunitním kanálu freeCodeCamp.

#4. TensorFlow – Python Deep Learning Neural Network API od DeepLizard

Další skvělý kurz TensorFlow pro začátečníky je od DeepLizard. V tomto kurzu TensorFlow pro začátečníky se naučíte základy hlubokého učení, včetně:

  • Načítání a předzpracování datových sad
  • Budování vanilkových neuronových sítí
  • Budování konvolučních neuronových sítí (CNN)

Závěr

Stručně řečeno, tento článek vám pomohl získat přehled o PyTorch a TensorFlow na vysoké úrovni. Výběr optimálního rámce bude záviset na projektu, na kterém pracujete. Kromě toho by to vyžadovalo, abyste zohlednili podporu pro nasazení, vysvětlitelnost a další.

Jste programátor v Pythonu a chcete se naučit tyto rámce? Pokud ano, můžete zvážit prozkoumání jednoho nebo více zdrojů sdílených výše.

A pokud vás NLP zajímá, podívejte se na tento seznam kurzů zpracování přirozeného jazyka, které můžete absolvovat. Šťastné učení!