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

MatrixSetDiagV3

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

إرجاع موتر مصفوفة مجمعة بقيم قطرية مجمعة جديدة.

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

يحتوي "الإدخال" على أبعاد "r + 1" `[I ، J ، ... ، L ، M ، N]`. عندما يكون `k` عدديًا أو` k [0] == k [1] `، يكون لـ` قطري` أبعاد `r`` [I، J، ...، L، max_diag_len] `. بخلاف ذلك ، يكون لها أبعاد `r + 1`` [I، J، ...، L، num_diags، max_diag_len] `. "num_diags" هو عدد الأقطار ، `num_diags = k [1] - k [0] + 1`. "max_diag_len" هو أطول قطري في النطاق `[k [0]، k [1]]` ، `max_diag_len = min (M + min (k [1]، 0)، N + min (-k [0] ، 0)) `

الناتج هو موتر من الرتبة `k + 1` بأبعاد` [I، J، ...، L، M، N] `. إذا `k` غير العددية أو` ك [0] == ك [1] `:

output[i, j, ..., l, m, n]
   = diagonal[i, j, ..., l, n-max(k[1], 0)] ; if n - m == k[1]
     input[i, j, ..., l, m, n]              ; otherwise
 
خلاف ذلك،
output[i, j, ..., l, m, n]
   = diagonal[i, j, ..., l, diag_index, index_in_diag] ; if k[0] <= d <= k[1]
     input[i, j, ..., l, m, n]                         ; otherwise
 
حيث` د = ن - m`، `diag_index = ك [1] - 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.
 input = np.array([[[7, 7, 7, 7],              # Input shape: (2, 3, 4)
                    [7, 7, 7, 7],
                    [7, 7, 7, 7]],
                   [[7, 7, 7, 7],
                    [7, 7, 7, 7],
                    [7, 7, 7, 7]]])
 diagonal = np.array([[1, 2, 3],               # Diagonal shape: (2, 3)
                      [4, 5, 6]])
 tf.matrix_set_diag(input, diagonal)
   ==> [[[1, 7, 7, 7],  # Output shape: (2, 3, 4)
         [7, 2, 7, 7],
         [7, 7, 3, 7]],
        [[4, 7, 7, 7],
         [7, 5, 7, 7],
         [7, 7, 6, 7]]]
 
 # A superdiagonal (per batch).
 tf.matrix_set_diag(input, diagonal, k = 1)
   ==> [[[7, 1, 7, 7],  # Output shape: (2, 3, 4)
         [7, 7, 2, 7],
         [7, 7, 7, 3]],
        [[7, 4, 7, 7],
         [7, 7, 5, 7],
         [7, 7, 7, 6]]]
 
 # A band of diagonals.
 diagonals = np.array([[[0, 9, 1],  # Diagonal shape: (2, 4, 3)
                        [6, 5, 8],
                        [1, 2, 3],
                        [4, 5, 0]],
                       [[0, 1, 2],
                        [5, 6, 4],
                        [6, 1, 2],
                        [3, 4, 0]]])
 tf.matrix_set_diag(input, diagonals, k = (-1, 2))
   ==> [[[1, 6, 9, 7],  # Output shape: (2, 3, 4)
         [4, 2, 5, 1],
         [7, 5, 3, 8]],
        [[6, 5, 1, 7],
         [3, 1, 6, 2],
         [7, 4, 2, 4]]]
 
 # LEFT_RIGHT alignment.
 diagonals = np.array([[[9, 1, 0],  # Diagonal shape: (2, 4, 3)
                        [6, 5, 8],
                        [1, 2, 3],
                        [0, 4, 5]],
                       [[1, 2, 0],
                        [5, 6, 4],
                        [6, 1, 2],
                        [0, 3, 4]]])
 tf.matrix_set_diag(input, diagonals, k = (-1, 2), align="LEFT_RIGHT")
   ==> [[[1, 6, 9, 7],  # Output shape: (2, 3, 4)
         [4, 2, 5, 1],
         [7, 5, 3, 8]],
        [[6, 5, 1, 7],
         [3, 1, 6, 2],
         [7, 4, 2, 4]]]
 
 

فئات متداخلة

صف دراسي MatrixSetDiagV3.Options سمات اختيارية ل MatrixSetDiagV3

الطرق العامة

ثابت MatrixSetDiagV3.Options
محاذاة (محاذاة سلسلة)
الانتاج <T>
asOutput ()
إرجاع المقبض الرمزي للموتر.
ثابت <T> MatrixSetDiagV3 <T>
إنشاء ( نطاق نطاق، المعامل <T> المدخلات، و المعامل <T> قطري، المعامل <صحيح> ك، خيارات ... خيارات)
طريقة المصنع لإنشاء فئة التفاف لعملية MatrixSetDiagV3 جديدة.
الانتاج <T>
الانتاج ()
الترتيب `r + 1` ، مع` شكل الإخراج = إدخال. شكل`.

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

الطرق العامة

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

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

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

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

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

ساكنة العام MatrixSetDiagV3 <T> إنشاء ( نطاق نطاق، المعامل <T> المدخلات، و المعامل <T> قطري، المعامل <صحيح> ك، خيارات ... خيارات)

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

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

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

الترتيب `r + 1` ، مع` شكل الإخراج = إدخال. شكل`.