Kuru padziļināto mācību ietvaru izmantot?

Ja esat iepazinies ar padziļinātu mācīšanos, jūs, iespējams, dzirdējāt frāzi PyTorch vs. TensorFlow vairāk nekā vienu reizi.

PyTorch un TensorFlow ir divas no populārākajām dziļās mācīšanās sistēmām. Šajā rokasgrāmatā ir sniegts visaptverošs pārskats par šo divu ietvaru svarīgākajām iezīmēm, lai palīdzētu jums izlemt, kuru ietvaru izmantot nākamajam dziļās apmācības projektam.

Šajā rakstā mēs vispirms iepazīstināsim ar diviem ietvariem: PyTorch un TensorFlow. Un pēc tam apkopojiet to piedāvātās funkcijas.

Sāksim!

Kas ir PyTorch?

PyTorch ir atvērtā pirmkoda ietvars mašīnmācības un dziļās mācīšanās modeļu veidošanai dažādām lietojumprogrammām, tostarp dabiskās valodas apstrādei un mašīnmācībai.

Tas ir Pythonic ietvars, ko 2016. gadā izstrādāja Meta AI (nekā Facebook AI), kura pamatā ir Lua valodā rakstīta pakete Torch.

Nesen Meta AI izlaida PyTorch 2.0. Jaunais laidiens cita starpā piedāvā labāku atbalstu izplatītajai apmācībai, modeļu apkopošanai un grafiku neironu tīkliem (GNN).

Kas ir TensorFlow?

TensorFlow, kas tika ieviests 2014. gadā, ir Google atvērtā koda pilnīga mašīnmācīšanās sistēma. Tas ir aprīkots ar funkcijām datu sagatavošanai, modeļa izvietošanai un MLOps.

Izmantojot TensorFlow, jūs saņemat starpplatformu attīstības atbalstu un tūlītēju atbalstu visos mašīnmācīšanās dzīves cikla posmos.

PyTorch pret TensorFlow

Gan PyTorch, gan TensorFlow ir īpaši populāri ietvari dziļās mācīšanās kopienā. Lielākajai daļai lietojumprogrammu, ar kurām vēlaties strādāt, abas šīs sistēmas nodrošina iebūvētu atbalstu.

Attēla avots: star-history.com

Šeit mēs apkoposim gan PyTorch, gan TensorFlow galvenās funkcijas, kā arī identificēsim lietošanas gadījumus, kad jūs varētu dot priekšroku vienam ietvaram, nevis otram.

  Kā pazemināt CPU, lai palielinātu datora veiktspēju

#1. Datu kopu un iepriekš apmācītu modeļu bibliotēka

Padziļinātai mācību sistēmai jābūt komplektā ar baterijām. Bieži vien jūs nevēlaties kodēt modeli no nulles. Drīzāk varat izmantot iepriekš apmācītus modeļus un precīzi pielāgot tos savam lietošanas gadījumam.

Tāpat mēs vēlamies, lai bieži izmantotās datu kopas būtu viegli pieejamas. Tas ļautu mums ātri izveidot eksperimentālus modeļus, neizveidojot datu vākšanas cauruļvadu vai importējot un tīrot datus no citiem avotiem.

Šim nolūkam mēs vēlamies, lai šajās sistēmās būtu gan datu kopas, gan iepriekš sagatavoti modeļi, lai mēs varētu daudz ātrāk iegūt bāzes modeli.

PyTorch datu kopas un modeļi

PyTorch ir bibliotēkas, piemēram, torchtext, torchaudio un torchvision attiecīgi NLP, audio un attēlu apstrādes uzdevumiem. Tātad, strādājot ar PyTorch, varat izmantot šo bibliotēku nodrošinātās datu kopas un modeļus, tostarp:

  • torchtext.datasets un torchtext.models datu kopām un apstrādei dabiskās valodas apstrādes uzdevumiem
  • torchvision.datasets un torchvision.models nodrošina attēlu datu kopas un iepriekš sagatavotus modeļus datorredzes uzdevumiem
  • torchaudio.datasets un torchaudio.models datu kopām un iepriekš sagatavotiem modeļu svariem un utilītas mašīnmācībai audio

TensorFlow datu kopas un modeļi

Turklāt HuggingFace Model Hub varat meklēt gan PyTorch, gan TensorFlow modeļus.

#2. Atbalsts izvietošanai

Debatēs PyTorch vs. TensorFlow atbalstam izvietošanai bieži vien ir galvenā vieta.

Mašīnmācīšanās modelis, kas lieliski darbojas jūsu vietējā attīstības vidē, ir labs sākumpunkts. Tomēr, lai iegūtu vērtību no mašīnmācīšanās modeļiem, ir svarīgi tos izvietot ražošanā un nepārtraukti uzraudzīt.

Šajā sadaļā mēs apskatīsim funkcijas, kuras piedāvā gan PyTorch, gan TensorFlow, lai ražošanā izvietotu mašīnmācīšanās modeļus.

TensorFlow Extended (TFX)

TensorFlow Extended, saīsināti kā tfx, ir izvietošanas sistēma, kuras pamatā ir TensorFlow. Tas nodrošina funkcionalitāti, kas palīdz organizēt un uzturēt mašīnmācīšanās cauruļvadus. Tas cita starpā nodrošina datu validācijas un datu pārveidošanas funkcijas.

Izmantojot TensorFlow apkalpošanu, varat izvietot mašīnmācīšanās modeļus ražošanas vidēs.

TorchServe

Pastāv izplatīts viedoklis, ka PyTorch ir populārs pētnieku aprindās, savukārt TensorFlow ir populārs šajā nozarē. Tomēr nesen abas šīs sistēmas ir plaši izmantotas.

Tāpat kā TensorFlow Serving, PyTorch nodrošina TorchServe — viegli lietojamu sistēmu, kas atvieglo PyTorch modeļu apkalpošanu ražošanā. Turklāt jūs varat arī izmantot TensorFlow Lite, lai izvietotu mašīnmācības modeļus mobilajās un citās malas ierīcēs.

  Kā lietot QUERY funkciju Google izklājlapās

Neskatoties uz to, ka abas sistēmas nodrošina izvietošanas atbalstu, TensorFlow sākotnēji atbalsta modeļa izvietošanu. Tāpēc tā ir vēlamā izvēle ražošanas vidēs.

#3. Modeļa interpretācijas iespējas

Varat izveidot padziļinātus mācību modeļus lietojumprogrammām, ko izmanto tādās jomās kā veselības aprūpe un finanses. Bet, ja modeļi ir melnās kastes, kas izvada noteiktu etiķeti vai prognozi, ir izaicinājums interpretēt modeļa prognozes.

Tas noveda pie interpretējamas mašīnmācības (vai izskaidrojamas ML), lai izstrādātu pieejas, lai izskaidrotu neironu tīklu un citu mašīnmācīšanās modeļu darbību.

Tāpēc interpretējamība ir ļoti svarīga dziļai mācīšanai un labākai neironu tīklu darbības izpratnei. Un mēs redzēsim, kādas funkcijas piedāvā PyTorch un TensorFlow.

PyTorch Captum

PyTorch Captum, PyTorch modeļu interpretācijas bibliotēka, nodrošina vairākas modeļa interpretācijas iespējas.

Šīs funkcijas ietver tādas attiecinājuma metodes kā:

  • Integrētie gradienti
  • LIME, FORMA
  • DeepLIFT
  • GradCAM un varianti
  • Slāņu attiecinājuma metodes

TensorFlow Explain (tf-explain)

Tensorflow Explain (tf-explain) ir bibliotēka, kas nodrošina neironu tīklu interpretācijas funkcionalitāti, tostarp:

  • Integrētie gradienti
  • GradCAM
  • SmoothGrad
  • Vaniļas gradienti un citi.

Līdz šim mēs esam redzējuši interpretējamības iespējas. Pāriesim pie vēl viena svarīga aspekta – privātuma.

#4. Atbalsts privātumu saglabājošai mašīnmācībai

Mašīnmācīšanās modeļu lietderība ir atkarīga no piekļuves reāliem datiem. Tomēr tas ir saistīts ar negatīvo pusi, ka tiek zaudēta datu privātums. Pēdējā laikā ir bijuši ievērojami sasniegumi saistībā ar privātumu saglabājošām mašīnmācīšanās metodēm, piemēram, diferenciālo privātumu un apvienoto mācīšanos.

PyTorch Opacus

Atšķirīgā privātā modeļa apmācība nodrošina atsevišķu ierakstu veikšanu, vienlaikus apgūstot noderīgu informāciju par datu kopu kopumā.

Un PyTorch Opacus ļauj apmācīt modeļus ar diferencētu privātumu. Lai uzzinātu, kā ieviest diferencētu privāto modeļu apmācību, skatiet Opacus ievadu.

TensorFlow Federated

Apvienotā apmācība novērš nepieciešamību pēc centralizētas datu vākšanas un apstrādes vienības. Apvienotā iestatījumā dati nekad neiziet no īpašnieka vai telpas. Tāpēc apvienotā mācīšanās veicina labāku datu pārvaldību.

TensorFlow Federated nodrošina funkcionalitāti, lai apmācītu mašīnmācības modeļus uz decentralizētiem datiem.

  Kā iegūt Apple TV lietotni ārpus ASV reģiona

#5. Mācīšanās vieglums

PyTorch ir Pythonic padziļinātas apmācības sistēma. Ērtai kodēšanai PyTorch ir nepieciešama vidēja Python prasme, tostarp laba izpratne par objektorientētas programmēšanas koncepcijām, piemēram, mantošanu.

No otras puses, izmantojot TensorFlow, varat izmantot Keras API. Šī augsta līmeņa API abstrahē dažas zema līmeņa ieviešanas detaļas. Tādējādi, ja jūs tikko sākat veidot padziļinātas mācīšanās modeļus, Keras var būt vieglāk lietojams.

PyTorch pret TensorFlow: pārskats

Līdz šim mēs esam apsprieduši PyTorch un TensorFlow funkcijas. Šeit ir visaptverošs salīdzinājums:

FeaturePyTorchTensorFlowDatu kopas un iepriekš apmācīti modeļi lāpas tekstā, skārienjutīgajā audio un lāpas vīzijāDatu kopu bibliotēka un iepriekš sagatavoti modeļiDatu kopas un iepriekš apmācīti modeļi lāpas tekstam, torchaudio un torchvisionDeploymentTorchServe mašīnmācīšanās modeļu apkalpošanai. TensorFlow PrivātumaP servēšana un TensorFlow Privātuma servisa modelis Mašīnmācīšanās PyTorch Opacus saglabāšana diferencētai privātai modeļu apmācībaiTensorFlow Federated apvienotai mašīnmācībai Vienkārša mācīšanās Nepieciešama vidēja Python prasme Salīdzinoši vieglāk apgūt un lietot

Mācību resursi

Visbeidzot, noslēgsim diskusiju, apskatot dažus noderīgus resursus, lai apgūtu PyTorch un TensorFlow. Šis nav pilnīgs saraksts, bet gan īpaši atlasītu resursu saraksts, kas ļaus jums ātri apgūt šīs sistēmas.

#1. Padziļināta mācīšanās ar PyTorch: 60 minūšu zibens

60 minūšu zibens apmācība PyTorch oficiālajā vietnē ir lielisks iesācējiem draudzīgs resurss PyTorch apguvei.

Šī apmācība palīdzēs jums sākt un darboties ar Pytorch pamatiem, piemēram, tenzoriem un autogrāfiem, kā arī izveidot pamata attēlu klasifikācijas neironu tīklu, izmantojot PyTorch.

#2. Padziļināta mācīšanās ar PyTorch: no nulles līdz GAN

Padziļināta mācīšanās ar PyTorch: Zero to GAN, ko piedāvā Jovian.ai, ir vēl viens visaptverošs resurss dziļas mācīšanās apguvei, izmantojot PyTorch. Apmēram sešu nedēļu laikā jūs varat uzzināt:

  • PyTorch pamati: tenzori un gradienti
  • Lineārā regresija programmā PyTorch
  • Dziļu neironu tīklu, ConvNets un ResNets izveide programmā PyTorch
  • Ģeneratīvo pretrunīgo tīklu (GAN) izveide

#3. TensorFlow 2.0 pabeigts kurss

Ja vēlaties apgūt TensorFlow, TensorFlow 2.0 pilnīgais kurss freeCodeCamp kopienas kanālā būs noderīgs.

#4. TensorFlow — Python Deep Learning neironu tīkla API, ko piedāvā DeepLizard

Vēl viens lielisks TensorFlow kurss iesācējiem ir no DeepLizard. Šajā iesācējiem draudzīgajā TensorFlow kursā jūs apgūsit dziļas mācīšanās pamatus, tostarp:

  • Datu kopu ielāde un pirmapstrāde
  • Vaniļas neironu tīklu veidošana
  • Konvolucionālo neironu tīklu (CNN) veidošana

Secinājums

Rezumējot, šis raksts palīdzēja iegūt augsta līmeņa pārskatu par PyTorch un TensorFlow. Optimālā ietvara izvēle būs atkarīga no projekta, pie kura strādājat. Turklāt jums būs jāņem vērā atbalsts izvietošanai, izskaidrojamībai un daudz ko citu.

Vai esat Python programmētājs, kurš vēlas apgūt šīs sistēmas? Ja tā, varat apsvērt iespēju izpētīt vienu vai vairākus iepriekš kopīgotos resursus.

Un, ja jūs interesē NLP, apskatiet šo dabiskās valodas apstrādes kursu sarakstu, kas jāapgūst. Laimīgu mācīšanos!