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

السؤال

نشر (معدل)

أحاول تنفيذ الكود التالي لكن يظهر لي هذا الخطأ:

import tensorflow as tf
msg = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(msg))
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-7-01569850c7c6> in <module>()
      1 import tensorflow as tf
      2 msg = tf.constant('Hello, TensorFlow!')
----> 3 sess = tf.Session()
      4 print(sess.run(msg))
AttributeError: module 'tensorflow' has no attribute 'Session'

ما المشكلة وما الحل؟ علماً أن نسخة تنسرفلو التي لدي هي 2.4

تم التعديل في بواسطة عامر ابراهيم

Recommended Posts

  • 1
نشر

بدءاً من نسخة تنسرفلو Tensorflow2.0 أصبح التنفيذ الافتراضي في تنسرفلو "Eager Execution" وهو مصطلح يشير إلى عملية تقييم العمليات على الفور، دون الانتظار لتشكيل ال Graph. أي يمكنك معرفة قيمة أي متغير أو ناتج أي عملية على الفور أما في النسخ السابقة لهذه النسخة كان التنفيذ الافتراضي للعمليات في تنسرفلو هو "Graph Execution" أي أن العمليات لايتم تقييمها حتى يتم إنشاء الجلسة بواسطة:

tf.Session().run()

أي لانكون قادرين على معرفة قيم المتغيرات حتى يتم تنفيذ ال Graph من أول عقدة فيه لآخر عقدة من خلال هذا الكود.
الآن أنت لديك نسخة 2.4 وتحاول استخدام Session التي لم يعد هناك حاجة لها فهي غير موجودة بعد الآن في تنسرفلو (بدءاً من 2.0). لذا لاداعي لاستخدام session ويمكنك عرض ناتج أي عملية مباشرةً كالتالي:

import tensorflow as tf
msg = tf.constant('Hello, TensorFlow!')
tf.print(msg)
# Hello, TensorFlow!

أما إذا كنت تريد أن تستخدم Session واعتماد ال Graph Execution فيمكنك تعطيل Eager Execution من خلال السطر التالي:

tf.compat.v1.disable_eager_execution()

وبالتالي يصبح الكود:

import tensorflow as tf
tf.compat.v1.disable_eager_execution()
hello = tf.constant('Hello, TensorFlow!')
sess = tf.compat.v1.Session()
print(sess.run(hello))

أو من خلال with:

import tensorflow as tf
with tf.compat.v1.Session() as sess:
    hello = tf.constant('hello world')
    print(sess.run(hello))

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...