Ja lasāt šo, jūs, bez šaubām, jau esat sācis savu ceļojumu uz dziļu mācīšanos. Ja esat iesācējs šajā tēmā, dziļā mācīšanās ir papildinājums, kas izmanto unikālas smadzenēm līdzīgas struktūras, ko sauc par mākslīgajiem neironu tīkliem, lai izveidotu cilvēkiem līdzīgus datorus, kas risina reālās pasaules problēmas.
Lai palīdzētu izstrādāt šos dizainus, tehnoloģiju lielvārdi, piemēram, Google, Facebook un Uber, ir izstrādājuši dažādus ietvarus Python dziļās mācību videi, padarot to vienkāršāku dažādu neironu tīklu izpratnē, veidošanā un apmācībā.
Dziļās mācīšanās sistēma ir programmatūras daļa, ko akadēmiķi un datu zinātnieki izmanto, lai izveidotu un apmācītu dziļās mācīšanās modeļus.
Šo ietvaru mērķis ir dot iespēju indivīdiem apmācīt savus modeļus, neizprotot pamatā esošās metodes dziļa mācīšanās, neironu tīkli un mašīnmācīšanās.
Izmantojot augsta līmeņa programmēšanas interfeisu, šie ietvari nodrošina pamatelementus modeļu konstruēšanai, apmācībai un pārbaudei.
Mēs apskatīsim TensorFlow, Keras, Apache MXNet, Microsoft CNTK un DeepLearing4j kā alternatīvas PyTorch, kas ir plaši izmantots. dziļas mācīšanās ietvars.
Kas ir Pytorch?
PyTorch ir bezmaksas atvērtā pirmkoda mašīnmācīšanās bibliotēka, kas izveidota ar Torch Python bibliotēku.
To izveidoja Facebook AI pētījumu grupa un 2016. gada janvārī publicēja kā bezmaksas atvērtā pirmkoda bibliotēku ar datorredzes, dziļās mācīšanās un dabiskās valodas apstrādes lietojumprogrammām.
Tam ir obligāta un Pythonic programmēšanas valoda, kas atbalsta kodu kā modeli, atvieglo atkļūdošanu un ir saderīga ar citām populārzinātniskām skaitļošanas bibliotēkām, vienlaikus saglabājot efektivitāti un nodrošinot aparatūras paātrinātājus, piemēram, GPU.
PyTorch ir ieguvusi popularitāti dziļās mācīšanās pētnieku vidū, pateicoties tā koncentrējoties uz lietojamību un rūpīgiem veiktspējas apsvērumiem.
Tas satur pamata datu struktūru Tensor, kas ir daudzdimensiju masīvs, kas līdzīgs Numpy masīviem, kas ļauj programmētājiem viegli izveidot sarežģītu neironu tīklu.
Tā kļūst arvien populārāka pašreizējās nozarēs un akadēmiskajā aprindās, pateicoties tās elastībai, ātrumam un ieviešanas vienkāršībai, padarot to par vienu no populārākajiem dziļās mācīšanās rīkiem.
Pytorch galvenās funkcijas
- PyTorch ir orientēts uz Python jeb “pythonic”, jo tas ir paredzēts dziļai integrācijai ar Python programmēšanu, nevis kalpo kā interfeiss bibliotēkai, kas izstrādāta citā valodā.
- Vienkārši apgūstami — PyTorch ir tāda pati struktūra kā tradicionālā programmēšana, un tā ir rūpīgi dokumentēta, un izstrādātāju kopiena vienmēr cenšas to uzlabot. Tāpēc to ir viegli iemācīties gan programmētājiem, gan neprogrammētājiem.
- PyTorch var sadalīt skaitļošanas darbu vairākos CPU vai GPU kodoli, izmantojot datu paralēlisma iespēju. Lai gan līdzīgu paralēlismu var panākt ar citām mašīnmācīšanās metodēm, PyTorch to padara daudz vienkāršāku.
- Atkļūdošana: PyTorch atkļūdošanai var izmantot vienu no daudzajiem plaši pieejamajiem Python atkļūdošanas rīkiem (piemēram, Python pdb un ipdb rīkus).
- PyTorch atbalsta dinamiskus skaitļošanas grafikus, kas nozīmē, ka tīkla uzvedību izpildes laikā var dinamiski mainīt.
- PyTorch nāk ar dažādiem īpaši izveidotiem moduļiem, piem torchtext, torchvision un torchaudio, ko var izmantot, lai risinātu dažādas dziļās mācīšanās jomas, piemēram, NLP, datora redzi un balss apstrādi.
Pytorch ierobežojumi
- Ierobežotas uzraudzības un vizualizācijas saskarnes: lai gan TensorFlow ietver jaudīgu vizualizācijas rīku modeļa grafika (TensorBoard) ģenerēšanai, PyTorch pašlaik trūkst šīs funkcijas. Tā rezultātā izstrādātāji var izveidot savienojumu ar TensorBoard ārēji vai izmantot kādu no daudzajiem esošajiem Python. datu vizualizācijas rīki.
- PyTorch nav pilnīgs mašīna mācīšanās attīstības platforma; tas izvieto lietojumprogrammas serveros, darbstacijās un mobilajās ierīcēs.
Visu šo iemeslu dēļ saprātīgs lēmums būtu meklēt vislabākās Pytorch alternatīvas.
Populārākās Pytorch alternatīvas
Šeit ir saraksts ar labākajām Pytorch alternatīvām.
1. Tensorflow
TensorFlow ir uz mācīšanos vērsta atvērtā pirmkoda ietvars, ko izveidojis Google. Tā atbalsta arī standarta mašīna mācīšanās. TensorFlow tika izstrādāts, ņemot vērā lielus skaitliskos aprēķinus, nevis dziļu mācīšanos.
Turklāt tas izrādījās diezgan vērtīgs arī dziļas mācīšanās attīstībai, tāpēc Google padarīja to pieejamu bez maksas. TensorFlow iegūst datus daudzdimensiju masīvu veidā ar lielākiem izmēriem, kas pazīstami kā tenzori. Strādājot ar milzīgu datu apjomu, noder daudzdimensiju masīvi.
TensorFlow pamatā ir mezglu malu datu plūsmas grafiki. Tā kā izpildes metode ir grafiku veidā, ir daudz vieglāk izpildīt TensorFlow kodu datoru klasterī, izmantojot GPU.
C#, Haskell, Julia, R, Ruby, Rust un Scala ir vienas no valodām, kurām TensorFlow kopiena ir izveidojusi atbalstu. TensorFlow piedāvā lielu piekļuves punktu skaitu.
Papildus valodām, TensorFlow ir liels rīku klāsts, kas savienojas ar to vai ir uzcelti uz tā.
Priekšrocības
- Tas ir lietotājam draudzīgs. Ja esat iepazinies ar Python, to būs viegli izvēlēties.
- Atbalsts no sabiedrības. Google un citu organizāciju eksperti izstrādātāji TensorFlow praktiski katru dienu uzlabo.
- TensorFlow Lite var izmantot, lai izpildītu TensorFlow modeļus mobilajās ierīcēs.
- Tensorboard ir rīks uzraudzībai un datu vizualizēšana. Ja vēlaties redzēt savus dziļās mācīšanās modeļus darbībā, šis ir lielisks rīks lietošanai.
- Tensorflow.js ļauj izmantot JavaScript, lai pārlūkprogrammā palaistu reāllaika dziļās mācīšanās modeļus.
Trūkumi
- TensorFlow ir unikāla struktūra, kas apgrūtina kļūdu atklāšanu un atkļūdošanu.
- Nav OpenCL atbalsta.
- TensorFlow nenodrošina daudzas iespējas Windows operētājsistēmas lietotājiem. Tas atbloķē daudzas iespējas Linux lietotājiem. Tomēr Windows lietotāji joprojām var lejupielādēt TensorFlow, izmantojot anaconda uzvedni vai pip pakotni.
- TensorFlow atpaliek, piedāvājot simboliskas cilpas nenoteiktām secībām. Tam ir īpašs pielietojums noteiktām sekvencēm, padarot to par lietojamu sistēmu. Rezultātā tas tiek uzskatīts par zema līmeņa API.
2. Keras
Keras ir uz Python balstīta dziļās mācīšanās bibliotēka, kas to atšķir no citām dziļās mācīšanās sistēmām.
Tā ir augsta līmeņa programmēšanas valoda, kas definē a neironu tīklu API definīcija. To var izmantot gan kā lietotāja interfeisu, gan lai uzlabotu dziļās mācīšanās ietvaru iespējas, kurās tas darbojas.
Tas ir minimālistisks ietvars, kas ir viegls un viegli lietojams. Šo iemeslu dēļ Keras ir daļa no TensorFlow pamata API. Keras priekšgals ļauj ātri izveidot neironu tīklu modeļu prototipus pētniecībā.
API ir viegli uztverama un lietojama, un tā papildu priekšrocība ļauj viegli pārsūtīt modeļus starp ietvariem.
Priekšrocības
- Keras API ir vienkārši lietojams. API ir labi izstrādāta, uz objektu orientēta un pielāgojama, tādējādi nodrošinot patīkamāku lietotāja pieredzi.
- Ir iebūvēts atbalsts sadalītai apmācībai un vairāku GPU paralēlismam.
- Keras ir Python vietējais modulis, kas nodrošina vienkāršu piekļuvi visai Python datu zinātnes videi. Piemēram, Keras modeļus var izmantot, izmantojot Python scikit-learn API.
- Keras ietver iepriekš apmācītus svarus vairākiem dziļās mācīšanās modeļiem. Mēs varam tieši izmantot šos modeļus, lai prognozētu vai iegūtu funkcijas.
Trūkumi
- Tas var būt neticami kaitinoši, ja regulāri rodas zema līmeņa aizmugursistēmas problēmas. Šīs problēmas rodas, mēģinot veikt uzdevumus, kurus Keras nebija paredzēts veikt.
- Salīdzinot ar tās aizmugursistēmām, tas var būt gauss GPU un var aizņemt ilgāku laiku, lai to aprēķinātu. Tā rezultātā mums, iespējams, nāksies piekāpties ātrumā, lai nodrošinātu lietotājam draudzīgumu.
- Salīdzinot ar citām pakotnēm, piemēram, sci-kit-learn, Keras datu pirmapstrādes iespējas nav tik pievilcīgas.
3. Apache MX Net
Vēl viens ievērojams Dziļās mācīšanās ietvars ir MXNet. MXNet, kuru izveidoja Apache Software Foundation, atbalsta dažādas valodas, tostarp JavaScript, Python un C++.
Amazon Web Services atbalsta arī MXNet padziļinātu mācību modeļu izstrādē. Tas ir ārkārtīgi mērogojams, ļaujot ātri apmācīt modeļus, un tas ir saderīgs ar dažādām datoru valodām.
Lai optimizētu ātrumu un produktivitāti, MXNet ļauj apvienot simboliskās un obligātas programmēšanas valodas. Tā pamatā ir dinamisks atkarības plānotājs, kas reāllaikā paralēli simbolizē un obligātas darbības.
Turklāt diagrammas optimizācijas slānis padara simbolisku izpildi ātru un atmiņu ekonomisku. MXNet ir pārnēsājama un viegla bibliotēka.
To darbina NVIDIA PascalTM GPU, un tas ir mērogojams vairākos GPU un mezglos, kas ļauj ātrāk apmācīt modeļus.
Priekšrocības
- Atbalsta GPU un ir vairāku GPU režīms.
- Efektīva, mērogojama un zibens ātra.
- Uz klāja ir visas galvenās platformas.
- Modeļu apkalpošana ir vienkārša, un API ir ātra.
- Scala, R, Python, C++ un JavaScript ir vienas no atbalstītajām programmēšanas valodām.
Trūkumi
- MXNet ir mazāks atvērtā koda kopiena nekā TensorFlow.
- Uzlabojumu, kļūdu labojumu un citu uzlabojumu ieviešana prasa ilgāku laiku, jo trūkst nozīmīga kopienas atbalsta.
- Lai gan MxNet to plaši izmanto daudzi IT nozares uzņēmumi, tas nav tik labi pazīstams kā Tensorflow.
4. Microsoft CNTK
Microsoft kognitīvā rīkkopa (CNTK) ir komerciāli dzīvotspējīgs atvērtā pirmkoda ietvars izplatītai dziļai apmācībai. To parasti izmanto, lai izveidotu neironu tīkli, bet to var izmantot arī mašīnmācībai un kognitīvajai skaitļošanai.
Tas atbalsta dažādas valodas un ir vienkārši lietojams mākonī. Šo īpašību dēļ CNTK ir piemērots dažādām mākslīgā intelekta lietojumprogrammām. Lai gan mēs varam izmantot C++, lai izsauktu tās funkcijas, visizplatītākā iespēja ir izmantot Python programmu.
Darbojoties vairākos datoros, Microsoft Cognitive Toolkit ir atzīts par labāku veiktspēju un mērogojamību nekā tādiem rīkkopiem kā Theano vai TensorFlow.
Microsoft Cognitive Toolkit atbalsta gan RNN, gan CNN neironu modeļus, padarot to piemērotu attēlu, rokraksta un runas atpazīšanas uzdevumiem.
Priekšrocības
- Vienkārši integrējams ar datu analīzes dzinēju Apache Spark.
- CNTK mērogojamība ir padarījusi to par populāru izvēli daudzos uzņēmumos. Ir vairāki optimizēti komponenti.
- Nodrošina stabilu un labu veiktspēju.
- Labi darbojas ar Azure Cloud, kurus abus atbalsta Microsoft.
- Resursu izmantošana un pārvaldība ir efektīva.
Trūkumi
- Salīdzinot ar Tensorflow, ir mazāks kopienas atbalsts.
- Stāva mācīšanās līkne.
- Tam trūkst vizualizācijas paneļa, kā arī ARM atbalsta.
5. DeepLearning4j
Ja Java ir jūsu galvenā programmēšanas valoda, DeepLearning4j ir labs ietvars lietošanai. Tā ir izplatīta padziļināta bibliotēka, kas ir komerciāla un atvērtā koda.
Tiek atbalstīti visi galvenie neironu tīklu dizaina veidi, piemēram, RNN un CNN. Deeplearning4j ir Java un Scala bibliotēka dziļai apmācībai.
Tas labi darbojas arī ar Hadoop un Apache Spark. Deeplearning4j ir lieliska alternatīva uz Java balstītiem dziļās mācīšanās risinājumiem, jo tā atbalsta arī GPU.
Runājot par Eclipse Deeplearning4j dziļās mācīšanās sistēmu, dažas no izcilajām funkcijām ietver paralēlu apmācību, izmantojot iteratīvus samazinājumus, mikropakalpojumu arhitektūras pielāgošanu un izkliedētos CPU un GPU.
Priekšrocības
- Tam ir lieliska dokumentācija un kopienas palīdzība.
- Apache Spark integrācija ir vienkārša.
- Tas ir mērogojams un spēj apstrādāt milzīgus datu apjomus.
Trūkumi
- Salīdzinot ar Tensorflow un PyTorch, tas ir mazāk populārs.
- Java ir vienīgā pieejamā programmēšanas valoda.
Secinājumi
Labākās dziļās mācīšanās sistēmas izvēle ir grūts pasākums. Jo vairāk tāpēc, ka to ir tik daudz, saraksts pieaug, ņemot vērā pieprasījumu mākslīgais intelekts pieaug pētniecības un mašīnmācīšanās lietojumprogrammas. Katrai sistēmai ir savi plusi un mīnusi.
Jāņem vērā vairāki apsvērumi, tostarp drošība, mērogojamība un veiktspēja. Uzņēmuma līmeņa sistēmās uzticamība kļūst vēl svarīgāka.
Ja jūs tikko sākat darbu, Tensorflow ir laba vieta, kur sākt. Izvēlieties CNTK, ja izstrādājat Windows komerciālu produktu. Ja vēlaties Java, izmantojiet DL4J.
Atstāj atbildi