تھیانو بمقابلہ ٹینسرفلو: فریم ورک کی ایک فوری موازنہ



تھیانو بمقابلہ ٹینسرفلو کے بارے میں یہ مضمون آپ کو دو فریم ورکوں کے درمیان ایک مختصر اور کرکرا موازنہ فراہم کرے گا اور آپ کو مناسب انتخاب کرنے میں مدد کرے گا۔

کا دور گہری لرننگ اور عروج پر ہے۔ یہ تخلیق کرنے جا رہا ہے 2.3 ملین 2020 تک ملازمت۔ ہر ماہ نئے فریم ورک کے آنے کے ساتھ ہی ، ٹینسرفلو اور تھیانو تھوڑی دیر کے لئے موجود ہیں اور اس نے اچھی خاصی مقبولیت بھی حاصل کرلی ہے۔ لہذا اس تھیانو بمقابلہ ٹینسرفلو مضمون میں ، میں مندرجہ ذیل موضوعات پر گفتگو کروں گا۔

تھیانو کیا ہے؟

تھیانو کو لائبریری کے طور پر بیان کیا جاسکتا ہے سائنسی کمپیوٹنگ . یہ یونیورسیٹی ڈی مونٹریال نے تیار کیا تھا اور 2007 سے دستیاب ہے۔





theano-logo

یہ آپ کو کثیر جہتی صفوں کو مؤثر طریقے سے شامل کرنے والے ریاضی کے اظہار کی وضاحت ، اصلاح اور ان کا اندازہ کرنے کی اجازت دیتا ہے۔ یہ سی پی یو اور جی پی یو دونوں پر چل سکتا ہے۔



ٹینسرفلو کیا ہے؟

ٹینسرفلو گوگل برین کے ذریعہ ایک اوپن سورس سوفٹویری لائبریری ہے جو مختلف کاموں میں ڈیٹا فلو پروگرامنگ کے لئے ہے۔

یہ ایک علامتی ریاضی کی لائبریری ہے جو مشین لرننگ ایپلی کیشنز جیسے استعمال ہوتی ہے .



عوامی سٹرنگ tostring ()

تھیانو بمقابلہ ٹینسرفلو

ہم مندرجہ ذیل میٹرکس کی بنیاد پر تھیانو بمقابلہ ٹینسرفلو کا موازنہ کریں گے۔

مقبولیت:

تھیانو ٹینسرفلو
تھیانو ایک پرانا فریم ورک ہے اتنا مشہور نہیں کے درمیان ، محققین. یہ ایک وقت تھاٹینسرفلو نیچے ہاتھ ہے سب سے زیادہ مشہور گہری لرننگ فریم ورک اور بہت سی تحقیق میں استعمال ہوتا ہے۔

پھانسی کی رفتار:

تھیانو ٹینسرفلو
ٹینسرفلو سے تیز تر ٹاسک انجام دیتا ہے۔ خاص طور پر سنگل GPU ٹاسکس چلتے ہیں ، تھیانو میں تیزی سے۔تھیانو کے مقابلے میں ٹینسرفلو کی عملدرآمد کی رفتار بہت کم ہے ، لیکن ملٹی GPU ٹاسکس میں یہ لیڈ لیتا ہے۔

ٹیکنالوجی فوائد:

تھیانو ٹینسرفلو
یہ آپریشنز کی ایک وسیع رینج کی حمایت کرتا ہے۔

جب طے کرتے ہو تو تھیانو میلان کی گنتی کرتا ہے غلطی

آپ کو آپٹمائزرز پر مکمل کنٹرول حاصل ہے کیونکہ آپ کو اس کا سخت کوڈ کرنا پڑتا ہے۔

ٹینسرفلو کو ابھی بھی تھیانو کے برابر ہونا ہے۔

ٹینسرفلو کا معاملہ ایسا نہیں ہے

یہ خانے سے باہر بہت سارے اچھے آپٹیمائزرز تک رسائی فراہم کرتا ہے۔ جو کوڈنگ کو آسان بنا دیتا ہے

مطابقت:

تھیانو ٹینسرفلو
کیراس حیرت انگیز ڈیپ لرننگ لائبریری تھیانو کے ساتھ مطابقت رکھتا ہے۔ یہ اچھی طرح سے انٹیگریٹڈ.

اس میں نیٹو ونڈوز سپورٹ ہے۔

یہ لاساسین جیسے اعلی سطح کے ریپروں کی بھی حمایت کرتا ہے۔

لیکن ٹینسرفلو کے معاملے میں ، یہ ابھی کافی نہیں ہے۔ تاہم ، v2.0 میں ایسا نہیں ہوگا۔

فی الحال ، ٹینسرفلو کے پاس اس تعاون کی کمی ہے۔

Lasagne کے لئے کوئی تعاون نہیں ہے۔

کمیونٹی سپورٹ:

تھیانو ٹینسرفلو
تھیانو کو بڑی کمیونٹی سپورٹ حاصل ہے جب یہ ٹینسرفلو سے پہلے سامنے آیا تھا۔

اس میں ٹینسرفلو سے زیادہ دستاویزات ہیں

ٹینسرفلو کی آن لائن کمیونٹی سپورٹ اپنی مقبولیت کے ساتھ تیزی سے بڑھ رہی ہے۔

دستاویزات نسبتا les کم ہیں۔

کوڈ پڑھنے کی اہلیت:

جڑنے والی فہرست پر عمل درآمد سی

آئیے ہم ان کے کوڈ کی بنیاد پر تھیانو بمقابلہ ٹینسرفلو کا موازنہ کریں۔ یہاں میں ایک بنیادی مثال اسکرپٹ لے رہا ہوں جہاں ہم کچھ فونی ڈیٹا لیں گے اور اس ڈیٹا کے ل fit بہترین فٹ کا آغاز کریں گے تاکہ یہ مستقبل کے ڈیٹا پوائنٹس کی پیش گوئی کر سکے۔

تھیانو کوڈ:

درآمد کریں theano.tensor بطور T درآمد نمی # ایک بار پھر ، 100 پوائنٹس کو numpy x_data = numpy.float32 (numpy.random.rand (2، 100)) y_data = numpy.dot ([0.100، 0.200]، x_data) + درآمد کریں 0.3 # تیوانو ماڈل X = T.matrix () Y = T.vector () b = theano.shared (numpy.random.uniform (-1، 1)، نام = 'بی') W = theano.shared ( numpy.random.uniform (-1.0، 1.0، (1، 2))، نام = 'ڈبلیو') y = W.dot (X) + b # ہر پیرامیٹر لاگت کے لئے تدریجی ڈبلیو آر ٹی کا حساب لگائیں۔ T.mean (T.sqr (y - Y)) میلان W = T.grad (لاگت = قیمت، wrt = W) میلان B = T.grad (قیمت = قیمت، wrt = b) اپ ڈیٹس = [[W، W - ढाری ڈبلیو) * 0.5] ، [بی ، بی - گریڈینٹی بی * 0.5]] ٹرین = theano.function (آدانوں = [X، Y]، آؤٹ پٹ = لاگت، اپ ڈیٹس = اپ ڈیٹس، اجازت_ ان پٹ_ ڈاؤن کاسٹ = ٹرو) i in xrange (0، 201): ٹرین (x_data ، y_data) W.get_value () ، b.get_value () پرنٹ کریں

مساوی ٹینسرفلو کوڈ:

tp کے طور پر tensorflow درآمد کریں NP بطور NP # درآمد کریں NumPy میں 100 جعلی ڈیٹا پوائنٹس بنائیں۔ x_data = np.float32 (np.random.rand (2، 100)) # بے ترتیب ان پٹ y_data = np.dot ([0.100، 0.200]، x_data) + 0.300 # ایک لکیری ماڈل بنائیں۔ b = tf.Wariable (tf.zeros ([1])) W = tf.Wariable (tf.random_uniform ([1، 2]، -1.0، 1.0)) y = tf.matmul (W، x_data) + b # مربع غلطیاں کم سے کم کریں۔ نقصان = tf.reduce_mean (tf.square (y - y_data)) optizer = tf.train. GradientDescentOptimizer (0.5) train = optizer.minimize (نقصان) # متغیرات کو شروع کرنے کے لئے۔ init = tf.initialize_all_variables () # گراف لانچ کریں sess = tf.Session () sess.run (init) # ہوائی جہاز کو فٹ کریں۔ ارنجینج (0 ، 201) میں قدم کے لئے: sess.run (ٹرین) اگر قدم٪ 20 == 0: پرنٹ قدم ، sess.run (W) ، sess.run (b) # سیکھتا بہترین فٹ W ہے: [[0.100 0.200]] ، بی: [0.300]

لمبائی وار دونوں ضابط the اخلاق تقریبا. قریب ہیں اسی طرح کی زیادہ فرق نہیں ہے۔ دو ایک جیسی پیدا ان پٹ اور ہدف کی آؤٹ پٹ کو بیان کرنے والے ارے۔ لیکن اگر ہماری نظر ماڈل انیلائزیشن پر ہے۔

ماڈل ابتدا:

# ٹینسرفلو b = tf.Wariable (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)، نام = 'b') W = theano.shared (numpy.random .uniform (-1.0، 1.0، (1، 2))، نام = 'W') y = W.dot (X) + b

جیسا کہ آپ یہاں دیکھ سکتے ہیں کہ ٹینسرفلو کو X اور Y متغیرات کے کسی خاص سلوک کی ضرورت نہیں ہے۔ دوسری طرف ، تیانو کو متغیرات کو یقینی بنانے کے ل an ایک اضافی کوشش کی ضرورت ہے علامتی آدانوں تقریب میں. بی اور ڈبلیو کی تعریف وضاحتی بھی ہے اور اچھی بھی۔

سیکھنا: اصلاح

# ٹینسر فلو نقصان = tf.reduce_mean (tf.square (y - y_data)) # (1) آپٹیمائزر = tf.train. GradientDescentOptimizer (0.5) # (2) ٹرین = آپٹائزر.کم کریں (نقصان) # (3) # تھیانو لاگت = T.mean (T.sqr (y - Y)) # (1) میلان ڈبلیو = T.grad (قیمت = لاگت، wrt = W) # (2) میلان بی = T.grad (لاگت = قیمت، wrt = b) # (2) اپ ڈیٹس = [[ڈبلیو ، ڈبلیو - گریڈینٹ ڈبلیو * ०.]] ، [بی ، بی - گریڈینٹ بی * ०.]]] # (2) ٹرین = تھیانو.فنکشن (ان پٹ = [ایکس ، وائی] ، آؤٹ پٹس = لاگت ، اپ ڈیٹس = اپ ڈیٹ ، اجازت_ان پٹ_ڈاؤنسٹ = سچ) # (3)

(1) کے لئے ایم ایس ای تھیانو بمقابلہ ٹینسرفلو کے لئے قریب قریب ایک ہی ہے۔

(2) کے لئے اصلاح کرنے والا یہ آسان اور آسان ہے کیونکہ یہ ٹینسورفلو کی صورت میں ملتا ہے ، لیکن تھیانو آپٹیمائزروں کو آگے بڑھاتے ہوئے کنٹرول کا ایک بہت بڑا سودا فراہم کرتا ہے حالانکہ یہ کافی لمبا اور تصدیق کی کوشش کو بڑھاتا ہے

(3) کے لئے تربیتی فنکشن کوڈ بھی اسی طرح کا ہے

ٹریننگ باڈی:

# ٹینسرفلو init = tf.initialize_all_variables () سیس = tf. سیشن () sess.run (init) میں xran قدم میں قدم کے لئے (0، 201): sess.run (ٹرین) # تھیانو for i in xrange (0، 201): ٹرین (x_data ، y_data) W.get_value () ، b.get_value () پرنٹ کریں

تربیت کا کوڈ تقریبا almost ایک جیسا ہی ہے ، لیکن سیشن آبجیکٹ میں گراف پر عمل درآمد کرنے کا طریقہ ہے تصوراتی طور پر کلینر تھیانو سے زیادہ

حتمی فعل: تھیانو بمقابلہ ٹینسرفلو

اختتامی نوٹ پر ، یہ کہا جاسکتا ہے کہ دونوں API کے پاس ایک ہے اسی طرح کا انٹرفیس . لیکن ٹینسورفلو نسبتا is ہے آسان یو استعمال کے طور پر یہ نگرانی اور ڈیبگنگ ٹولز کی ایک بہت فراہم کرتا ہے۔ تھیانو اندر لیڈ لیتا ہے استعمال اور رفتار ، لیکن ٹینسرفلو تعیناتی کے لئے بہتر موزوں ہے۔ کاغذی کام یا دستاویزات تھیانو ٹینسرفلو اور ٹینسرفلو سے زیادہ ایک نئی زبان ہے کیونکہ لوگوں کے پاس شروع کرنے کے لئے بہت سارے وسائل نہیں ہیں۔ اوپن سورس گہری لائبریریاں ہیں جیسے کیراس ، لاسگن اور بلاکس کے سب سے اوپر پر بنایا گیا تھیانو۔

میں امید کرتا ہوں کہ آپ کے مابین یہ فیصلہ کافی تھا کہ آپ کس فریم ورک کا انتخاب کریں ، چیک کریں ایڈوریکا کے ذریعہ ، ایک قابل اعتماد آن لائن سیکھنے والی کمپنی جس کی دنیا بھر میں 250،000 سے زیادہ مطمئن سیکھنے والوں کے نیٹ ورک ہیں۔ اس سرٹیفیکیشن کی تربیت کو صنعت کے پیشہ ور افراد نے صنعت کی ضروریات اور مطالبات کے مطابق ترتیب دیا ہے۔ آپ سوفٹ میکس فنکشن ، آٹوئنکوڈر نیورل نیٹ ورکس ، محدود بولٹزمان مشین (آر بی ایم) جیسے تصورات پر عبور حاصل کریں گے اور کیراس اور ٹی ایف لیرن جیسی لائبریریوں کے ساتھ کام کریں گے۔

ہمارے لئے ایک سوال ہے؟ براہ کرم اس کا تذکرہ 'تھیانو بمقابلہ ٹینسرفلو' کے تبصرے سیکشن میں کریں اور ہم آپ کو واپس ملیں گے۔