Theano vs TensorFlow: Perbandingan Cepat Kerangka Kerja



Artikel di Theano vs TensorFlow ini akan memberi Anda perbandingan singkat dan tajam antara kedua Frameworks dan membantu Anda memilih salah satu yang cocok untuk Anda.

Era Pembelajaran Mendalam dan berada di puncaknya. Itu akan menciptakan 2.3 Juta Pekerjaan pada tahun 2020. Dengan kerangka kerja baru yang muncul setiap bulan, TensorFlow dan Theano telah berada di sana selama beberapa waktu dan mendapatkan popularitas yang cukup baik. Jadi dalam artikel Theano vs TensorFlow ini, saya akan membahas topik-topik berikut:

Apa Theano?

Theano dapat didefinisikan sebagai perpustakaan untuk Komputasi Ilmiah . Ini dikembangkan oleh Université de Montréal dan telah tersedia sejak 2007.





theano-logo

c ++ mengurutkan angka dalam urutan menaik

Ini memungkinkan Anda untuk menentukan, mengoptimalkan, dan mengevaluasi ekspresi matematika yang melibatkan array multi-dimensi secara efisien. Ini dapat berjalan di CPU dan GPU.



Apa itu TensorFlow?

TensorFlow adalah pustaka perangkat lunak sumber terbuka oleh Google Brain untuk pemrograman aliran data di berbagai tugas.

Ini adalah pustaka matematika simbolis yang digunakan untuk aplikasi pembelajaran mesin seperti .



Theano vs TensorFlow

Kami akan membandingkan Theano vs TensorFlow berdasarkan Metrik berikut:

Kepopuleran:

Theano TensorFlow
Theano menjadi Kerangka lama tidak sepopuler itu antara , Peneliti. Itu pernah terjadiTensorFlow adalah tangan ke bawah yang paling terkenal Kerangka Pembelajaran Mendalam dan digunakan dalam banyak penelitian.

Kecepatan Eksekusi:

Theano TensorFlow
Menjalankan Tugas Lebih Cepat daripada TensorFlow. Terutama tugas GPU tunggal yang bekerja sangat cepat di Theano.Kecepatan Eksekusi TensorFlow lebih lambat dibandingkan dengan Theano, Namun dalam Tugas Multi-GPU, hal ini memimpin.

Manfaat Teknologi:

Theano TensorFlow
Ini mendukung berbagai Operasi.

Theano menghitung gradien saat menentukan kesalahan.

Anda memiliki kendali penuh atas Pengoptimal karena Anda harus membuat kode keras.

TensorFlow masih harus setara dengan Theano.

Itu tidak terjadi pada TensorFlow

Ini memberikan akses ke banyak Pengoptimal yang baik di luar kotak. Yang membuat Coding Lebih Mudah

Kesesuaian:

tumpukan garam vs boneka vs koki

Theano TensorFlow
Keras, Deep Learning Library yang luar biasa kompatibel dengan Theano. Ini Terintegrasi Dengan Baik.

Ini memiliki Dukungan Windows Asli.

Ini juga mendukung Pembungkus Tingkat Tinggi seperti Lasagne.

Namun dalam kasus TensorFlow, itu masih belum cukup. Namun, di v2.0 tidak demikian.

Saat ini, TensorFlow tidak memiliki Dukungan ini.

Tidak Ada Dukungan untuk Lasagna.

Dukungan Komunitas:

Theano TensorFlow
Theano memiliki Dukungan Komunitas yang Lebih Besar karena hadir sebelum TensorFlow.

Ini memiliki Lebih Banyak Dokumentasi daripada TensorFlow

Dukungan Komunitas Online TensorFlow Meningkat pesat dengan Popularitasnya.

Dokumentasi relatif lebih sedikit.

Keterbacaan Kode:

Mari kita Bandingkan Theano vs TensorFlow berdasarkan Kode mereka. Di sini saya Mengambil Skrip Contoh Dasar di mana kami akan mengambil beberapa data Palsu dan menginisialisasi yang paling cocok untuk data tersebut sehingga dapat memprediksi poin data di masa mendatang.

Kode Theano:

import theano import theano.tensor sebagai T import numpy # Sekali lagi, buat 100 poin di numpy x_data = numpy.float32 (numpy.random.rand (2, 100)) y_data = numpy.dot ([0.100, 0.200], x_data) + 0.3 # Inisialisasi model Theano X = T. matriks () Y = T. vektor () 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 gradien WRT mean-squared-error untuk setiap parameter cost = T. berarti (T.sqr (y - Y)) gradien W = T.grad (biaya = biaya, wrt = W) gradienB = T.grad (biaya = biaya, wrt = b) pembaruan = [[W, W - gradienW * 0,5], [b, b - gradienB * 0,5]] kereta = theano.fungsi (input = [X, Y], output = biaya, pembaruan = pembaruan, allow_input_downcast = True) untuk i dalam xrange (0, 201): melatih (x_data, y_data) print W. get_value (), b.get_value ()

Kode TensorFlow Setara:

import tensorflow sebagai tf import numpy as np # Buat 100 titik data palsu di NumPy. x_data = np.float32 (np.random.rand (2, 100)) # Random input y_data = np.dot ([0.100, 0.200], x_data) + 0.300 # Buat model linier. 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 # Minimalkan kesalahan kuadrat. loss = tf.reduce_mean (tf.square (y - y_data)) optimizer = tf.train.GradientDescentOptimizer (0,5) train = optimizer.minimize (loss) # Untuk menginisialisasi variabel. init = tf.initialize_all_variables () # Luncurkan grafik sess = tf.Session () sess.run (init) # Sesuaikan bidang. untuk langkah di xrange (0, 201): sess.run (train) if step% 20 == 0: print step, sess.run (W), sess.run (b) # Belajar paling cocok adalah W: [[0.100 0,200]], b: [0,300]

Panjangnya Bijaksana Kedua Kode hampir sama Serupa tidak banyak perbedaan. Dua dihasilkan secara identik array yang mendeskripsikan input, dan output target. Tetapi jika kita melihat Model Inisialisasi.

Model Inisialisasi:

# 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. matriks () Y = T.vector () b = theano.shared (numpy.random.uniform (-1, 1), name = 'b') W = theano.shared (numpy.random . seragam (-1.0, 1.0, (1, 2)), nama = 'W') y = W. titik (X) + b

Seperti yang Anda lihat di sini bahwa TensorFlow tidak memerlukan Perlakuan Khusus apa pun terhadap Variabel X dan Y. Di sisi lain, Theano membutuhkan upaya ekstra untuk memastikan bahwa variabel-variabel itu ada Input Simbolik ke Fungsi. Definisi b dan W lebih jelas dan juga lebih bagus.

Pembelajaran: Optimasi

# Tensorflow loss = tf.reduce_mean (tf.square (y - y_data)) # (1) optimizer = tf.train.GradientDescentOptimizer (0.5) # (2) train = optimizer.minimize (loss) # (3) # Theano cost = T. berarti (T.sqr (y - Y)) # (1) gradien W = T.grad (biaya = biaya, wrt = W) # (2) gradienB = T.grad (biaya = biaya, wrt = b) # (2) pembaruan = [[W, W - gradienW * 0,5], [b, b - gradienB * 0,5]] # (2) kereta = theano.fungsi (input = [X, Y], output = biaya, pembaruan = pembaruan, allow_input_downcast = True) # (3)

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

Untuk (2) Mendefinisikan Pengoptimal mudah dan sederhana karena dalam kasus TensorFlow, tetapi Theanno memberi Anda banyak Kontrol atas Pengoptimal meskipun itu cukup panjang dan meningkatkan Upaya Verifikasi.

Untuk 3) Fungsi Pelatihan Kode ini hampir mirip

Badan Pelatihan:

# TensorFlow init = tf.initialize_all_variables () sess = tf.Session () sess.run (init) untuk langkah di xrange (0, 201): sess.run (train) # Theano untuk i di xrange (0, 201): melatih (x_data, y_data) print W. get_value (), b.get_value ()

Kode untuk Pelatihan hampir identik, tetapi Enkapsulasi Eksekusi Grafik di Objek Sesi Lebih bersih secara konseptual dari Theano.

Putusan Akhir: Theano vs TensorFlow

Pada Catatan Penutup, dapat dikatakan bahwa kedua API tersebut memiliki file Antarmuka serupa . Tapi TensorFlow secara komparatif lebih mudah Anda gunakan karena menyediakan banyak Alat Pemantauan dan Debugging. Theano memimpin Kegunaan dan Kecepatan , tetapi TensorFlow lebih cocok untuk Deployment. Dokumen atau Dokumentasi karena Theano lebih dari sekadar TensorFlow dan TensorFlow menjadi Bahasa baru yang tidak memiliki banyak sumber daya. Pustaka dalam sumber terbuka seperti Keras, Lasagne dan Blok telah dibangun di atas Theano.

Saya harap perbandingan ini cukup bagi Anda untuk memutuskan kerangka kerja mana yang akan dipilih, lihat oleh Edureka, perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar yang puas dan tersebar di seluruh dunia. Pelatihan Sertifikasi ini dikurasi oleh para profesional industri sesuai dengan kebutuhan & tuntutan industri. Anda akan menguasai konsep-konsep seperti fungsi SoftMax, Autoencoder Neural Networks, Restricted Boltzmann Machine (RBM), dan bekerja dengan pustaka seperti Keras & TFLearn.

adalah pascasarjana dan master sama

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar 'Theano vs TensorFlow' dan kami akan menghubungi Anda kembali.