Theano vs TensorFlow: A keretrendszerek gyors összehasonlítása



Ez a cikk a Theano vs TensorFlow témakörben rövid és pontos összehasonlítást nyújt a két keret között, és segít kiválasztani az Önnek megfelelőt.

Korszaka Mély tanulás és a csúcson van. Létrehozza 2,3 millió Munkahelyek 2020-ig. A havonta megjelenő új keretrendszerekkel a TensorFlow és a Theano egy ideje ott vannak, és nagy népszerűségre tettek szert. Tehát ebben a Theano vs TensorFlow cikkben a következő témákat fogom megvitatni:

Mi az a Theano?

A Theano a könyvtár könyvtáraként definiálható Tudományos számítástechnika . A Montréal Egyetem fejlesztette ki, és 2007 óta elérhető.





theano-logo

Ez lehetővé teszi a többdimenziós tömböket magában foglaló matematikai kifejezések hatékony meghatározását, optimalizálását és értékelését. CPU-n és GPU-n is futtatható.



Mi az a TensorFlow?

TensorFlow a Google Brain nyílt forráskódú szoftverkönyvtára az adatfolyamok programozásához számos feladathoz.

java hogyan fejezzük be a programot

Ez egy szimbolikus matematikai könyvtár, amelyet gépi tanulási alkalmazásokhoz használnak .



Theano vs TensorFlow

A Theano és a TensorFlow összehasonlítását a következő mutatók alapján végezzük:

Népszerűség:

Theano TensorFlow
Mivel Theano régi keretrendszer, az nem olyan népszerű között , Kutatók. Valamikor voltA TensorFlow lenyomja a leghíresebb Deep Learning Framework, és sok kutatásban használják.

Végrehajtási sebesség:

Theano TensorFlow
Gyorsabban hajtja végre a feladatokat, mint a TensorFlow. Különösen az egyetlen GPU-feladatok futnak, nagyon gyorsan a Theanóban.A TensorFlow végrehajtási sebessége lassabb, mint a Theano, de a Multi-GPU Tasks-ban ez átveszi a vezetést.

Technológiai előnyök:

Theano TensorFlow
A műveletek széles körét támogatja.

Theano kiszámítja a színátmenetet a hiba.

Teljes ellenőrzése van az Optimalizálók felett, mivel keményen kell kódolnia.

A TensorFlow-nak még mindig egyenlőnek kell lennie Theanóval.

A TensorFlow esetében nem ez a helyzet

Már a dobozból sok jó optimalizálóhoz hozzáfér. Ez megkönnyíti a kódolást

Kompatibilitás:

Theano TensorFlow
Keras egy csodálatos mély tanulási könyvtár kompatibilis a Theanóval. Jól integrálódik.

Natív Windows támogatással rendelkezik.

Támogatja az olyan magas szintű csomagolókat is, mint a Lasagne.

De a TensorFlow esetében még nincs teljesen meg. A v2.0 verzióban azonban ez nem így lesz.

Jelenleg a TensorFlow nem rendelkezik ezzel a támogatással.

Nincs támogatás a Lasagne számára.

Közösségi támogatás:

Theano TensorFlow
A Theano nagyobb közösségi támogatással rendelkezik, mint a TensorFlow előtt.

Több dokumentációval rendelkezik, mint a TensorFlow

A TensorFlow online közösségi támogatása népszerűségével gyorsan növekszik.

melyik szkenner osztály metódus olvassa el a karakterláncot?

A dokumentáció viszonylag kevesebb.

Kód olvashatóság:

Hasonlítsuk össze a Theano és a TensorFlow kódját. Itt egy alapvető példa szkriptet veszek, ahol néhány hamis adatot veszünk, és inicializáljuk az adatokhoz legjobban illeszkedő adatokat, hogy ez megjósolhassa a jövőbeni adatpontokat.

Theano kód:

hogyan működik a tostring a java-ban
import theano import theano.tensor, mint T import numpy # Ismételten tegyen 100 pontot a numpy x_data = numpy.float32 (numpy.random.rand (2, 100)) y_data = numpy.dot ([0.100, 0.200], x_adatok) + 0,3 # Intializálja a Theano modellt X = T.matrix () Y = T.vector () b = theano.shared (numpy.random.uniform (-1, 1), name = 'b') W = theano.shared ( numpy.random.uniform (-1,0, 1,0, (1, 2)), név = 'W' y = W.dot (X) + b # Számítsa ki a WRT színátmeneteket az átlagos költség-négyzet hiba értéke minden paraméternél = T. Átlagos (T.qr (y - Y)) színátmenetW = T.grad (költség = költség, wrt = W) színátmenetB = T.grad (költség = költség, wrt = b) frissítések = [[W, W - gradiensW * 0,5], [b, b - gradiensB * 0,5]] vonat = theano.funkció (bemenetek = [X, Y], kimenetek = költség, frissítések = frissítések, allow_input_downcast = True) i-re xrange-ben (0, 201): vonat (x_adatok, y_adatok) nyomtassa ki a W.get_value (), b.get_value ()

Ekvivalens TensorFlow kód:

import tensorflow mint tf import numpy as np # Készítsen 100 hamis adatpontot a NumPy-ben. x_adatok = np.float32 (np.random.rand (2, 100)) # Véletlenszerű bemenet y_data = np.dot ([0.100, 0.200], x_adatok) + 0.300 # Készítsen lineáris modellt. b = tf.változó (tf.zeros ([1])) W = tf.változó (tf.véletlenszerű_egyetlen ([1, 2], -1,0, 1,0)) y = tf.matmul (W, x_adatok) + b # Minimalizálja a négyzetes hibákat. veszteség = tf.reduce_mean (tf.square (y - y_data)) optimalizáló = tf.train.GradientDescentOptimizer (0.5) vonat = optimizer.minimize (veszteség) # A változók inicializálásához. init = tf.initialize_all_variables () # Indítsa el a grafikont sess = tf.Session () sess.run (init) # Illessze a síkot. xrange lépéshez (0, 201): sess.run (vonat), ha% 20 == 0 lépés: nyomtatási lépés, sess.run (W), sess.run (b) # A legjobb illeszkedést megtanulja W: [[0.100 0.200]], b: [0,300]

Hosszú bölcs Mindkét kódex majdnem Hasonló nincs sok különbség. Két azonos módon generált tömbök leírják a bemenetet és a cél kimenetet. De ha megnézzük a modell inicializálását.

Modell inicializálása:

# TensorFlow b = tf.Változó (tf.zeros ([1])) W = tf.Variable (tf.random_uniform ([1, 2], -1.0, 1.0)) y = tf.matmul (W, x_adatok) + b # Theano X = T. mátrix () Y = T. vektor () b = theano.shared (numpy.random.uniform (-1, 1), name = 'b') W = theano.shared (numpy.random) .egyenetlen (-1,0, 1,0, (1, 2)), név = 'W' y = W.dot (X) + b

Amint itt láthatja, hogy a TensorFlow nem igényel semmilyen speciális kezelést az X és Y változókról. Másrészt, Theano további erőfeszítéseket igényel, hogy megbizonyosodjon a változók megfelelőségéről Szimbolikus bemenetek a Funkcióhoz. A b és W meghatározása magyarázó és szebb.

A tanulás: optimalizálás

# Tensorflow loss = tf.reduce_mean (tf.square (y - y_data)) # (1) optimizer = tf.train.GradientDescentOptimizer (0.5) # (2) train = optimizer.minimize (loss) # (3) # Theano költség = T.mean (T.sqr (y - Y)) # (1) színátmenetW = T.grad (költség = költség, wrt = W) # (2) színátmenetB = T.grad (költség = költség, wrt = b) # (2) frissítés = [[W, W - gradiensW * 0,5], [b, b - gradiensB * 0,5]] # (2) vonat = theano.funkció (bemenetek = [X, Y], kimenetek = költségek, frissítések = frissítések, allow_input_downcast = Igaz) # (3)

Az (1) számára a MSE majdnem ugyanaz a Theano vs TensorFlow esetében.

A (2) A Optimalizáló könnyű és egyszerű, mint a TensorFlow esetében, de a Theanno nagyszerű ellenőrzési lehetőséget biztosít az optimalizálók számára, bár meglehetősen hosszú és növeli az ellenőrzési erőfeszítéseket.

A (3) Képzési funkció a kód szinte hasonló

Képző testület:

# TensorFlow init = tf.initialize_all_variables () sess = tf.Session () sess.run (init) az xrange (0, 201) lépéshez: sess.run (train) # Theano for i in xrange (0, 201): vonat (x_adatok, y_adatok) nyomtassa ki a W.get_value (), b.get_value ()

A képzés kódja majdnem azonos, de a grafikonfuttatás beágyazása a munkamenetobjektumba igen Fogalmilag tisztább mint Theano.

Végső ítélet: Theano vs TensorFlow

Záró megjegyzésként elmondható, hogy mindkét API-nak van egy hasonló interfész . De a TensorFlow összehasonlító könnyebb yo használja, mivel rengeteg Monitoring és hibakereső eszközt biztosít. Theano átveszi a vezetést Használhatóság és sebesség , de a TensorFlow jobban megfelel a telepítésnek. Papírmunka vagy Dokumentáció mert a Theano több, mint a TensorFlow és a TensorFlow egy új nyelv, az embereknek kezdetben nincs sok erőforrásuk. Nyílt forráskódú mélykönyvtárak, például Keras, Lasagne és Blocks voltak tetejére épült Theano.

Remélem, hogy ez az összehasonlítás elegendő volt ahhoz, hogy eldönthesse, melyik keretet választja, nézze meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon. Ezt a tanúsító képzést az ipari szakemberek gondozzák, az ipar követelményeinek és igényeinek megfelelően. Elsajátítja az olyan fogalmakat, mint a SoftMax funkció, az Autoencoder Neural Networks, a Restricted Boltzmann Machine (RBM), és olyan könyvtárakkal fog dolgozni, mint a Keras és a TFLearn.

Van egy kérdésünk? Kérjük, említse meg a „Theano vs TensorFlow” megjegyzés rovatában, és kapcsolatba lépünk Önnel.