Programavimas

Kas yra „TensorFlow“? Mašininio mokymosi biblioteka paaiškino

Mašininis mokymasis yra sudėtinga disciplina. Tačiau mašininio mokymosi modelių diegimas yra daug mažiau varginantis ir sudėtingas nei anksčiau, nes mašininio mokymosi sistemos, tokios kaip „Google“ „TensorFlow“, palengvina duomenų gavimo procesą, mokymo modelius, prognozių teikimą ir būsimų rezultatų tobulinimą.

„Google Brain“ komandos sukurta „TensorFlow“ yra atviro kodo biblioteka, skirta skaitmeniniam skaičiavimui ir didelio masto mašininiam mokymuisi. „TensorFlow“ sujungia daugybę mašininio mokymosi ir gilaus mokymosi (dar žinomo kaip neuroninių tinklų) modelių ir algoritmų, todėl jie yra naudingi įprasta metafora. Jis naudoja „Python“, kad užtikrintų patogią „front-end“ API, skirtą kurti programas su sistema, tuo pačiu vykdant tas programas didelio našumo „C ++“.

„TensorFlow“ gali mokyti ir valdyti giliuosius neuroninius tinklus ranka rašytų skaitmenų klasifikavimui, vaizdų atpažinimui, žodžių įterpimams, pasikartojantiems neuronų tinklams, mašininio vertimo, natūralios kalbos apdorojimo ir PDE (dalinės diferencialinės lygties) modeliavimo modeliams. Geriausia, kad „TensorFlow“ palaiko gamybos prognozavimą masto, naudodamas tuos pačius modelius, naudojamus mokymams.

Kaip veikia „TensorFlow“

„TensorFlow“ leidžia kūrėjams kurti duomenų srauto grafikai—Struktūros, apibūdinančios, kaip duomenys juda per grafiką ar apdorojimo mazgų seriją. Kiekvienas diagramos mazgas reiškia matematinę operaciją, o kiekvienas ryšys arba briauna tarp mazgų yra daugiamačių duomenų masyvas arba tensorius.

„TensorFlow“ visa tai teikia programuotojui „Python“ kalba. „Python“ lengva išmokti ir su juo dirbti, ir jame pateikiami patogūs būdai išreikšti, kaip aukšto lygio abstrakcijos gali būti sujungtos. „TensorFlow“ mazgai ir tensoriai yra „Python“ objektai, o „TensorFlow“ programos pačios yra „Python“ programos.

Tačiau tikrosios matematikos operacijos „Python“ neatliekamos. Transformacijų bibliotekos, pasiekiamos per „TensorFlow“, yra parašytos kaip didelio našumo C ++ dvejetainiai failai. „Python“ tiesiog nukreipia srautą tarp kūrinių ir pateikia aukšto lygio programavimo abstrakcijas, kad juos sujungtų.

„TensorFlow“ programas galima paleisti daugumoje bet kokių patogių taikinių: vietinėje mašinoje, „debesies“ grupėje, „iOS“ ir „Android“ įrenginiuose, procesoriuose ar GPU. Jei naudojate savo „Google“ debesį, „TensorFlow“ galite paleisti „Google“ pritaikytame „TensorFlow Processing Unit“ (TPU) silicyje, kad pagreitintumėte. Vis dėlto gautus „TensorFlow“ sukurtus modelius galima pritaikyti daugumoje bet kokių įrenginių, kur jie bus naudojami prognozėms teikti.

„TensorFlow 2.0“, išleistas 2019 m. Spalio mėn., Daugeliu atžvilgių atnaujino sistemą, remdamasis vartotojų atsiliepimais, kad būtų lengviau dirbti (pvz., Naudojant gana paprastą „Keras“ API modelių mokymui) ir efektyvesnę. Paskirstytą mokymą lengviau vykdyti dėl naujos API, o palaikymas „TensorFlow Lite“ leidžia diegti modelius įvairesnėse platformose. Tačiau, norint maksimaliai išnaudoti naujų „TensorFlow 2.0“ funkcijų pranašumus, ankstesnėms „TensorFlow“ versijoms parašytą kodą reikia perrašyti - kartais tik šiek tiek, kartais - gerokai.

„TensorFlow“ nauda

Vienintelė didžiausia nauda, ​​kurią „TensorFlow“ teikia mašininio mokymosi plėtrai abstrakcija. Užuot nagrinėjęs smulkmeniškas algoritmų įgyvendinimo detales ar sugalvojęs tinkamus būdus, kaip vienos funkcijos išvestį prikabinti prie kitos įvesties, kūrėjas gali sutelkti dėmesį į bendrą programos logiką. „TensorFlow“ rūpinasi detalėmis užkulisiuose.

„TensorFlow“ siūlo papildomų patogumų kūrėjams, kuriems reikia derinti ir sužinoti apie „TensorFlow“ programas. Nekantrus vykdymo režimas leidžia įvertinti ir modifikuoti kiekvieną grafiko operaciją atskirai ir skaidriai, užuot sukūrus visą grafiką kaip vieną nepermatomą objektą ir vertinant jį iš karto. „TensorBoard“ vizualizavimo rinkinys leidžia jums patikrinti ir apibūdinti grafikų rodymo būdus interaktyvioje, žiniatinklio informacijos suvestinėje.

„TensorFlow“ taip pat įgyja daug pranašumų, jei „Google“ palaiko A sąrašo komercinę aprangą. „Google“ ne tik paskatino spartų projekto vystymąsi, bet ir sukūrė daug reikšmingų „TensorFlow“ pasiūlymų, kurie palengvina diegimą ir naudojimą: aukščiau minėtas TPU silicis, skirtas spartesniam „Google“ debesies veikimui; internetinis centras, skirtas dalytis modeliais, sukurtais naudojant sistemą; naršyklės ir mobiliesiems pritaikytos sistemos inkarnacijos; ir daug daugiau.

Vienas įspėjimas: Dėl kai kurių „TensorFlow“ įgyvendinimo detalių sunku gauti visiškai deterministinius modelio mokymo rezultatus kai kuriems mokymo darbams. Kartais vienoje sistemoje apmokytas modelis šiek tiek skirsis nuo kitos, net jei jie tiekiami tais pačiais duomenimis. To priežastys yra slidžios - pvz., Kaip atsitiktiniai skaičiai sėjami ir kur, arba tam tikras nedeterministinis elgesys naudojant GPU). Tai reiškia, kad galima išspręsti šias problemas, o „TensorFlow“ komanda svarsto daugiau kontrolės priemonių, kad paveiktų determinizmą darbo eigoje.

Susijęs vaizdo įrašas: mašininis mokymasis ir AI iššifruotas

Pralaužę ažiotažą dėl mašininio mokymosi ir dirbtinio intelekto, mūsų grupė aptaria technologijos apibrėžimus ir pasekmes.

„TensorFlow“ prieš konkurentus

„TensorFlow“ konkuruoja su daugybe kitų mašininio mokymosi sistemų. „PyTorch“, CNTK ir „MXNet“ yra trys pagrindinės sistemos, kurios tenkina daugelį tų pačių poreikių. Žemiau aš pastebėjau, kur jie išsiskiria ir sutampa su „TensorFlow“.

  • „PyTorch“, be to, kad sukurtas naudojant „Python“, ir turi daug kitų panašumų su „TensorFlow“: aparatinės įrangos pagalba pagreitinti komponentai po gaubtu, labai interaktyvus kūrimo modelis, leidžiantis dirbti einant dizainu, ir daug naudingų komponentų, kurie jau įtraukti. „PyTorch“ paprastai yra geresnis pasirinkimas greitai plėtojant projektus, kurie turi būti pradėti ir veikti per trumpą laiką, tačiau „TensorFlow“ laimi didesniems projektams ir sudėtingesnėms darbo eigoms.

  • CNTK, „Microsoft Cognitive Toolkit“, kaip ir „TensorFlow“, naudoja grafiko struktūrą duomenų srautui apibūdinti, tačiau daugiausia dėmesio skiria giluminio mokymosi neuroninių tinklų kūrimui. CNTK greičiau tvarko daugelį neuroninio tinklo darbų ir turi platesnį API rinkinį („Python“, C ++, C #, „Java“). Tačiau CNTK šiuo metu nėra taip lengva išmokti ar įdiegti kaip „TensorFlow“.

  • „Apache MXNet“, kurį „Amazon“ priėmė kaip pagrindinę giluminio mokymosi sistemą AWS, gali skleisti beveik linijiškai kelis GPU ir kelias mašinas. Jis taip pat palaiko platų kalbų API spektrą - „Python“, „C ++“, „Scala“, „R“, „JavaScript“, „Julia“, „Perl“, „Go“, nors jo vietinės API nėra tokios malonios dirbti kaip „TensorFlow“.