اذهب إلى المحتوى
  • 0

كيف أقوم بإضافة شرط if إلى البيان Graph في تنسرفلو Tensorflow

عامر ابراهيم

السؤال

أحاول تطبيق شرط if على البيان التالي لكنه لاينجح، وفي الواقع توقعت أنه لن ينجح لذا هل هناك طريقة لإضافة شرط if؟ هذا هو الكود الخاص بي:

data = tensorflow.placeholder(shape=[None, ins_size**2*3])
wights = tensorflow.Variable(tensorflow.zeros([ins_size**2*3,label_option]))
bias = tensorflow.Variable(tensorflow.zeros([label_option]))
if tensorflow.placeholder(shape=[1, 1]) > 0:
    pred = tensorflow.nn.softmax(tensorflow.matmul(data, wights) + bias)
else:
    pred = tensorflow.nn.softmax(tensorflow.matmul(data, wights) - bias) 

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

الغراف يبقى عبارة عن كود ليس له أي مساحة في الذاكرة أو أي موارد أي مجرد تعليمات إلى أن يتم بناؤه من خلال ال Session. لذا توقعك في مكانه فلايمكننا استخدام if منطقياً هنا (وليس قواعدياً)، لأن الشرط سيتم تقييمه عند بناء الغراف بينما أنت تريد أن يعتمد الشرط على القيمة التي يتم تغذيتها للعنصر النائب placeholder  في زمن التشغيل runtime. لذا فاستخدامك ل if هنا سيؤدي دوماً لاختيار الفرع الأول ل if لأن الشرط الخاص بك سيتم تقييمه على tensor  أي 0<tensor  أي دوماً True.
لذا توفر لنا تنسرفلو الدالة tf.cond للقيام بهذا الأمر  بالشكل الصحيح كمايلي. حيث يقوم بتقييم أحد فرعين، اعتماداً على الحالة المنطقية. لتوضيح كيفية استخدامه، سأعيد كتابة الكود:

data = tensorflow.placeholder(shape=[None, ins_size**2*3])
wights = tensorflow.Variable(tensorflow.zeros([ins_size**2*3,label_option]))
bias = tensorflow.Variable(tensorflow.zeros([label_option]))
yourcond=tensorflow.placeholder(shape=[1, 1])
#lambda نمرر لها الشرط والفرعين من خلال 
pred = tensorflow.cond(yourcond > 0, lambda: tensorflow.matmul(data, wights) + bias,
					tensorflow.matmul(data, wights) - bias)

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...