A TensorFlow a Google első számú gépi tanulási keretrendszere, és minden új verzió a képességek és funkciók széles skáláját kínálja. Miután meghaladta a tanulási görbét, kifinomult gépi tanulási alkalmazásokat írhat, és azokat nagy sebességgel végrehajthatja.
De a tanulási görbe felfelé emelkedése nem könnyű – a nagy erővel nagy bonyolultság is jár. A mászás elősegítése érdekében tisztában kell lennie a TensorFlow adattípusaival, a TensorBoard segédprogrammal és az alkalmazásoknak a Google Machine Learning Engine-ben való telepítésével.
A TensorFlow alapvető adattípusai
Számos különböző nyelven írhat TensorFlow alkalmazásokat, például Python, C++ és Java nyelven. De függetlenül attól, hogy melyik nyelvet használja, ismernie kell a TensorFlow-specifikus adattípusok sorozatát:
- Tenzorok és helyőrzők: A tenzor a Tensor osztály egy példánya, és általános célú többdimenziós tömbként szolgál. A helyőrző egyben Tensor is, de ahelyett, hogy kódban inicializálná, adatokat kap egy munkamenetből, amely a munkamenet egy végrehajtása során érvényes lesz. A helyőrzők lehetővé teszik a tenzorok tartalmának frissítését az egyik munkamenet-végrehajtásról a másikra.
- Grafikonok: A gráf egy listához vagy egy sorhoz hasonló tároló. Egyszerre csak egy gráf lehet aktív, és ha olyan műveletet kódol, amely tenzorokat vagy változókat fogad el, a tenzorok, a változók és a művelet elemként kerül tárolásra a gráfban. Amikor létrehoz egy optimalizálót, és meghívja a minimalizálási metódust, a TensorFlow eltárolja az eredményül kapott műveletet a grafikonon.
- Munkamenetek . A grafikonok műveleteket tárolnak, de önmagukban nem tudnak műveleteket végrehajtani. Ehelyett létre kell hoznia egy munkamenetet, és meg kell hívnia a futtatási metódust. Ha a futtatást tenzorral vagy művelettel hívjuk meg, a metódus végrehajtja a kívánt eredmény eléréséhez szükséges műveleteket a gráfban.
- Optimalizálók . A gépi tanulás célja egy valós rendszer matematikai modelljének finomítása, amíg az a lehető legjobban nem hasonlít a rendszerre. Ezt a finomítási folyamatot optimalizálásnak nevezik, és a kutatók számos optimalizálási módszert kidolgoztak. A TensorFlow számos ilyen algoritmust támogat, és mindegyikhez biztosít egy optimalizáló osztályt. Az osztálytól függetlenül optimalizálási műveletet kaphat az optimalizáló minimalizálási metódusának meghívásával.
- Változók . A tenzorokkal és helyőrzőkkel ellentétben a változó a Variable osztály egy példánya. Elsődleges célja, hogy az optimalizálási folyamat során frissítendő adatokat tartalmazzon. Például, ha az alkalmazás egy egyenes vonalú rendszert modellez, akkor a vonal meredekségét és y -metszetét változóként tárolja. Mielőtt azonban változókat használhatna a modell optimalizálására, speciális inicializálási műveleteket kell létrehoznia és végrehajtania.
- Becslők . Ha nem szeretne alacsony szintű adatstruktúrákkal, például munkamenetekkel és grafikonokkal foglalkozni, gépi tanulási algoritmusokat hajthat végre a TensorFlow Becslő API-jával. A becslő az Estimator osztály egy példánya, és minden becslő egy gépi tanulási algoritmust testesít meg. A becslések használatának legnagyobb előnye, hogy mindegyikben ugyanaz a három módszer van a gépi tanulási folyamat elindítására: betanítás, értékelés és előrejelzés.
A TensorBoard használata a TensorFlow-ban
A TensorFlow telepítésekor a telepítő egy TensorBoard nevű parancssori segédprogramot is biztosít. Ez olyan diagramokat hoz létre, amelyek lehetővé teszik a TensorFlow alkalmazás működésének megjelenítését. A TensorBoard megkönnyíti a hibák megtalálását a programokban, de nem könnyű használni. Az adatok generálásához és a diagramok TensorFlow-ban való megtekintéséhez hat lépést kell végrehajtania:
Összefoglaló műveletek létrehozása.
Mielőtt megtekinthetné az adatokat a TensorBoardban, speciális műveletek, úgynevezett összegző műveletek létrehozásával meg kell határoznia a megjelenítendő adatokat. Ezeket a műveleteket a tf.summary csomag függvényeinek meghívásával hozhatja létre. Például létrehozhat egy összegző műveletet egyetlen értékhez a tf.summary.scalar meghívásával. Létrehozhat egy összegző műveletet egy értéksorozathoz a tf.summary.histogram meghívásával. A műveleteket egy olyan függvény meghívásával kombinálhatja, mint a tf.summary.merge_all.
Összefoglaló műveletek végrehajtása.
Egy vagy több összefoglaló művelet létrehozása után az összefoglaló adatokat a műveletek munkamenetben történő végrehajtásával szerezheti meg. Ennek eredményeként a munkamenet egy protokollpuffert ad vissza, amely tartalmazza az alkalmazás összefoglaló adatait.
Hozzon létre egy FileWriter programot.
Mielőtt kinyomtatná az összefoglaló adatokat egy fájlba, létre kell hoznia egy FileWriter programot a tf.summary.FileWriter meghívásával. Ez a konstruktor sok argumentumot elfogad, de az egyetlen kötelező argumentum az összefoglaló adatokat tartalmazó könyvtár neve.
Nyomtassa ki az összefoglaló adatokat.
A FileWriter osztály nem rendelkezik egyszerű nyomtatási módszerrel. Ehelyett meg kell hívnia a FileWriter add_summary metódusát az összefoglaló adatok fájlba való nyomtatásához. Ez a metódus az eseményfájlt a FileWriter konstruktorban megadott könyvtárba írja. Az adatok kinyomtatása után érdemes meghívni a FileWriter bezárási metódusát a példány megsemmisítéséhez.
Indítsa el a TensorBoard programot.
A TensorFlow telepítése után a tensorboard segédprogram megjelenik a legfelső szintű szkriptek könyvtárában. A segédprogramot úgy indíthatja el, hogy végrehajtja a tensorboard parancsot, és a logdir beállítást az összesítő adatokat tartalmazó könyvtár nevére állítja. Például, ha az összefoglaló adatok a kimeneti könyvtárban vannak, akkor elindíthatja a TensorBoard-ot a tensorboard –logdir=output parancssorban történő végrehajtásával.
A TensorBoard megtekintése böngészőben.
A TensorBoard segédprogram elindítása után egy böngésző megnyitásával megtekintheti annak felületét. Az alapértelmezett URL a http://localhost:6006, de ezt a tensorboard parancs gazdagép- és portbeállításaival állíthatja be.
A TensorFlow futtatása a felhőben
A TensorFlow gépi tanuláshoz való használatának legjobb oka az, hogy alkalmazásait a felhőben futtathatja. Pontosabban, a TensorFlow programokat telepítheti a Machine Learning (ML) motorba, amelyet a Google a Google Cloud Platform (GCP) részeként tesz elérhetővé. Ez a telepítési folyamat hét lépésből áll:
Hozzon létre egy Google Cloud Platform projektet.
Amikor a GCP-vel dolgozik, egy projekt a konfigurációs beállítások és a forrásfájlok központi tárolójaként szolgál. Létrehozhat új projektet, ha felkeresi a Google Cloud platformot , rákattint a Projekt kiválasztása elemre, majd a plusz gombra a Kiválasztás párbeszédpanelen. Kiválaszthatja a projekt nevét, de a GCP beállítja a projekt azonosítóját, amely az összes GCP-projekt között egyedi.
Engedélyezze a hozzáférést az ML Engine-hez.
Minden új GCP-projekt hozzáférhet a Google számos funkciójához, beleértve a Datastore-t és a Cloud Storage-t. De alapértelmezés szerint a GCP-projektek nem tudnak alkalmazásokat telepíteni az ML Engine-be. A hozzáférés engedélyezéséhez nyissa meg a projektoldal bal felső sarkában található menüt, válassza az API-k és szolgáltatások lehetőséget, majd kattintson a Könyvtár elemre. Kattintson a Google Cloud Machine Learning Engine című hivatkozásra, majd kattintson az ENGEDÉLYEZÉS gombra.
Telepítse a Cloud Software Development Kit (SDK) csomagot.
A GCP-t parancssorból érheti el a Google Cloud SDK telepítésével . Ennek letöltéséhez kattintson az operációs rendszerének megfelelő hivatkozásra. A telepítés befejeztével elérheti az SDK-t a gcloud parancsok parancssorban történő futtatásával.
Töltsön fel képzési/előrejelzési adatokat a Cloud Storage szolgáltatásba.
Az ML Engine csak akkor férhet hozzá az edzési/előrejelzési adataihoz, ha feltölti azokat a Google Cloud Storage szolgáltatásába. A Cloud Storage szolgáltatást parancssorból használhatja a Cloud SDK által biztosított gsutil segédprogramon keresztül. A Cloud Storage adatait címtárszerű struktúrák, úgynevezett gyűjtők tartalmazzák, és amikor feltölt egy fájlt egy tárolóba, az adatszerkezetet objektumnak nevezik.
Adjon hozzá egy setup.py modult az alkalmazás csomagjához.
Ahhoz, hogy egy Python-alkalmazást elérhetővé tegyen az ML Engine számára, csomagként kell strukturálnia. Minden csomagnak rendelkeznie kell egy setup.py modullal a legfelső szintű könyvtárban. Ennek a modulnak meg kell adnia a setuptools.setup kódot, amely konfigurációs információkat biztosít az ML Engine számára.
Indítson képzési munkát az ML Engine számára.
A modell felhőben való betanításához el kell indítania egy betanítási feladatot a gcloud ml-engine jobs send képzésének futtatásával a megfelelő opciókkal. Az opciók közé tartozik a --package-path, amely azonosítja a csomag helyét, a --module-name, amely a Python modul nevét adja meg, és a –job-dir, amely megmondja az ML Engine-nek, hogy hol tárolja a kimenetet. Amikor az edzés befejeződött, az ML Engine egy SavedModelt készít, amely tartalmazza a betanított eredményeket.
Indítson el egy előrejelzési feladatot az ML Engine számára.
A SavedModel beszerzése után az ML Engine segítségével előrejelzést hajthat végre a gcloud ml-engine jobok, amelyek a megfelelő beállításokkal elküldik az előrejelzést. Az opciók közé tartozik a --input-paths, amely azonosítja a projekt bemeneti fájljainak helyét, a --data-format, amely megmondja az ML Engine-nek, hogy a bemeneti adatok hogyan vannak formázva, és az --output-path, amely azonosítja, hol kell a predikciós kimenetet. tárolni kell.