„TensorFlow“ yra pagrindinė „Google“ mašininio mokymosi sistema, o kiekviena nauja versija suteikia daugybę galimybių ir funkcijų. Kai pasieksite mokymosi kreivę, galite rašyti sudėtingas mašininio mokymosi programas ir jas vykdyti dideliu greičiu.
Tačiau kilti aukštyn mokymosi kreive nėra lengva – su didele galia atsiranda didžiulis sudėtingumas. Kad padėtų jums kilti, turite žinoti „TensorFlow“ duomenų tipus, „TensorBoard“ įrankį ir programų diegimą „Google“ mašininio mokymosi variklyje.
Pagrindiniai TensorFlow duomenų tipai
Galite rašyti TensorFlow programas įvairiomis kalbomis, tokiomis kaip Python, C++ ir Java. Bet nesvarbu, kurią kalbą naudojate, turite būti susipažinę su tam tikrais TensorFlow duomenų tipais:
- Tenzoriai ir vietos žymekliai: tenzorius yra Tensor klasės egzempliorius ir naudojamas kaip bendrosios paskirties daugiamatis masyvas. Vietos rezervavimo ženklas taip pat yra tensoris, tačiau užuot inicijuotas kode, jis gauna duomenis iš seanso, kuris galios vieno seanso vykdymo metu. Vietos žymos suteikia galimybę atnaujinti tenzoriaus turinį nuo vienos sesijos vykdymo iki kitos.
- Grafikai: grafikas yra konteineris, panašus į sąrašą arba seką. Vienu metu gali būti aktyvus tik vienas grafikas, o kai užkoduojate operaciją, kuri priima tenzorius arba kintamuosius, tenzoriai, kintamieji ir operacija išsaugomi kaip grafiko elementai. Kai sukuriate optimizavimo priemonę ir iškviečiate jos sumažinimo metodą, „TensorFlow“ išsaugo gautą operaciją diagramoje.
- Seansai . Grafikai saugo operacijas, bet negali atlikti operacijų patys. Vietoj to turite sukurti sesiją ir iškviesti jos vykdymo metodą. Jei iškviečiate paleisti su tenzoriumi arba operacija, metodas grafike atliks operacijas, reikalingas norimam rezultatui gauti.
- Optimizatoriai . Mašininio mokymosi tikslas yra patobulinti realaus pasaulio sistemos matematinį modelį, kol jis kuo panašesnis į sistemą. Šis tobulinimo procesas vadinamas optimizavimu, o mokslininkai sukūrė daugybę optimizavimo metodų. TensorFlow palaiko daugelį šių algoritmų ir kiekvienam suteikia optimizavimo klasę. Nepriklausomai nuo klasės, optimizavimo operaciją galite gauti iškvietę optimizatoriaus sumažinimo metodą.
- Kintamieji . Skirtingai nuo tenzorių ir vietos žymenų, kintamasis yra klasės Kintamasis pavyzdys. Pagrindinis jo tikslas yra turėti duomenis, kurie turi būti atnaujinami optimizavimo proceso metu. Pavyzdžiui, jei jūsų programa modeliuoja sistemą su tiesia linija, linijos nuolydį ir y - pertrauką išsaugosite kaip kintamuosius. Tačiau prieš naudodami kintamuosius modeliui optimizuoti, turite sukurti ir atlikti specialias inicijavimo operacijas.
- Sąmatai . Jei nenorite dirbti su žemo lygio duomenų struktūromis, tokiomis kaip seansai ir grafikai, galite vykdyti mašininio mokymosi algoritmus naudodami „TensorFlow“ įvertinimo API. Įvertis yra „Estimator“ klasės pavyzdys, o kiekvienas vertintojas įkūnija mašininio mokymosi algoritmą. Pagrindinis įverčių naudojimo pranašumas yra tas, kad jie visi turi tuos pačius tris mašininio mokymosi proceso pradžios metodus: mokyti, įvertinti ir numatyti.
Kaip naudoti „TensorBoard“ programoje „TensorFlow“.
Kai įdiegiate „TensorFlow“, diegimo programa taip pat pateikia komandų eilutės programą, pavadintą „TensorBoard“. Taip sukuriami brėžiniai, leidžiantys vizualizuoti „TensorFlow“ programos veikimą. „TensorBoard“ leidžia lengvai rasti klaidų jūsų programose, tačiau ja naudotis nėra lengva. Norėdami generuoti duomenis ir peržiūrėti diagramas TensorFlow, turite atlikti šešis veiksmus:
Sukurti suvestinės operacijas.
Kad galėtumėte peržiūrėti duomenis TensorBoard, turite nustatyti duomenis, kurie turi būti rodomi, sukurdami specialias operacijas, vadinamas suvestinės operacijomis. Šias operacijas galite sukurti iškvietę tf.summary paketo funkcijas. Pavyzdžiui, galite sukurti vienos reikšmės suvestinės operaciją iškviesdami tf.summary.scalar. Galite sukurti reikšmių serijos suvestinės operaciją iškviesdami tf.summary.histogram. Galite sujungti operacijas iškviesdami tokią funkciją kaip tf.summary.merge_all.
Atlikite apibendrinančias operacijas.
Sukūrę vieną ar kelias suvestinės operacijas, galite gauti suvestinės duomenis vykdydami operacijas seanso metu. Dėl to seansas grąžins protokolo buferį, kuriame yra programos suvestinės duomenys.
Sukurkite „FileWriter“.
Kad galėtumėte spausdinti suvestinės duomenis į failą, turite sukurti FileWriter skambinant tf.summary.FileWriter. Šis konstruktorius priima daug argumentų, tačiau vienintelis reikalingas argumentas yra katalogo, kuriame yra suvestinės duomenų, pavadinimas.
Spausdinkite suvestinės duomenis.
„FileWriter“ klasėje nėra paprasto spausdinimo metodo. Vietoj to, norėdami atspausdinti suvestinės duomenis į failą, turite iškviesti FileWriter metodą add_summary. Šis metodas įrašo įvykio failą į katalogą, nurodytą FileWriter konstruktoriuje. Išspausdinus duomenis, verta iškviesti „FileWriter“ uždarymo metodą, kad būtų sunaikintas egzempliorius.
Paleiskite TensorBoard.
Įdiegę TensorFlow, tensorboard įrankis pasirodo aukščiausio lygio scenarijų kataloge. Įrankį galite paleisti vykdydami komandą tensorboard ir nustatydami logdir parinktį į katalogo, kuriame yra suvestinės duomenų, pavadinimą. Pavyzdžiui, jei suvestinės duomenys yra išvesties kataloge, galite paleisti TensorBoard komandinėje eilutėje vykdydami tensorboard –logdir=output.
Peržiūrėkite „TensorBoard“ naršyklėje.
Paleidę „TensorBoard“ programą, galite peržiūrėti jos sąsają atidarę naršyklę. Numatytasis URL yra http://localhost:6006, tačiau galite tai sukonfigūruoti nustatydami pagrindinio kompiuterio ir prievado parinktis tensorboard komandoje.
Kaip paleisti „TensorFlow“ debesyje
Geriausia priežastis naudoti TensorFlow mašininiam mokymuisi yra ta, kad programas galite paleisti debesyje. Tiksliau, galite įdiegti TensorFlow programas mašininio mokymosi (ML) variklyje, kurį „Google“ pateikia kaip „Google Cloud Platform“ (GCP) dalį. Šis diegimo procesas susideda iš septynių etapų:
Sukurkite „Google Cloud Platform“ projektą.
Kai dirbate su GCP, projektas yra centrinis konfigūracijos nustatymų ir šaltinio failų konteineris. Galite sukurti naują projektą apsilankę „Google Cloud“ platformoje , spustelėję Pasirinkti projektą ir dialogo lange Pasirinkti spustelėję pliuso mygtuką. Galite pasirinkti projekto pavadinimą, tačiau GSP nustato projekto ID, kuris yra unikalus tarp visų GSP projektų.
Įgalinkite prieigą prie ML variklio.
Kiekvienas naujas GSP projektas gali pasiekti daugybę „Google“ galimybių, įskaitant duomenų saugyklą ir saugyklą debesyje. Tačiau pagal numatytuosius nustatymus GCP projektai negali įdiegti programų į ML modulį. Norėdami įgalinti prieigą, atidarykite meniu viršutiniame kairiajame projekto puslapio kampe, pasirinkite API ir paslaugos, tada spustelėkite Biblioteka. Spustelėkite nuorodą, pavadintą „Google Cloud Machine Learning Engine“, tada spustelėkite mygtuką ĮJUNGTI.
Įdiekite „Cloud Software Development Kit“ (SDK).
GCP galite pasiekti naudodami komandinę eilutę, įdiegę „ Google“ debesies SDK . Norėdami tai atsisiųsti, spustelėkite atitinkamą savo operacinei sistemai skirtą nuorodą. Kai diegimas bus baigtas, galėsite pasiekti SDK komandų eilutėje vykdydami gcloud komandas.
Įkelkite mokymo / numatymo duomenis į „Cloud Storage“.
ML Engine gali pasiekti jūsų treniruočių / prognozių duomenis tik tada, kai įkeliate juos į „Google“ debesies saugyklą. Galite sąveikauti su „Cloud Storage“ naudodami komandų eilutę naudodami „Cloud SDK“ teikiamą įrankį gsutil. „Cloud Storage“ duomenys yra į katalogą panašiose struktūrose, vadinamose segmentais, o kai įkeliate failą į kibirą, duomenų struktūra vadinama objektu.
Į programos paketą pridėkite modulį setup.py.
Kad „Python“ programa būtų prieinama ML varikliui, turite ją struktūrizuoti kaip paketą. Kiekvieno paketo aukščiausio lygio kataloge turi būti modulis setup.py. Šiame modulyje reikia pateikti setuptools.setup kodą, kuris teikia konfigūracijos informaciją ML moduliui.
Pradėkite ML Engine mokymo darbą.
Norėdami apmokyti savo modelį debesyje, turite pradėti mokymo užduotį paleisdami gcloud ml variklio užduotis, pateikite mokymus su atitinkamomis parinktimis. Parinktys apima --package-path, kuri identifikuoja paketo vietą, --module-name, kuris pateikia Python modulio pavadinimą, ir –job-dir, kuris nurodo ML Engine, kur saugoti išvestį. Kai treniruotė bus baigta, ML variklis sukurs Išsaugotą modelį su treniruotais rezultatais.
Paleiskite ML variklio numatymo užduotį.
Įsigiję „SavedModel“, galite naudoti ML modulį, kad atliktumėte numatymą, vykdydami „gcloud ml“ variklio užduotis ir pateikti prognozę su atitinkamomis parinktimis. Parinktys apima --input-paths, kuri identifikuoja projekto įvesties failų vietą, --data-format, kuris nurodo ML varikliui, kaip formatuojami įvesties duomenys, ir --output-path, kuris identifikuoja, kur turėtų būti numatymo išvestis. būti saugomi.