عامر ابراهيم نشر 30 أغسطس 2021 أرسل تقرير نشر 30 أغسطس 2021 ماهو الفرق بين tf.Session و tf.graph؟ هل من الممكن أن يشرحهما لي أحد؟ اقتباس
1 Ali Haidar Ahmad نشر 30 أغسطس 2021 أرسل تقرير نشر 30 أغسطس 2021 الغراف Graph يقوم بتمثيل العمليات والمتغيرات التي قمت بتعريفها في الكود وتحديد العلاقات بينها على شكل عقد تشكل مجتمعةً البيان أي ال Graph . وهو لا يحسب أي شيء، ولا يحتفظ بأي قيم، هو فقط يحدد العمليات التي حددتها في التعليمات البرمجية الخاصة بك (الكود الذي كتبته). أما Session تسمح بتنفيذ ال graph أو جزء منه إذ يقوم بتنفيذ كل العقد node الموجودة في البيان وينفذ العمليات فيه ويحمل القيم الفعلية للنتائج والمتغيرات الوسيطية . ويقوم بتخصيص الموارد (على جهاز واحد أو أكثر) لتنفيذ هذه المهام. مثلاً هنا لدينا غراف مع 3 متغيرات و 3 عمليات: graph = tf.Graph() with graph.as_default(): variable = tf.Variable(42, name='foo') # تعريف متغير initialize = tf.global_variables_initializer() # يعين القيمة الأولية 42 لهذا المتغير assign = variable.assign(13) # يعين القيمة الجديدة 13 لهذا المتغير أيضاً تجدر الملاحظة إلى أنك لست مجبراً على كتابة أول سطرين، فتنشرفلو تقوم بإنشاء غراف افتراضي لك (أي لست مضطراً لتعريفه بنفسك). الآن لتنفيذ أي من العمليات الثلاث المحددة، نحتاج إلى إنشاء جلسة لهذا البيان. حيث ستخصص الجلسة أيضاً ذاكرة لتخزين القيمة الحالية للمتغير variable. with tf.Session(graph=graph) as sess: sess.run(initialize) sess.run(assign) print(sess.run(variable)) # Output: 13 أيضاً يجب أن تدرك أن قيمة المتغير صالحة فقط خلال جلسة واحدة. إذا حاولنا الاستعلام عن القيمة بعد ذلك في جلسة ثانية، فسيقوم TensorFlow بإعطاء خطأ لأن المتغير لم تتم تهيئته هناك. with tf.Session(graph=graph) as sess: print(sess.run(variable)) # Error: Attempting to use uninitialized value foo وبالطبع ، يمكننا استخدام البيان في أكثر من جلسة، حيث علينا فقط إعادة تهيئة المتغيرات مرة أخرى. لكن ستكون القيم في الجلسة الجديدة مستقلة تماماً عن الأولى: with tf.Session(graph=graph) as sess: sess.run(initialize) print(sess.run(variable)) # Output: 42 1 اقتباس
السؤال
عامر ابراهيم
ماهو الفرق بين tf.Session و tf.graph؟ هل من الممكن أن يشرحهما لي أحد؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.