Hvilken Deep Learning Framework skal man bruge?

Hvis du er fortrolig med dyb læring, har du sandsynligvis hørt sætningen PyTorch vs. TensorFlow mere end én gang.

PyTorch og TensorFlow er to af de mest populære deep learning-rammer. Denne vejledning præsenterer en omfattende oversigt over de fremtrædende træk ved disse to rammer – for at hjælpe dig med at beslutte, hvilken ramme du skal bruge – til dit næste dybe læringsprojekt.

I denne artikel vil vi først introducere de to rammer: PyTorch og TensorFlow. Og opsummer derefter de funktioner, de tilbyder.

Lad os begynde!

Hvad er PyTorch?

PyTorch er en open source-ramme til opbygning af maskinlærings- og deep learning-modeller til forskellige applikationer, herunder naturlig sprogbehandling og maskinlæring.

Det er en Pythonic-ramme udviklet af Meta AI (end Facebook AI) i 2016, baseret på Torch, en pakke skrevet i Lua.

For nylig udgav Meta AI PyTorch 2.0. Den nye udgivelse tilbyder blandt andet bedre støtte til distribueret træning, modelkompilering og grafiske neurale netværk (GNN’er).

Hvad er TensorFlow?

Introduceret i 2014, TensorFlow er en open source end-to-end maskinlæringsramme af Google. Den kommer spækket med funktioner til dataforberedelse, modelimplementering og MLOps.

Med TensorFlow får du udviklingssupport på tværs af platforme og klar support til alle faser i maskinlærings-livscyklussen.

PyTorch vs. TensorFlow

Både PyTorch og TensorFlow er super populære rammer i deep learning-fællesskabet. For de fleste applikationer, som du ønsker at arbejde på, giver begge disse rammer indbygget support.

Billedkilde: star-history.com

Her vil vi opsummere nøglefunktionerne i både PyTorch og TensorFlow og også identificere brugstilfælde, hvor du måske foretrækker det ene framework frem for det andet.

  Sådan booster du dit Wi-Fi-signal

#1. Bibliotek af datasæt og forudtrænede modeller

En dyb læringsramme bør komme med batterier inkluderet. Ofte ønsker du ikke at kode en model fra bunden. I stedet kan du udnytte forudtrænede modeller og finjustere dem til din brugssituation.

På samme måde ønsker vi, at almindeligt anvendte datasæt er let tilgængelige. Dette ville gøre os i stand til hurtigt at bygge eksperimentelle modeller uden at skulle oprette en dataindsamlingspipeline eller importere og rense data fra andre kilder.

Til dette formål vil vi gerne have, at disse rammer kommer med både datasæt og fortrænede modeller, så vi kan få en basismodel meget hurtigere.

PyTorch-datasæt og modeller

PyTorch har biblioteker såsom torchtext, torchaudio og torchvision til henholdsvis NLP-, lyd- og billedbehandlingsopgaver. Så når du arbejder med PyTorch, kan du udnytte datasættene og modellerne fra disse biblioteker, herunder:

  • torchtext.datasets og torchtext.modeller til datasæt og behandling til naturlige sprogbehandlingsopgaver
  • torchvision.datasets og torchvision.models leverer billeddatasæt og fortrænede modeller til computervisionsopgaver
  • torchaudio.datasets og torchaudio.models til datasæt og fortrænede modelvægte og hjælpeprogrammer til maskinlæring på lyd

TensorFlow-datasæt og modeller

Derudover kan du kigge efter både PyTorch- og TensorFlow-modeller i HuggingFace Model Hub.

#2. Support til implementering

I PyTorch vs. TensorFlow-debatten er støtte til implementering ofte i centrum.

En maskinlæringsmodel, der fungerer godt i dit lokale udviklingsmiljø, er et godt udgangspunkt. Men for at få værdi fra maskinlæringsmodeller er det vigtigt at implementere dem til produktion og overvåge dem løbende.

I dette afsnit vil vi tage et kig på funktioner, som både PyTorch og TensorFlow tilbyder til at implementere maskinlæringsmodeller til produktion.

TensorFlow Extended (TFX)

TensorFlow Extended, forkortet tfx, er en implementeringsramme, der er baseret på TensorFlow. Det giver funktionalitet, der hjælper dig med at orkestrere og vedligeholde maskinlæringspipelines. Det giver blandt andet funktioner til datavalidering og datatransformation.

Med TensorFlow Serving kan du implementere maskinlæringsmodeller i produktionsmiljøer.

TorchServe

Der er en fælles opfattelse, at PyTorch er populær i forskningsmiljøet, mens TensorFlow er populær i branchen. Men for nylig har begge disse rammer fundet udbredt brug.

Ligesom TensorFlow Serving, leverer PyTorch TorchServe, en letanvendelig ramme, der gør det nemt at betjene PyTorch-modeller i produktion. Derudover kan du også bruge TensorFlow Lite til at implementere machine learning-modeller på mobile og andre edge-enheder.

  Sådan stopper du med at gemme sendte e-mails i Outlook 2016

På trods af at begge rammer giver implementeringssupport, understøtter TensorFlow indbygget modelimplementering. Det er derfor det foretrukne valg i produktionsmiljøer.

#3. Funktioner til modelfortolkning

Du kan bygge deep learning-modeller til applikationer, der bruges i domæner som sundhedspleje og finans. Men hvis modellerne er sorte bokse, der udsender en given etiket eller forudsigelse, er der en udfordring med at fortolke modellens forudsigelser.

Dette førte til fortolkelig maskinlæring (eller forklarlig ML) for at komme med tilgange til at forklare, hvordan neurale netværk og andre maskinlæringsmodeller fungerer.

Derfor er fortolkning super vigtigt for dyb læring og for bedre at forstå, hvordan neurale netværk fungerer. Og vi vil se, hvilke funktioner PyTorch og TensorFlow tilbyder for det samme.

PyTorch Captum

PyTorch Captum, modelfortolkningsbiblioteket for PyTorch, giver flere funktioner til modelfortolkning.

Disse funktioner omfatter tilskrivningsmetoder som:

  • Integrerede gradienter
  • KALK, SHAP
  • DeepLIFT
  • GradCAM og varianter
  • Lagtilskrivningsmetoder

TensorFlow Explain (tf-explain)

Tensorflow Explain (tf-explain) er et bibliotek, der giver funktionalitet til fortolkning af neurale netværk, herunder:

  • Integrerede gradienter
  • GradCAM
  • SmoothGrad
  • Vaniljegradienter og mere.

Indtil videre har vi set funktionerne for fortolkning. Lad os gå videre til et andet vigtigt aspekt – privatliv.

#4. Understøttelse af maskinlæring, der bevarer privatlivets fred

Nytten af ​​maskinlæringsmodeller er afhængig af adgang til data fra den virkelige verden. Dette kommer dog med den ulempe, at privatlivets fred for dataene går tabt. For nylig er der sket betydelige fremskridt omkring privatlivsbevarende maskinlæringsteknikker, såsom differentieret privatliv og fødereret læring.

PyTorch Opacus

Differentielt privat modeltræning sikrer, at individuelle optegnelser, mens de stadig lærer nyttige oplysninger om datasættet som helhed.

Og PyTorch Opacus giver dig mulighed for at træne modeller med differentieret privatliv. For at lære at implementere differentielt privat modeltræning, tjek introduktionen til Opacus.

TensorFlow Federated

Fødereret læring fjerner behovet for en centraliseret dataindsamlings- og behandlingsenhed. I en fødereret indstilling forlader dataene aldrig ejeren eller stedet. Derfor letter fødereret læring bedre datastyring.

TensorFlow Federated giver funktionalitet til at træne maskinlæringsmodeller på decentraliserede data.

  Sådan sletter du alle afsluttede påmindelser på én gang på iPhone og iPad

#5. Nem at lære

PyTorch er en Pythonic deep-learning-ramme. Kodning komfortabelt i PyTorch kræver mellemliggende Python-færdigheder, herunder en god forståelse af objektorienterede programmeringskoncepter såsom arv.

På den anden side kan du med TensorFlow bruge Keras API. Denne API på højt niveau abstraherer nogle af implementeringsdetaljerne på lavt niveau. Som et resultat heraf, hvis du lige er begyndt med at opbygge deep learning-modeller, kan du finde Keras nemmere at bruge.

PyTorch vs. TensorFlow: Et overblik

Indtil videre har vi diskuteret funktionerne i PyTorch og TensorFlow. Her er en omfattende sammenligning:

FeaturePyTorchTensorFlowDatasets og præ-trænede modeller i fakkeltekst, berøringslyd og torchvisionBibliotek af datasæt og prætrænede modellerDatasets og præ-trænede modeller i torchtext, torchaudio og torchvisionDeploymentTorchServe til betjening af maskinlæringsmodeller TensorFlow-modeller, TensorFlow-servering, Interflow-Modeller, Captain Bevarelse af Machine LearningPyTorch Opacus for differentielt privat modeltræning

Læringsressourcer

Til sidst, lad os afslutte vores diskussion ved at gennemgå nogle nyttige ressourcer for at lære PyTorch og TensorFlow. Dette er ikke en udtømmende liste, men en liste over kirsebærplukkede ressourcer, der vil få dig hurtigt op i gang med disse rammer.

#1. Dyb læring med PyTorch: A 60-Minute Blitz

Den 60-minutters blitz-tutorial på PyTorchs officielle hjemmeside er en fremragende begyndervenlig ressource til at lære PyTorch.

Denne tutorial hjælper dig med at komme i gang med Pytorch-grundlæggende, såsom tensorer og autografer, og opbygge et grundlæggende neuralt netværk til billedklassificering med PyTorch.

#2. Deep Learning med PyTorch: Nul til GAN’er

Deep Learning with PyTorch: Zero to GANs af Jovian.ai er en anden omfattende ressource til at lære dyb læring med PyTorch. I løbet af cirka seks uger kan du lære:

  • PyTorch grundlæggende: tensorer og gradienter
  • Lineær regression i PyTorch
  • Opbygning af dybe neurale netværk, ConvNets og ResNets i PyTorch
  • Opbygning af Generative Adversarial Networks (GAN’er)

#3. TensorFlow 2.0 Komplet kursus

Hvis du ønsker at få styr på TensorFlow, vil TensorFlow 2.0 Complete Course på freeCodeCamps community-kanal være nyttig.

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

Et andet fantastisk TensorFlow-kursus for begyndere er fra DeepLizard. På dette begyndervenlige TensorFlow-kursus lærer du det grundlæggende i dyb læring, herunder:

  • Indlæsning og forbehandling af datasæt
  • Opbygning af vanilje neurale netværk
  • Opbygning af konvolutionelle neurale netværk (CNN’er)

Konklusion

Sammenfattende hjalp denne artikel dig med at få et overblik over PyTorch og TensorFlow på højt niveau. Valget af den optimale ramme afhænger af det projekt, du arbejder på. Derudover ville dette kræve, at du medregner støtten til implementering, forklaringsmuligheder og mere.

Er du en Python-programmør, der ønsker at lære disse rammer? Hvis ja, kan du overveje at udforske en eller flere af de ressourcer, der er delt ovenfor.

Og hvis du er interesseret i NLP, så tjek denne liste over kurser i naturlig sprogbehandling, du kan tage. God læring!