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

MatrixDiagV3

الجمهور MatrixDiagV3 الدرجة النهائية

إرجاع موتر قطري مجمّع بقيم قطرية مجمعة معينة.

إرجاع موتر بمحتويات `قطري` كـ` k [0] `-th إلى` k [1] `- الأقطار من مصفوفة ، مع كل شيء آخر مبطن بـ` padding`. يحدد "عدد_الصفوف" و "عدد_المكونات" أبعاد المصفوفة الداخلية للمخرجات. إذا لم يتم تحديد كلاهما ، يفترض المرجع أن المصفوفة الداخلية مربعة ويستدل حجمها من "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` غير العددية أو` ك [0] == ك [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 = ك [1] كيلو [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
 
حيث `د = n - m` و `diag_index = [k] - d` و` index_in_diag = n - max (d، 0) + offset`.

"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 (د) = دقيقة (الأكواد - ماكس (د، 0)، الصفوف + دقيقة (د، 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

الطرق العامة

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

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

الطرق العامة

ساكنة العامة MatrixDiagV3.Options محاذاة (محاذاة سلسلة)

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

العام الناتج <T> asOutput ()

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

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

ساكنة العام MatrixDiagV3 <T> إنشاء ( نطاق نطاق، المعامل <T> قطري، المعامل <صحيح> ك، المعامل <صحيح> numRows، المعامل <صحيح> numCols، المعامل <T> paddingValue، خيارات ... خيارات)

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

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

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

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