MatrixDiagV3

الطبقة النهائية العامة MatrixDiagV3

تُرجع موترًا قطريًا مجمعًا بقيم قطرية مجمعة معينة.

يُرجع موترًا بمحتوياته في "قطري" مثل `k[0]`-th إلى `k[1]`-th قطري للمصفوفة، مع كل شيء آخر مبطن بـ "padding". يحدد `num_rows` و`num_cols` بُعد المصفوفة الأعمق للمخرجات. إذا لم يتم تحديد كليهما، تفترض العملية أن المصفوفة الأعمق مربعة وتستنتج حجمها من `k` والبعد الأعمق لـ `القطري`. إذا تم تحديد واحد منهم فقط، فإن العملية تفترض أن القيمة غير المحددة هي أصغر قيمة ممكنة بناءً على معايير أخرى.

دع "القطري" له أبعاد "r" `[I, J, ..., L, M, N]`. موتر الخرج له رتبة `r+1` بالشكل `[I, J, ..., L, M, num_rows, num_cols]` عندما يتم إعطاء قطري واحد فقط (`k` هو عدد صحيح أو `k[0] == ك[1]`). بخلاف ذلك، يكون لها رتبة `r` بالشكل `[I, J, ..., L, num_rows, num_cols]`.

البعد الثاني الأعمق لـ "القطري" له معنى مزدوج. عندما يكون `k` عدديًا أو `k[0] == k[1]`، يكون `M` جزءًا من حجم الدُفعة [I, J, ..., M]، ويكون موتر الإخراج:

output[i, j, ..., l, m, n]
   = diagonal[i, j, ..., l, n-max(d_upper, 0)] ; if n - m == d_upper
     padding_value                             ; otherwise
 
بخلاف ذلك، يتم التعامل مع `M` على أنه عدد أقطار المصفوفة في نفس الدفعة (`M = k[1]-k[0]+1`)، ويكون موتر الإخراج كما يلي:
output[i, j, ..., l, m, n]
   = diagonal[i, j, ..., l, diag_index, index_in_diag] ; if k[0] <= d <= k[1]
     padding_value                                     ; otherwise
 
حيث `d = n - m`، و`diag_index = [k] - d`، و`index_in_diag = n - max(d, 0) + offset`.

"الإزاحة" هي صفر إلا عندما تكون محاذاة القطر إلى اليمين.

offset = max_diag_len - diag_len(d) ; if (`align` in {RIGHT_LEFT, RIGHT_RIGHT
                                            and `d >= 0`) or
                                          (`align` in {LEFT_RIGHT, RIGHT_RIGHT}
                                            and `d <= 0`)
          0                          ; otherwise
 }
حيث `diag_len(d) = min(cols - max(d, 0),rows + min(d, 0))`.

على سبيل المثال:

# The main diagonal.
 diagonal = np.array([[1, 2, 3, 4],            # Input shape: (2, 4)
                      [5, 6, 7, 8]])
 tf.matrix_diag(diagonal) ==> [[[1, 0, 0, 0],  # Output shape: (2, 4, 4)
                                [0, 2, 0, 0],
                                [0, 0, 3, 0],
                                [0, 0, 0, 4]],
                               [[5, 0, 0, 0],
                                [0, 6, 0, 0],
                                [0, 0, 7, 0],
                                [0, 0, 0, 8]]]
 
 # A superdiagonal (per batch).
 diagonal = np.array([[1, 2, 3],  # Input shape: (2, 3)
                      [4, 5, 6]])
 tf.matrix_diag(diagonal, k = 1)
   ==> [[[0, 1, 0, 0],  # Output shape: (2, 4, 4)
         [0, 0, 2, 0],
         [0, 0, 0, 3],
         [0, 0, 0, 0]],
        [[0, 4, 0, 0],
         [0, 0, 5, 0],
         [0, 0, 0, 6],
         [0, 0, 0, 0]]]
 
 # A tridiagonal band (per batch).
 diagonals = np.array([[[0, 8, 9],  # Input shape: (2, 2, 3)
                        [1, 2, 3],
                        [4, 5, 0]],
                       [[0, 2, 3],
                        [6, 7, 9],
                        [9, 1, 0]]])
 tf.matrix_diag(diagonals, k = (-1, 1))
   ==> [[[1, 8, 0],  # Output shape: (2, 3, 3)
         [4, 2, 9],
         [0, 5, 3]],
        [[6, 2, 0],
         [9, 7, 3],
         [0, 1, 9]]]
 
 # LEFT_RIGHT alignment.
 diagonals = np.array([[[8, 9, 0],  # Input shape: (2, 2, 3)
                        [1, 2, 3],
                        [0, 4, 5]],
                       [[2, 3, 0],
                        [6, 7, 9],
                        [0, 9, 1]]])
 tf.matrix_diag(diagonals, k = (-1, 1), align="LEFT_RIGHT")
   ==> [[[1, 8, 0],  # Output shape: (2, 3, 3)
         [4, 2, 9],
         [0, 5, 3]],
        [[6, 2, 0],
         [9, 7, 3],
         [0, 1, 9]]]
 
 # Rectangular matrix.
 diagonal = np.array([1, 2])  # Input shape: (2)
 tf.matrix_diag(diagonal, k = -1, num_rows = 3, num_cols = 4)
   ==> [[0, 0, 0, 0],  # Output shape: (3, 4)
        [1, 0, 0, 0],
        [0, 2, 0, 0]]
 
 # Rectangular matrix with inferred num_cols and padding_value = 9.
 tf.matrix_diag(diagonal, k = -1, num_rows = 3, padding_value = 9)
   ==> [[9, 9],  # Output shape: (3, 2)
        [1, 9],
        [9, 2]]
 
 

فئات متداخلة

فصل MatrixDiagV3.Options السمات الاختيارية لـ MatrixDiagV3

الثوابت

خيط OP_NAME اسم هذه العملية كما هو معروف بواسطة محرك TensorFlow الأساسي

الأساليب العامة

ثابت MatrixDiagV3.Options
محاذاة (محاذاة السلسلة)
الإخراج <T>
كإخراج ()
إرجاع المقبض الرمزي للموتر.
ثابت <T يمتد TType > MatrixDiagV3 <T>
إنشاء (نطاق النطاق ، المعامل <T> قطري، المعامل < TInt32 > k، المعامل < TInt32 > numRows، المعامل < TInt32 > numCols، المعامل <T> paddingValue، الخيارات... خيارات)
طريقة المصنع لإنشاء فئة تغلف عملية MatrixDiagV3 جديدة.
الإخراج <T>
الإخراج ()
لديه رتبة `r+1` عندما يكون `k` عددًا صحيحًا أو `k[0] == k[1]`، رتبة `r` بخلاف ذلك.

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

org.tensorflow.op.RawOp
منطقية نهائية
يساوي (كائن كائن)
كثافة العمليات النهائية
عملية
المرجع ()
قم بإرجاع وحدة الحساب هذه Operation واحدة.
السلسلة النهائية
منطقية
يساوي (كائن arg0)
الدرجة النهائية<?>
الحصول على كلاس ()
كثافة العمليات
رمز التجزئة ()
الفراغ النهائي
إعلام ()
الفراغ النهائي
إعلام الكل ()
خيط
إلى السلسلة ()
الفراغ النهائي
انتظر (طويل arg0، int arg1)
الفراغ النهائي
انتظر (طويل arg0)
الفراغ النهائي
انتظر ()
org.tensorflow.op.Op
بيئة التنفيذ المجردة
بيئى ()
قم بإرجاع بيئة التنفيذ التي تم إنشاء هذه العملية فيها.
عملية مجردة
المرجع ()
قم بإرجاع وحدة الحساب هذه Operation واحدة.
org.tensorflow.Operand
إخراج مجردة <T>
كإخراج ()
إرجاع المقبض الرمزي للموتر.
مجردة T
الموتر ()
إرجاع الموتر في هذا المعامل.
الشكل المجرد
شكل ()
تُرجع الشكل (ربما المعروف جزئيًا) للموتر المشار إليه في Output هذا المعامل.
فئة مجردة <T>
يكتب ()
إرجاع نوع الموتر لهذا المعامل
org.tensorflow.ndarray.Shaped
كثافة العمليات مجردة
الشكل المجرد
شكل ()
مجردة طويلة
مقاس ()
يحسب ويعيد الحجم الإجمالي لهذه الحاوية بعدد القيم.

الثوابت

السلسلة النهائية الثابتة العامة OP_NAME

اسم هذه العملية كما هو معروف بواسطة محرك TensorFlow الأساسي

القيمة الثابتة: "MatrixDiagV3"

الأساليب العامة

محاذاة MatrixDiagV3.Options الثابتة العامة (محاذاة السلسلة)

حدود
محاذاة بعض الأقطار أقصر من `max_diag_len` وتحتاج إلى الحشو. `align` عبارة عن سلسلة تحدد كيفية محاذاة الأقطار الفائقة والأقطار الفرعية، على التوالي. هناك أربع محاذاة محتملة: "RIGHT_LEFT" (افتراضي)، و"LEFT_RIGHT"، و"LEFT_LEFT"، و"RIGHT_RIGHT". يقوم "RIGHT_LEFT" بمحاذاة الأقطار الفائقة إلى اليمين (وسادات الصف اليسرى) والأقطار الفرعية إلى اليسار (وسادات الصف اليمنى). إنه تنسيق التعبئة الذي يستخدمه LAPACK. يستخدم cuSPARSE "LEFT_RIGHT"، وهو المحاذاة المعاكسة.

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

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

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

إنشاء MatrixDiagV3 <T> ثابت عام (نطاق النطاق ، المعامل <T> قطري، المعامل < TInt32 > k، المعامل < TInt32 > numRows، المعامل < TInt32 > numCols، المعامل <T> قيمة الحشو، الخيارات... خيارات)

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

حدود
نِطَاق النطاق الحالي
قطري الرتبة `r`، حيث `r >= 1`
ك الإزاحة القطرية. القيمة الموجبة تعني القطر الفائق، 0 تشير إلى القطر الرئيسي، والقيمة السالبة تعني الأقطار الفرعية. يمكن أن يكون `k` عددًا صحيحًا واحدًا (لقطر واحد) أو زوجًا من الأعداد الصحيحة التي تحدد الأطراف المنخفضة والعالية لنطاق المصفوفة. يجب ألا يكون `k[0]` أكبر من `k[1]`.
numRows عدد صفوف مصفوفة الإخراج. إذا لم يتم توفيره، فإن العملية تفترض أن مصفوفة الإخراج هي مصفوفة مربعة وتستنتج حجم المصفوفة من k والبعد الأعمق لـ "قطري".
numCols عدد أعمدة مصفوفة الإخراج. إذا لم يتم توفيره، فإن العملية تفترض أن مصفوفة الإخراج هي مصفوفة مربعة وتستنتج حجم المصفوفة من k والبعد الأعمق لـ "قطري".
قيمة الحشو الرقم المراد ملء المنطقة خارج النطاق القطري المحدد به. الافتراضي هو 0.
خيارات يحمل قيم السمات الاختيارية
المرتجعات
  • مثيل جديد من MatrixDiagV3

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

لديه رتبة `r+1` عندما يكون `k` عددًا صحيحًا أو `k[0] == k[1]`، رتبة `r` بخلاف ذلك.