عامر ابراهيم نشر 4 سبتمبر 2021 أرسل تقرير نشر 4 سبتمبر 2021 ماهو الهدف من استخدام tf.identity في تنسرفلو Tensorflow، لم أفهم الغرض منه، هل يمكن أن يتم توضيح الفائدة منه بمثال؟ 1 اقتباس
1 Ali Haidar Ahmad نشر 4 سبتمبر 2021 أرسل تقرير نشر 4 سبتمبر 2021 حسناً.. افترض أنك ترغب في تشغيل operator معين في كل مرة يتم فيها تقييم متغير معين. على سبيل المثال ، لنفترض أنك ترغب في إضافة واحد إلى c في كل مرة يتم فيها تقييم المتغير k. قد يبدو لك أن هذا الكود سيعمل: c = tf.Variable(0.0) cp = tf.assign_add(c, 1) with tf.control_dependencies([cp]): k = c init = tf.initialize_all_variables() with tf.Session() as session: init.run() for i in xrange(4): print(k.eval()) #0, 0, 0, 0 # لكن كما تلاحظ لم ينجح الأمر وذلك لأننا بحاجة إلى إضافة عقدة جديدة إلى الرسم البياني داخل كتلة control_dependencies. لذلك في مثل هكذا حالة يمكننا أن نستخدم tf.identity حيث يضيف عقدة وهمية: c = tf.Variable(0.0) cp = tf.assign_add(c, 1) with tf.control_dependencies([cp]): k = tf.identity(c) init = tf.initialize_all_variables() with tf.Session() as session: init.run() for i in xrange(4): print(k.eval()) # 1, 2, 3, 4 وبشكل عام هو مفيد أيضاً عندما تريد نقل tensor بين الأجهزة (مثلاً ، من ال GPU إلى ال CPU). حيث يضيف op عقد الإرسال / الاستلام إلى الغراف ، مما يؤدي إلى إنشاء نسخة عندما تختلف أجهزة الإدخال والإخراج. إن السلوك الافتراضي هو أن تتم إضافة عقد الإرسال / الاستلام ضمنياً عندما تحدث العملية على جهاز مختلف ولكن يمكنك تخيل بعض المواقف (خاصة في الإعدادات multi-threaded/distributed ) عندما يكون من المفيد جلب قيمة المتغير عدة مرات خلال عملية تنفيذ واحدة للجلسة. يسمح tf.identity بمزيد من التحكم فيما يتعلق بوقت قراءة القيمة من الجهاز المصدر. 1 اقتباس
السؤال
عامر ابراهيم
ماهو الهدف من استخدام tf.identity في تنسرفلو Tensorflow، لم أفهم الغرض منه، هل يمكن أن يتم توضيح الفائدة منه بمثال؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.