Theano vs TensorFlow: Perbandingan Ringkas Kerangka Kerja



Artikel ini mengenai Theano vs TensorFlow akan memberi anda perbandingan pendek dan tajam antara dua Kerangka Kerja dan membantu anda memilih yang sesuai dengan anda.

Zaman Pembelajaran Dalam dan berada di puncaknya. Ia akan mencipta 2.3 Juta Pekerjaan menjelang 2020. Dengan kerangka kerja baru muncul setiap bulan, TensorFlow dan Theano telah lama berada di sana dan telah memperoleh banyak populariti juga. Oleh itu, dalam artikel Theano vs TensorFlow ini, saya akan membincangkan topik berikut:

Apa itu Theano?

Theano boleh didefinisikan sebagai perpustakaan untuk Pengkomputeran Ilmiah . Ia dibangunkan oleh Université de Montréal dan telah tersedia sejak tahun 2007.





theano-logo

Ia membolehkan anda menentukan, mengoptimumkan, dan menilai ungkapan matematik yang melibatkan tatasusunan pelbagai dimensi dengan cekap. Ia boleh dijalankan pada CPU dan GPU.



Apa itu TensorFlow?

TensorFlow adalah perpustakaan perisian sumber terbuka oleh Google Brain untuk pengaturcaraan aliran data dalam pelbagai tugas.

apa __init__ dalam python

Ia adalah perpustakaan matematik simbolik yang digunakan untuk aplikasi pembelajaran mesin seperti .



Theano vs TensorFlow

Kami akan membandingkan Theano vs TensorFlow berdasarkan Metrik berikut:

Populariti:

Theano TensorFlow
Theano menjadi Kerangka lama adalah tidak begitu popular antara , Penyelidik. Ia suatu ketika dahuluTensorFlow adalah tangan ke bawah paling terkenal Kerangka Pembelajaran Dalam dan digunakan dalam banyak penyelidikan.

Kelajuan Pelaksanaan:

Theano TensorFlow
Menjalankan Tugas Lebih Cepat daripada TensorFlow. Terutama Tugas GPU tunggal berjalan dengan pantas di Theano.Kelajuan pelaksanaan TensorFlow lebih perlahan dibandingkan dengan Theano, tetapi dalam Tugas Multi-GPU, ia memimpin.

Faedah Teknologi:

Theano TensorFlow
Ia menyokong pelbagai Operasi.

Theano mengira kecerunan ketika menentukan kesilapan.

Anda mempunyai kawalan penuh ke atas Pengoptimum kerana anda harus mengekodkannya dengan keras.

TensorFlow masih harus setaraf dengan Theano.

Itu bukan masalah untuk TensorFlow

Ini memberikan akses kepada banyak Pengoptimum yang baik di luar kotak. Yang menjadikan Pengekodan Lebih Mudah

Keserasian:

Theano TensorFlow
Keras Perpustakaan Pembelajaran Dalam yang luar biasa serasi dengan Theano. Ia Bersepadu Dengan Baik.

Ia mempunyai Sokongan Windows Asli.

Ia juga menyokong Pembungkus Aras Tinggi seperti Lasagne.

Tetapi sekiranya berlaku TensorFlow, masih belum ada. Walau bagaimanapun, dalam v2.0 ini tidak akan berlaku.

Pada masa ini, TensorFlow tidak mempunyai Sokongan ini.

Tiada Sokongan untuk Lasagne.

Sokongan Komuniti:

Theano TensorFlow
Theano mempunyai Sokongan Komuniti yang Lebih Besar seperti sebelum TensorFlow.

Ia mempunyai Dokumentasi Lebih Banyak daripada TensorFlow

Sokongan Komuniti Dalam Talian TensorFlow semakin meningkat dengan Populariti.

pangsi pusing dan tolak dalam sql

Dokumentasi lebih rendah.

Kebolehbacaan Kod:

Mari kita Bandingkan Theano vs TensorFlow berdasarkan Kod mereka. Di sini Saya Mengambil Skrip Contoh Asas di mana kita akan mengambil beberapa data Phony dan memulakan yang paling sesuai untuk data tersebut sehingga dapat meramalkan titik data masa depan.

Kod Theano:

cara menukar gandaan menjadi int java
import theano import theano.tensor sebagai T import numpy # Sekali lagi, buat 100 mata dalam numpy x_data = numpy.float32 (numpy.random.rand (2, 100)) y_data = numpy.dot ([0.100, 0.200], x_data) + 0.3 # Mengenal model Theano 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)), name = 'W') y = W.dot (X) + b # Hitung kecerunan WRT ralat-kuadrat-ralat untuk setiap kos parameter = T.mean (T.sqr (y - Y)) gradienW = T.grad (cost = cost, wrt = W) gradientB = T.grad (cost = cost, wrt = b) kemas kini = [[W, W - gradientW * 0.5], [b, b - gradientB * 0.5]] train = theano.function (input = [X, Y], outputs = cost, kemas kini = kemas kini, allow_input_downcast = True) untuk i dalam xrange (0, 201): kereta api (x_data, y_data) cetak W.get_value (), b.get_value ()

Kod TensorFlow Setara:

import tensorflow sebagai tf import numpy sebagai np # Jadikan 100 titik data palsu di NumPy. x_data = np.float32 (np.random.rand (2, 100)) # Input rawak y_data = np.dot ([0.100, 0.200], x_data) + 0.300 # Bentukkan model linear. b = tf.Variabel (tf.zeros ([1])) W = tf.Variable (tf.random_uniform ([1, 2], -1.0, 1.0)) y = tf.matmul (W, x_data) + b # Kurangkan kesalahan kuasa dua. loss = tf.reduce_mean (tf.square (y - y_data)) optimizer = tf.train.GradientDescentOptimizer (0.5) train = optimizer.minimize (loss) # Untuk memulakan pemboleh ubah. init = tf.initialize_all_variables () # Lancarkan grafik sess = tf. Sesi () sess.run (init) # Pasang satah. untuk langkah dalam xrange (0, 201): sess.run (kereta) jika langkah% 20 == 0: langkah cetak, sess.run (W), sess.run (b) # Belajar yang paling sesuai ialah W: [[0.100 0.200]], b: [0.300]

Panjang Bijaksana Kedua-dua Kod ini hampir Sama tidak banyak perbezaan. Dua dihasilkan secara serupa tatasusunan yang menerangkan input, dan output sasaran. Tetapi jika kita melihat Model Permulaan.

Permulaan Model:

# TensorFlow b = tf.Variable (tf.zeros ([1])) W = tf.Variable (tf.random_uniform ([1, 2], -1.0, 1.0)) y = tf.matmul (W, x_data) + b # Theano 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)), nama = 'W') y = W.dot (X) + b

Seperti yang anda lihat di sini bahawa TensorFlow tidak memerlukan Perlakuan Khas Pemboleh ubah X dan Y. Sebaliknya, Theano memerlukan usaha tambahan untuk memastikan bahawa pemboleh ubahnya Input Simbolik ke Fungsi. Definisi b dan W adalah jelas dan juga lebih baik.

Pembelajaran: Pengoptimuman

# Tensorflow loss = tf.reduce_mean (tf.square (y - y_data)) # (1) optimizer = tf.train.GradientDescentOptimizer (0.5) # (2) train = optimizer.minimize (loss) # (3) # Kos Theano = T.mean (T.sqr (y - Y)) # (1) gradientW = T.grad (cost = cost, wrt = W) # (2) gradientB = T.grad (cost = cost, wrt = b) # (2) kemas kini = [[W, W - gradientW * 0.5], [b, b - gradientB * 0.5]] # (2) train = theano.function (input = [X, Y], output = cost, update = kemas kini, allow_input_downcast = True) # (3)

Untuk (1) MSE hampir sama untuk Theano vs TensorFlow.

Untuk (2) Mendefinisikan Pengoptimum mudah dan sederhana seperti yang berlaku dalam TensorFlow, tetapi Theanno memberi anda banyak Kawalan mengatasi Pengoptimum walaupun cukup panjang dan meningkatkan Usaha Pengesahan.

Untuk (3) Fungsi Latihan Kodnya hampir serupa

Badan Latihan:

# TensorFlow init = tf.initialize_all_variables () sess = tf. Sesi () sess.run (init) untuk langkah dalam xrange (0, 201): sess.run (kereta api) # Theano for i in xrange (0, 201): kereta api (x_data, y_data) cetak W.get_value (), b.get_value ()

Kod untuk Latihan hampir sama, tetapi merangkumi Pelaksanaan Grafik dalam Objek Sesi adalah Lebih Berkonsepkan Bersih daripada Theano.

Keputusan Akhir: Theano vs TensorFlow

Pada Catatan Penutup, dapat dikatakan bahawa kedua-dua API mempunyai Antara Muka yang serupa . Tetapi TensorFlow secara perbandingan lebih mudah Anda gunakan kerana ia menyediakan banyak Alat Pemantauan dan Debug. Theano mendahului Kebolehgunaan dan Kepantasan , tetapi TensorFlow lebih sesuai untuk Penerapan. Kertas kerja atau Dokumentasi untuk Theano lebih daripada TensorFlow dan TensorFlow menjadi Bahasa baru orang tidak mempunyai banyak sumber, untuk permulaan. Perpustakaan dalam sumber terbuka seperti Keras, Lasagne dan Blok telah dibina di atas Theano.

Saya harap perbandingan ini cukup untuk anda memutuskan kerangka mana yang harus anda pilih, lihat oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia. Latihan Pensijilan ini dikuratori oleh profesional industri mengikut keperluan & permintaan industri. Anda akan menguasai konsep-konsep seperti fungsi SoftMax, Autoencoder Neural Networks, Restricted Boltzmann Machine (RBM) dan bekerjasama dengan perpustakaan seperti Keras & TFLearn.

Ada soalan untuk kami? Sila sebutkan di bahagian komen 'Theano vs TensorFlow' dan kami akan menghubungi anda.