TensorFlow je špičkový rámec spoločnosti Google pre strojové učenie a každá nová verzia prináša širokú škálu možností a funkcií. Po dosiahnutí krivky učenia môžete písať sofistikované aplikácie strojového učenia a spúšťať ich vysokou rýchlosťou.
Nie je však ľahké dostať sa na vyššiu úroveň – s veľkou silou prichádza veľká zložitosť. Aby ste vám pomohli pri stúpaní, musíte poznať typy údajov TensorFlow, pomôcku TensorBoard a nasadenie aplikácií do stroja strojového učenia Google.
Základné typy údajov v TensorFlow
Aplikácie TensorFlow môžete písať v mnohých rôznych jazykoch, ako sú Python, C++ a Java. Ale bez ohľadu na to, ktorý jazyk používate, musíte byť oboznámení so sériou dátových typov špecifických pre TensorFlow:
- Tenzory a zástupné symboly: Tenzor je inštanciou triedy Tensor a slúži ako viacrozmerné pole na všeobecné účely. Zástupný symbol je tiež Tensor, ale namiesto toho, aby bol inicializovaný v kóde, prijíma údaje z relácie, ktoré budú platné počas jedného vykonania relácie. Zástupné symboly umožňujú aktualizovať obsah tenzora z jednej relácie na druhú.
- Grafy: Graf je kontajner podobný zoznamu alebo n-tici. Naraz môže byť aktívny iba jeden graf a keď kódujete operáciu, ktorá akceptuje tenzory alebo premenné, tenzory, premenné a operácia sa uložia ako prvky v grafe. Keď vytvoríte optimalizátor a zavoláte jeho metódu minimalizácie, TensorFlow uloží výslednú operáciu do grafu.
- Relácie . Grafy ukladajú operácie, ale nemôžu vykonávať operácie sami. Namiesto toho musíte vytvoriť reláciu a zavolať jej metódu spustenia. Ak zavoláte run s tenzorom alebo operáciou, metóda vykoná operácie v grafe potrebné na získanie požadovaného výsledku.
- Optimalizátory . Cieľom strojového učenia je zdokonaľovať matematický model reálneho systému tak, aby sa čo najviac podobal systému. Tento proces zdokonaľovania sa nazýva optimalizácia a výskumníci navrhli mnoho optimalizačných metód. TensorFlow podporuje mnohé z týchto algoritmov a pre každý z nich poskytuje triedu optimalizátorov. Bez ohľadu na triedu môžete získať operáciu optimalizácie volaním metódy minimalizácie optimalizátora.
- Premenné . Na rozdiel od tenzorov a zástupných symbolov je premenná inštanciou triedy Variable. Jeho primárnym účelom je obsahovať údaje, ktoré sa majú aktualizovať počas procesu optimalizácie. Napríklad, ak vaša aplikácia modeluje systém s priamou čiarou, uložíte sklon čiary a priesečník y ako premenné. Ale skôr, ako budete môcť použiť premenné na optimalizáciu modelu, musíte vytvoriť a vykonať špeciálne inicializačné operácie.
- Odhady . Ak sa radšej nechcete zaoberať nízkoúrovňovými dátovými štruktúrami, ako sú relácie a grafy, môžete spustiť algoritmy strojového učenia pomocou TensorFlow Estimator API. Odhad je inštanciou triedy Estimator a každý odhad stelesňuje algoritmus strojového učenia. Hlavnou výhodou používania odhadcov je, že všetky majú rovnaké tri metódy na spustenie procesu strojového učenia: trénovať, vyhodnocovať a predpovedať.
Ako používať TensorBoard v TensorFlow
Keď nainštalujete TensorFlow, inštalačný program tiež poskytuje nástroj príkazového riadka s názvom TensorBoard. Takto sa vygenerujú grafy, ktoré vám umožnia vizualizovať fungovanie vašej aplikácie TensorFlow. TensorBoard uľahčuje vyhľadávanie chýb vo vašich programoch, ale nie je ľahké ho používať. Ak chcete vygenerovať údaje a zobraziť grafy v TensorFlow, musíte vykonať šesť krokov:
Vytvorte súhrnné operácie.
Pred zobrazením údajov v TensorBoard je potrebné identifikovať údaje, ktoré sa majú zobraziť, vytvorením špeciálnych operácií nazývaných súhrnné operácie. Tieto operácie môžete vytvoriť volaním funkcií balíka tf.summary. Môžete napríklad vytvoriť súhrnnú operáciu pre jednu hodnotu volaním tf.summary.scalar. Môžete vytvoriť súhrnnú operáciu pre sériu hodnôt volaním tf.summary.histogram. Operácie môžete kombinovať volaním funkcie ako tf.summary.merge_all.
Vykonajte súhrnné operácie.
Po vytvorení jednej alebo viacerých súhrnných operácií môžete získať súhrnné údaje vykonaním operácií v relácii. Výsledkom je, že relácia vráti vyrovnávaciu pamäť protokolu obsahujúcu súhrnné údaje aplikácie.
Vytvorte FileWriter.
Predtým, ako budete môcť vytlačiť súhrnné údaje do súboru, musíte vytvoriť FileWriter volaním tf.summary.FileWriter. Tento konštruktor akceptuje veľa argumentov, ale jediným požadovaným argumentom je názov adresára, ktorý má obsahovať súhrnné údaje.
Vytlačte súhrnné údaje.
Trieda FileWriter nemá jednoduchú metódu tlače. Namiesto toho musíte zavolať metódu add_summary FileWriter na tlač súhrnných údajov do súboru. Táto metóda zapíše súbor udalosti do adresára zadaného v konštruktore FileWriter. Po vytlačení údajov je vhodné zavolať metódu Close FileWriter na zničenie inštancie.
Spustite TensorBoard.
Po nainštalovaní TensorFlow sa nástroj tensorboard zobrazí v adresári skriptov najvyššej úrovne. Pomôcku môžete spustiť vykonaním príkazu tensorboard a nastavením voľby logdir na názov adresára obsahujúceho súhrnné údaje. Napríklad, ak sú súhrnné údaje vo výstupnom adresári, môžete spustiť TensorBoard spustením tensorboard –logdir=output na príkazovom riadku.
Zobrazte TensorBoard v prehliadači.
Po spustení pomôcky TensorBoard môžete zobraziť jej rozhranie otvorením prehliadača. Predvolená adresa URL je http://localhost:6006, ale môžete ju nakonfigurovať nastavením možností hostiteľa a portu v príkaze tensorboard.
Ako spustiť TensorFlow v cloude
Najlepším dôvodom na používanie TensorFlow na strojové učenie je, že svoje aplikácie môžete spúšťať v cloude. Konkrétnejšie, programy TensorFlow môžete nasadiť do nástroja Machine Learning (ML), ktorý Google sprístupňuje ako súčasť Google Cloud Platform (GCP). Tento proces nasadenia pozostáva zo siedmich krokov:
Vytvorte projekt Google Cloud Platform.
Keď pracujete s GCP, projekt slúži ako centrálny kontajner konfiguračných nastavení a zdrojových súborov. Nový projekt môžete vytvoriť tak, že navštívite platformu Google Cloud , kliknete na Vybrať projekt a kliknete na tlačidlo plus v dialógovom okne Výber. Môžete si vybrať názov svojho projektu, ale GCP nastavuje ID projektu, ktoré je jedinečné medzi všetkými projektmi GCP.
Povoliť prístup k ML Engine.
Každý nový projekt GCP má prístup k množstvu funkcií spoločnosti Google vrátane úložiska údajov a cloudového úložiska. V predvolenom nastavení však projekty GCP nemôžu nasadzovať aplikácie do nástroja ML. Ak chcete povoliť prístup, otvorte ponuku v ľavej hornej časti stránky projektu, vyberte položku API a služby a potom kliknite na položku Knižnica. Kliknite na odkaz s názvom Google Cloud Machine Learning Engine a potom kliknite na tlačidlo POVOLIŤ.
Nainštalujte súpravu Cloud Software Development Kit (SDK).
K GCP môžete pristupovať z príkazového riadka inštaláciou súpravy Google Cloud SDK . Ak si ho chcete stiahnuť, kliknite na príslušný odkaz pre váš operačný systém. Po dokončení inštalácie budete mať prístup k súprave SDK spustením príkazov gcloud na príkazovom riadku.
Nahrajte údaje o tréningu/predpovedi do cloudového úložiska.
Nástroj ML Engine má prístup k údajom o tréningu/predpovedi, iba ak ich nahráte do cloudového úložiska Google. S cloudovým úložiskom môžete komunikovať z príkazového riadka pomocou pomôcky gsutil poskytovanej súpravou Cloud SDK. Údaje cloudového úložiska sú obsiahnuté v adresárových štruktúrach nazývaných buckety, a keď nahráte súbor do bucketu, dátová štruktúra sa nazýva objekt.
Pridajte modul setup.py do balíka vašej aplikácie.
Aby bola aplikácia Python prístupná pre ML Engine, musíte ju štruktúrovať ako balík. Každý balík musí mať modul setup.py v adresári najvyššej úrovne. Tento modul musí poskytnúť kód pre setuptools.setup, ktorý poskytuje konfiguračné informácie pre ML Engine.
Spustite tréningovú úlohu pre ML Engine.
Ak chcete trénovať svoj model v cloude, musíte spustiť tréningovú úlohu spustením úloh gcloud ml-engine odoslaním školenia s príslušnými možnosťami. Možnosti zahŕňajú --package-path, ktorá identifikuje umiestnenie balíka, --module-name, ktorá poskytuje názov modulu Python, a –job-dir, ktorá hovorí ML Engine, kam má uložiť výstup. Po dokončení tréningu ML Engine vytvorí SavedModel obsahujúci natrénované výsledky.
Spustite predikčnú úlohu pre ML Engine.
Po získaní SavedModel môžete použiť ML Engine na predpovedanie spustením úloh gcloud ml-engine odoslania predpovede s príslušnými možnosťami. Možnosti zahŕňajú --input-paths, ktorá identifikuje umiestnenie vstupných súborov projektu, --data-format, ktorá informuje ML Engine, ako sú formátované vstupné údaje, a --output-path, ktorá identifikuje, kde by mal výstup predikcie. byť uložené.