عامر ابراهيم نشر 5 سبتمبر 2021 أرسل تقرير نشر 5 سبتمبر 2021 أحاول الحصول على أبعاد ال tensor: x = tf.get_variable("x", [100]) # عندما أقوم بطباعة أبعادها print( tf.shape(x) ) # يعطيني خرجاً # Tensor("Shape:0", shape=(1,), dtype=int32) لكن الخرج المتوقع هو (100) وليس كما أعطاني في الخرج لماذا؟ 1 اقتباس
1 Ali Haidar Ahmad نشر 5 سبتمبر 2021 أرسل تقرير نشر 5 سبتمبر 2021 (معدل) حسب التوثيق "في TensorFlow ، يكون للتنسر shape ستاتيكي (مستدل) وشكل ديناميكي (حقيقي). يمكن معرفة ال shape الستاتيكي باستخدام الدالة tf.Tensor.get_shape: يُستدل على هذا ال shape من العمليات التي تم استخدامها لإنشاء هذا التنسر، وقد يكون مكتملًا جزئياً. إذا لم يتم تحديد ال shape الستاتيكي بالكامل، فيمكن تحديد الشكل الديناميكي لـ Tensor t من خلال tf.shape (t)." حسناً ربما لم تفهم شيئ. تابع معي.. في بعض الأحيان ، يعتمد شكل التنسر على قيمة يتم حسابها في زمن التنفيذ. لنأخذ المثال التالي ، يحيث x هو متجه tf.placeholder بأربعة عناصر: x = tf.placeholder(tf.int32, shape=[4]) x.get_shape() # (4,) خرج x.get_shape يمثل ال shape الستاتيكي لـ x ، وتعني (4 ،) أنه متجه بطول 4. الآن دعنا نطبق العملية التالية على x: y, _ = tf.unique(x) y.get_shape() # (?,) (؟ ،) تعني أن y متجه بطول غير معروف. لماذا هو مجهول؟ تُرجع tf.unique (x) القيم الفريدة من x ، وقيم x غير معروفة لأنها tf.placeholder ، لذلك لا تحتوي على قيمة حتى تقوم بإدخالها. الآن في حالة قمت بإدخال قيمتين مختلفتين: sess = tf.Session() sess.run(y, feed_dict={x: [0, 1, 2, 3]}).shape # (4,) sess.run(y, feed_dict={x: [0, 0, 0, 0]}).shape # (1,) إذاً الموتر يمكن أن يكون له شكل ستاتيكي وديناميكي مختلفين. دائماً ما يكون الشكل الديناميكي محدداً تماماً (ليس لها أبعاد وهذا مايشار له ب "؟") لكن الشكل الستاتيكي يمكن أن يكون أقل تحديداً. وهذا ما يسمح لـ TensorFlow بدعم عمليات مثل tf.unique و tf.dynamic_partition، والتي يمكن أن تحتوي على مخرجات متغيرة الحجم ، وتستخدم في التطبيقات المتقدمة. الآن اعتقد أن كل شيء واضح والأبعاد التي تبحث عنها أنت هي الأبعاد الستاتيكية لذا استخدم الدالة get_shape تم التعديل في 5 سبتمبر 2021 بواسطة Ali Haidar Ahmad 1 اقتباس
السؤال
عامر ابراهيم
أحاول الحصول على أبعاد ال tensor:
لكن الخرج المتوقع هو (100) وليس كما أعطاني في الخرج لماذا؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.