Kezdjük ezt az oktatóanyagot a TensorFlow bevezetésével:
Mi az a TensorFlow?
A TensorFlow egy nyílt forráskódú, end-to-end platform a Machine Learning alkalmazások létrehozására. Ez egy szimbolikus matematikai könyvtár, amely adatáramlást és differenciálható programozást használ a mély neurális hálózatok képzésére és következtetésére összpontosító különféle feladatok végrehajtására. Ez lehetővé teszi a fejlesztők számára, hogy gépi tanulási alkalmazásokat hozzanak létre különféle eszközök, könyvtárak és közösségi erőforrások felhasználásával.
Jelenleg a világ leghíresebb mélytanuló könyvtára a Google TensorFlow. A Google-termék minden termékében a gépi tanulást használja a keresőmotor, a fordítás, a képaláírások vagy az ajánlások fejlesztésére.
Konkrét példaként: a Google felhasználói gyorsabb és finomabb keresést tapasztalhatnak az AI segítségével. Ha a felhasználó beír egy kulcsszót a keresősávba, a Google javaslatot ad arra, hogy mi lehet a következő szó.
A Google a gépi tanulás segítségével szeretné kihasználni hatalmas adatkészleteik előnyeit, hogy a felhasználók a lehető legjobb élményt nyújtsák. Három különböző csoport használja a gépi tanulást:
- Kutatók
- Adattudósok
- Programozók.
Mindannyian ugyanazt az eszközkészletet használhatják egymás közötti együttműködésre és hatékonyságuk javítására.
A Google nem csak adattal rendelkezik; nekik van a világ legnagyobb tömegű számítógépe, ezért a Tensor Flow méretarányosan épült. A TensorFlow egy olyan könyvtár, amelyet a Google Brain Team fejlesztett ki a gépi tanulás és a mély neurális hálózat kutatásának felgyorsítása érdekében.
Úgy építették, hogy több CPU-n vagy GPU-n, sőt mobil operációs rendszeren is fusson, és több burkolóval rendelkezik több nyelven, például Python, C ++ vagy Java.
Ebben a TensorFlow oktatóanyagban megtanulja
- Mi az a TensorFlow?
- A TensorFlow története
- Hogyan működik a TensorFlow
- TensorFlow építészet
- Hol futhat a Tensorflow?
- Bevezetés a TensorFlow összetevőihez
- Miért népszerű a TensorFlow?
- A TensorFlow által támogatott kiemelkedő algoritmusok listája
- Egyszerű TensorFlow példa
- Adatok TensorFlow-ba történő betöltésének lehetőségei
- Hozzon létre Tensorflow csővezetéket
A TensorFlow története
Pár évvel ezelőtt a mély tanulás hatalmas mennyiségű adat megadásakor kezdte felülmúlni az összes többi gépi tanulási algoritmust. A Google úgy látta, hogy ezeket a mély neurális hálózatokat felhasználhatja szolgáltatásainak fejlesztésére:
- Gmail
- Fénykép
- Google keresőmotor
Tensorflow nevű keretrendszert építenek fel, hogy a kutatók és a fejlesztők együtt dolgozhassanak egy AI modellen. A fejlesztés és méretezés után sok ember számára lehetővé teszi a használatát.
Először 2015 végén hozták nyilvánosságra, míg az első stabil verzió 2017-ben jelent meg. Apache Open Source licenc alatt nyílt forráskódú. Használhatja, módosíthatja és terjesztheti a módosított verziót térítés ellenében anélkül, hogy bármit fizetne a Google-nak.
A TensorFlow mély tanulási oktatóanyagában ezután megismerhetjük a TensorFlow architektúráját és a TensorFlow működését.
Hogyan működik a TensorFlow
A TensorFlow lehetővé teszi adatfolyam-grafikonok és -struktúrák létrehozását annak meghatározásához, hogy az adatok hogyan mozognak a grafikonon, azáltal, hogy a bemeneteket Tensor nevű többdimenziós tömbként veszi fel. Lehetővé teszi az ezeken a bemeneteken végrehajtható műveletek folyamatábrájának elkészítését, amely az egyik végén megy, a másik végén pedig kimenetként érkezik.
TensorFlow építészet
A Tensorflow architektúra három részben működik:
- Az adatok előfeldolgozása
- Építsd meg a modellt
- Vonat és becsülje meg a modellt
Tensorflow-nak hívják, mert az inputot többdimenziós tömbként veszi fel, más néven tenzorokként . Készíthet egyfajta folyamatábrát (grafikonnak nevezzük), amelyet az adott bemeneten végre kíván hajtani. A bemenet az egyik végén bemegy, majd átáramlik ezen a több műveletet tartalmazó rendszeren, a másik végén pedig kimenetként jön ki.
Ezért hívják TensorFlow-nak, mert a tenzor bemegy benne a műveletek listáján keresztül áramlik, majd a másik oldalon jön ki.
Hol futhat a Tensorflow?
A TensorFlow hardver- és szoftverkövetelményei a következőkbe sorolhatók
Fejlesztési szakasz: Ekkor edzi a módot. A képzést általában az Asztalon vagy a laptopon végzik.
Futtatási fázis vagy következtetési fázis: A képzés befejezése után a Tensorflow számos különböző platformon futtatható. Futtathatja
- Asztali számítógép, amelyen Windows, macOS vagy Linux fut
- Felhő, mint webes szolgáltatás
- Mobil eszközök, például iOS és Android
Több gépen is kiképezheti, majd egy másik gépen is futtathatja, ha megvan a betanított modell.
A modell betanítható és használható GPU-kra, valamint CPU-kra. A GPU-kat kezdetben videojátékokhoz tervezték. 2010 végén Stanford kutatói azt találták, hogy a GPU nagyon jó a mátrix műveletekben és az algebrában is, így ez nagyon gyorsá teszi őket az ilyen típusú számítások elvégzésében. A mély tanulás sok mátrix szorzásra támaszkodik. A TensorFlow nagyon gyorsan kiszámítja a mátrix szorzását, mert C ++ nyelven van megírva. Noha C ++ nyelven valósul meg, a TensorFlow-t főleg más nyelvek, a Python érheti el és vezérelheti.
Végül a TensorFlow egyik jelentős tulajdonsága a TensorBoard. A TensorBoard lehetővé teszi a TensorFlow grafikus és vizuális monitorozását.
Bevezetés a TensorFlow összetevőihez
Tenzor
Tensorflow nevét közvetlenül származó alapvető keretét: Tenzor . A Tensorflow-ban az összes számítás tenzorokat tartalmaz. A tenzor egy n dimenziójú vektor vagy mátrix , amely minden típusú adatot képvisel. A tenzor összes értéke azonos (vagy részben ismert) alakú adattípust tartalmaz . Az adatok alakja a mátrix vagy tömb dimenziósága.
A tenzor származhat a bemeneti adatokból vagy a számítás eredményéből. A TensorFlow alkalmazásban az összes műveletet egy grafikonon belül hajtják végre . A grafikon egy sor számítás, amely egymást követõen történik. Mindegyik műveletet op csomópontnak hívják, és összekapcsolódnak egymással.
A grafikon felvázolja a csomópontok közötti opciókat és kapcsolatokat. Az értékeket azonban nem jeleníti meg. A csomópontok széle a tenzor, vagyis a művelet adatokkal való feltöltésének módja.
Grafikonok
A TensorFlow egy gráfkeretet használ. A grafikon összegyűjti és leírja az edzés során elvégzett összes sorozatszámítást. A grafikonnak számos előnye van:
- Több CPU vagy GPU, sőt mobil operációs rendszer futtatására készült
- A grafikon hordozhatósága lehetővé teszi a számítások megőrzését azonnali vagy későbbi felhasználás céljából. A grafikon menthető, hogy a jövőben végrehajtható legyen.
- A grafikon összes számítását tenzorok összekapcsolásával végezzük
- A tenzornak van csomópontja és éle. A csomópont végzi a matematikai műveletet és végpont kimeneteket állít elő. Az élek az élek magyarázzák a csomópontok közötti bemeneti / kimeneti kapcsolatokat.
Miért népszerű a TensorFlow?
A TensorFlow a legjobb könyvtár, mivel mindenki számára hozzáférhető. A Tensorflow könyvtár különféle API-kat tartalmaz, mint a nagyméretű mély tanulási architektúra, például a CNN vagy az RNN. A TensorFlow a gráf kiszámításán alapul; lehetővé teszi a fejlesztő számára, hogy a Tensorboad segítségével vizualizálja az ideghálózat felépítését. Ez az eszköz hasznos a program hibakeresésében. Végül a Tensorflow úgy van megépítve, hogy széleskörűen telepíthető legyen. CPU-n és GPU-n fut.
A Tensorflow vonzza a legnagyobb népszerűséget a GitHub-on, összehasonlítva a többi mély tanulási kerettel.
A TensorFlow által támogatott kiemelkedő algoritmusok listája
Az alábbiakban a támogatott TensorFlow algoritmusok listája található:
Jelenleg a TensorFlow 1.10 beépített API-val rendelkezik:
- Lineáris regresszió: tf.estimator.LinearRegressor
- Osztályozás: tf.estimator.LinearClassifier
- Mély tanulási osztályozás: tf.estimator.DNNClassifier
- Mély tanulási törlés és mélység: tf.estimator.DNNLinearCombinedClassifier
- Booster fa regresszió: tf.estimator.BoostedTreesRegressor
- Fokozott faosztályozás: tf.estimator.BoostedTreesClassifier
Egyszerű TensorFlow példa
import numpy as npimport tensorflow as tf
Az első két kódsorban tensorflow-t importáltunk tf-ként. A Python esetében elterjedt gyakorlat a könyvtár rövid nevének használata. Előnye, hogy elkerüljük a könyvtár teljes nevének beírását, amikor használnunk kell. Például importálhatjuk a tensorflow-t tf-ként, és meghívhatjuk a tf-t, ha tensorflow függvényt akarunk használni
Gyakoroljuk a Tensorflow elemi munkafolyamatát egyszerű TensorFlow példákkal. Hozzunk létre egy számítási grafikont, amely két számot szoroz össze.
A példa során X_1 és X_2 összeszorozzuk. A Tensorflow létrehoz egy csomópontot a művelet összekapcsolására. Példánkban szorzásnak nevezzük. A grafikon meghatározása után a Tensorflow számítási motorok X_1 és X_2 összeszorozódnak.
TensorFlow példa
Végül egy TensorFlow munkamenetet futtatunk, amely lefuttatja a számítási grafikont X_1 és X_2 értékekkel, és kinyomtatja a szorzás eredményét.
Határozzuk meg az X_1 és X_2 bemeneti csomópontokat. Amikor létrehozunk egy csomópontot a Tensorflow-ban, ki kell választanunk, hogy milyen csomópontot hozzunk létre. Az X1 és X2 csomópontok helyőrző csomópontok lesznek. A helyőrző minden egyes számításkor új értéket rendel hozzá. TF pont helyőrző csomópontként hozzuk létre őket.
1. lépés: Definiálja a változót
X_1 = tf.placeholder(tf.float32, name = "X_1")X_2 = tf.placeholder(tf.float32, name = "X_2")
Amikor létrehozunk egy helyőrző csomópontot, át kell adnunk, hogy az adattípus itt számokat ad hozzá, így lebegőpontos adattípust használhatunk, használjuk a tf.float32 fájlt. Nevet is kell adnunk ennek a csomópontnak. Ez a név akkor jelenik meg, amikor megnézzük modellünk grafikus megjelenítését. Nevezzük el ezt a csomópontot úgy, hogy X_1 értékkel átadjuk a név nevű paramétert, és most ugyanúgy definiáljuk az X_2 értéket. X_2.
2. lépés: Adja meg a számítást
multiply = tf.multiply(X_1, X_2, name = "multiply")
Most meghatározhatjuk azt a csomópontot, amely elvégzi a szorzási műveletet. A Tensorflow-ban ezt megtehetjük egy tf.multtiply csomópont létrehozásával.
Az X_1 és X_2 csomópontokat továbbítjuk a szorzási csomópontnak. Azt mondja a tenzorfolyamatnak, hogy kapcsolja össze ezeket a csomópontokat a számítási grafikonban, ezért arra kérjük, hogy húzza ki az x és y értékeket, és szorozza meg az eredményt. Adjuk meg a szorzási csomópontnak a szorzás nevet is. Egyszerű számítási grafikonunk teljes meghatározása.
3. lépés: Végezze el a műveletet
A műveletek végrehajtásához a grafikonon létre kell hoznunk egy munkamenetet. A Tensorflow-ban a tf.Session () végzi. Most, hogy van munkamenet, megkérhetjük a munkamenetet, hogy futtassa a műveleteket a számítási grafikonon a munkamenet hívásával. A számítás futtatásához a futást kell használnunk.
Amikor az összeadási művelet fut, akkor látni fogja, hogy meg kell ragadnia az X_1 és X_2 csomópont értékeit, ezért be kell adnunk az X_1 és az X_2 értékeit is. Ezt megtehetjük a feed_dict nevű paraméter megadásával. Átadjuk az 1,2,3 értéket az X_1 és a 4,5,6 értéket az X_2 esetében.
Az eredményeket kinyomtatjuk nyomtatással (eredmény). 4, 10 és 18 értéket kell látnunk 1x4, 2x5 és 3x6 esetén
X_1 = tf.placeholder(tf.float32, name = "X_1")X_2 = tf.placeholder(tf.float32, name = "X_2")multiply = tf.multiply(X_1, X_2, name = "multiply")with tf.Session() as session:result = session.run(multiply, feed_dict={X_1:[1,2,3], X_2:[4,5,6]})print(result)
[ 4. 10. 18.]
Adatok TensorFlow-ba történő betöltésének lehetőségei
A gépi tanulási algoritmus oktatása előtt az első lépés az adatok betöltése. Az adatok betöltésének két általános módja van:
1. Adatok betöltése a memóriába: Ez a legegyszerűbb módszer. Az összes adatot egyetlen tömbként tölti be a memóriába. Írhat Python kódot. Ez a kódsor nem függ össze a Tensorflow-val.
2. Tensorflow adatcsatorna. A Tensorflow beépített API-val rendelkezik, amely segít az adatok betöltésében, a művelet végrehajtásában és a gépi tanulási algoritmus egyszerű betáplálásában. Ez a módszer nagyon jól működik, főleg ha nagy adatkészlettel rendelkezik. Például a képrekordok köztudottan hatalmasak és nem férnek el a memóriában. Az adatvezeték önmagában kezeli a memóriát
Milyen megoldást kell használni?
Töltse be az adatokat a memóriába
Ha az adatkészlet nem túl nagy, azaz kevesebb, mint 10 gigabájt, használhatja az első módszert. Az adatok elférnek a memóriában. Használhat egy híres Pandas nevű könyvtárat CSV fájlok importálásához. A következő oktatóanyagban többet tudhat meg a pandákról.
Adatok betöltése a Tensorflow csővezetékkel
A második módszer akkor működik a legjobban, ha nagy adatkészlete van. Például, ha van egy 50 gigabájtos adatkészlete, és a számítógépén csak 16 gigabájt memória van, akkor a gép összeomlik.
Ebben a helyzetben meg kell építenie a Tensorflow csővezetéket. A folyamat szakaszosan vagy kis darabokban tölti be az adatokat. Minden tételt a csővezetékig tolnak, és készen áll a képzésre. A csővezeték kiépítése kiváló megoldás, mert lehetővé teszi párhuzamos számítás használatát. Ez azt jelenti, hogy a Tensorflow több CPU-n keresztül oktatja a modellt. Elősegíti a számítást és lehetővé teszi az erőteljes ideghálózat képzését.
A következő oktatóanyagokban megtudhatja, hogyan lehet jelentős csővezetéket építeni az idegháló táplálásához.
Dióhéjban, ha van egy kis adatkészlete, betöltheti az adatokat a memóriába a Pandas könyvtár segítségével.
Ha nagy adatkészlettel rendelkezik, és több CPU-t szeretne használni, akkor kényelmesebb lesz a Tensorflow csővezetékkel dolgozni.
Hozzon létre Tensorflow csővezetéket
Az előző példában manuálisan adunk három értéket az X_1 és az X_2 értékekhez. Most meglátjuk, hogyan lehet adatokat betölteni a Tensorflow-ba.
1. lépés: Hozza létre az adatokat
Először is használjunk a numpy library segítségével két véletlenszerű értéket.
import numpy as npx_input = np.random.sample((1,2))print(x_input)
[[0.8835775 0.23766977]]
2. lépés: Hozza létre a helyőrzőt
Az előző példához hasonlóan létrehozunk egy helynevet X névvel. Kifejezetten meg kell adnunk a tenzor alakját. Abban az esetben, ha egy tömböt csak két értékkel töltünk be. Felírhatjuk az alakot formára = alak = [1,2]
# using a placeholderx = tf.placeholder(tf.float32, shape=[1,2], name = 'X')
3. lépés: Adja meg az adatkészlet módszerét
ezután meg kell határoznunk az Adatkészletet, ahol feltölthetjük az x helyőrző értékét. A tf.data.Dataset.from_tensor_slices metódust kell használnunk
dataset = tf.data.Dataset.from_tensor_slices(x)
4. lépés: Hozza létre a csővezetéket
A negyedik lépésben inicializálnunk kell a folyamatot, ahol az adatok áramlani fognak. Létre kell hoznunk egy iterátort a make_initializable_iterator paranccsal. Iterátornak nevezzük. Ezután meg kell hívnunk ezt az iterátort, hogy betápláljuk a következő adatsort, a get_next-et. Ezt a lépést a get_next névre kereszteljük. Vegye figyelembe, hogy példánkban csak egy adatcsomag van, csak két értékkel.
iterator = dataset.make_initializable_iterator()get_next = iterator.get_next()
5. lépés: Végezze el a műveletet
Az utolsó lépés hasonló az előző példához. Munkamenetet kezdeményezünk, és futtatjuk a műveletismétlőt. A feed_dict-et a numpy által generált értékkel tápláljuk. Ez a két érték kitölti az x helyőrzőt. Ezután futtatjuk a get_next fájlt az eredmény kinyomtatásához.
with tf.Session() as sess:# feed the placeholder with datasess.run(iterator.initializer, feed_dict={ x: x_input })print(sess.run(get_next)) # output [ 0.52374458 0.71968478]
[0.8835775 0.23766978]
Összegzés
TensorFlow jelentése: A TensorFlow az elmúlt évek leghíresebb mélytanuló könyvtár. A TensorFlow-t használó orvos bármilyen mély tanulási struktúrát felépíthet, például CNN, RNN vagy egyszerű mesterséges neurális hálózatot.
A TensorFlow-t leginkább tudósok, startupok és nagyvállalatok használják. A Google szinte az összes Google napi termékben használja a TensorFlow alkalmazást, beleértve a Gmailt, a Fotót és a Google Keresőt.
A Google Brain csapat által kifejlesztett TensorFlow a kutatók és a termékfejlesztők közötti rés kitöltésére. 2015-ben nyilvánosságra hozták a TensorFlow-t; gyorsan növekszik a népszerűsége. Manapság a TensorFlow a mély tanulási könyvtár, amely a legtöbb adattárral rendelkezik a GitHubon.
A gyakorlók azért használják a Tensorflow-t, mert könnyen telepíthető nagy léptékben. Úgy van kialakítva, hogy a felhőben vagy olyan mobil eszközökön működjön, mint az iOs és az Android.
A Tensorflow munkamenetben működik. Minden munkamenetet különféle számításokkal ellátott grafikon határoz meg. Egyszerű példa lehet számra szorozni. A Tensorflow esetében három lépés szükséges:
- Definiálja a változót
X_1 = tf.placeholder(tf.float32, name = "X_1")X_2 = tf.placeholder(tf.float32, name = "X_2")
- Határozza meg a számítást
multiply = tf.multiply(X_1, X_2, name = "multiply")
- Végezze el a műveletet
with tf.Session() as session:result = session.run(multiply, feed_dict={X_1:[1,2,3], X_2:[4,5,6]})print(result)
A Tensorflow egyik gyakori gyakorlata, hogy létrehoz egy folyamatot az adatok betöltésére. Ha ezt az öt lépést követi, akkor adatokat tölthet be a TensorFLow-ba
- Hozza létre az adatokat
import numpy as npx_input = np.random.sample((1,2))print(x_input)
- Hozza létre a helyőrzőt
x = tf.placeholder(tf.float32, shape=[1,2], name = 'X')
- Határozza meg az adatkészlet-módszert
dataset = tf.data.Dataset.from_tensor_slices(x)
- Hozza létre a csővezetéket
iterator = dataset.make_initializable_iterator() get_next = iterator.get_next()
- Futtassa a programot
with tf.Session() as sess:sess.run(iterator.initializer, feed_dict={ x: x_input })print(sess.run(get_next))