تحذير: تم إهمال واجهة برمجة التطبيقات هذه وستتم إزالتها في إصدار مستقبلي من TensorFlow بعد استقرار الاستبدال .

Einsum

العامة النهائية فئة Einsum

انكماش الموتر وفقا لاتفاقية الجمع لأينشتاين.

ينفذ تقليص وخفض تنسور معمم. يجب أن يحتوي كل Tensor على إدخال منخفض مقابل يظهر في الجانب الأيسر مفصول بفاصلة من المعادلة. يتكون الجانب الأيمن من المعادلة من المخرجات المنخفضة. يجب أن تتكون رموز الإدخال والمنخفض الناتج من صفر أو أكثر من تسميات المحور المسماة وعلى الأكثر علامة حذف واحدة (`...`).

قد تكون تسميات المحور المسماة أي حرف مفرد بخلاف تلك التي لها معنى خاص ، أي `، .->`. سلوك هذا المرجع هو غير معرف إذا تلقى معادلة سيئة التنسيق ؛ نظرًا لأن التحقق يتم في وقت إنشاء الرسم البياني ، فإننا نتجاهل عمليات التحقق من صحة التنسيق في وقت التشغيل.

ملاحظة: هذا المرجع لا يقصد أن يتم استدعاؤه من قبل المستخدم ؛ بدلاً من ذلك ، يجب على المستخدمين الاتصال tf.einsum مباشرةً. إنه Op مخفي يستخدمه tf.einsum .

يتم تطبيق العمليات على المدخلات وفقًا للقواعد التالية:

(أ) الأقطار المعممة: بالنسبة لأبعاد الإدخال المقابلة لتسميات المحاور التي تظهر أكثر من مرة في نفس الإدخال المنخفض ، فإننا نأخذ القطر المعمم (`k` الأبعاد). على سبيل المثال ، في المعادلة `iii-> i` مع شكل الإدخال` [3 ، 3 ، 3] `، سيتكون القطر المعمم من عناصر` 3` في الفهارس `(0 ، 0 ، 0)` ، `(1 ، 1 ، 1) `و '(2 ، 2 ، 2)` لإنشاء موتر للشكل `[3]`.

(ب) التخفيض: المحاور المقابلة للتسميات التي تظهر فقط في إدخال منخفض واحد ولكن ليس في مخرجات منخفضة يتم جمعها قبل انكماش Tensor. على سبيل المثال ، في المعادلة "ab، bc-> b" ، تمثل تسميات المحور "أ" و "ج" تسميات محور التخفيض.

(ج) أبعاد الدُفعات: المحاور المقابلة للتسميات التي تظهر في كل من نصوص الإدخال وأيضًا في المخرجات المنخفضة تشكل أبعاد الدُفعة في تقلص Tensor. تتوافق أيضًا تسميات المحور التي لم يتم تسميتها والتي تتوافق مع علامة القطع (`...`) مع أبعاد الدُفعة. على سبيل المثال ، بالنسبة للمعادلة التي تشير إلى مضاعفة مصفوفة الدُفعة ، `bij، bjk-> bik` ، فإن تسمية المحور` b` تتوافق مع بُعد الدُفعة.

(د) الانكماش: في حالة einsum الثنائية ، يتم التعاقد مع المحاور المقابلة للملصقات التي تظهر في مدخلين مختلفين (وليس في المخرجات) ضد بعضها البعض. بالنظر إلى معادلة ضرب مصفوفة الدُفعات مرة أخرى (`bij، bjk-> bik`) ، فإن تسمية المحور المتعاقد عليها هي` j`.

(هـ) توسيع قطري: إذا كانت المخرجات تحتوي على تسميات متكررة (صريحة) للمحور ، فسيتم تطبيق العملية العكسية لـ (أ). على سبيل المثال ، في المعادلة `i-> iii` ، وشكل الإدخال` [3] `، يكون ناتج الشكل` [3 ، 3 ، 3] `كل الأصفار ، باستثناء القطر (المعمم) المملوء بـ القيم من المدخلات. ملاحظة: هذه العملية غير مدعومة من قبل "np.einsum" أو tf.einsum ؛ يتم توفيره لتمكين حساب التدرج الرمزي لـ tf.einsum .

يجب أن تحتوي نصوص المخرجات على تسميات تظهر في واحد على الأقل من نصوص الإدخال. علاوة على ذلك ، يجب أن تكون كافة الأبعاد التي يتم تعيينها لنفس تسمية المحور متساوية.

قد يحتوي أي من نصوص المدخلات والمخرجات على علامة حذف واحدة على الأكثر (`...`). يتم تعيين هذه القطع في مقابل أبعاد لا تتوافق مع أي تسمية محور مسمى. إذا احتوى مُدخلان على علامة حذف ، فسيتم بثهما وفقًا [قواعد] البث القياسي NumPy (http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html).

يتم وضع الأبعاد التي يتم بثها في الموقع المقابل من علامة القطع في مخرجات الإخراج. إذا كانت الأبعاد التي يتم بثها غير فارغة ولم تحتوي المخرجات المنخفضة على علامات حذف ، فسيتم إظهار خطأ InvalidArgument.

الطرق العامة

الإخراج <T>
asOutput ()
إرجاع المقبض الرمزي للموتر.
ثابت <T> أينسوم <T>
إنشاء ( نطاق النطاق ، قابل للتكرار < عامل التشغيل <T>> المدخلات ، معادلة السلسلة)
طريقة المصنع لإنشاء فئة تغلف عملية Einsum جديدة.
الإخراج <T>
الإخراج ()
موتر الإخراج بالشكل يعتمد على "المعادلة".

الطرق الموروثة

الطرق العامة

الإخراج العام <T> كإخراج ()

إرجاع المقبض الرمزي للموتر.

المدخلات لعمليات TensorFlow هي مخرجات عملية TensorFlow أخرى. تستخدم هذه الطريقة للحصول على مقبض رمزي يمثل حساب المدخلات.

Einsum العامة الثابتة <T> إنشاء ( نطاق النطاق ، قابل للتكرار <عامل التشغيل <T>> المدخلات ، معادلة السلسلة)

طريقة المصنع لإنشاء فئة تغلف عملية Einsum جديدة.

المعلمات
مجال النطاق الحالي
المدخلات قائمة الموتر 1 أو 2.
معادلة سلسلة تصف عملية جمع آينشتاين ؛ بصيغة np.einsum.
عائدات
  • مثيل جديد لـ Einsum

الإخراج العام <T> الإخراج ()

موتر الإخراج بالشكل يعتمد على "المعادلة".