تدفق التوتر:: العمليات:: ماتريكس دياجV2
#include <array_ops.h>
تُرجع موترًا قطريًا مجمعًا بقيم قطرية مجمعة معينة.
ملخص
يُرجع موترًا بمحتوياته بشكل diagonal
مثل k[0]
-th إلى k[1]
-th أقطار المصفوفة، مع كل شيء آخر مبطن padding
. تحدد num_rows
و num_cols
بُعد المصفوفة الأعمق للمخرجات. إذا لم يتم تحديد كلاهما، تفترض العملية أن المصفوفة الأعمق مربعة وتستنتج حجمها من k
والبعد الأعمق diagonal
. إذا تم تحديد واحد منهم فقط، فإن العملية تفترض أن القيمة غير المحددة هي أصغر قيمة ممكنة بناءً على معايير أخرى.
دع diagonal
له أبعاد r
[I, J, ..., L, M, N]
. موتر الخرج له رتبة r+1
بالشكل [I, J, ..., L, M, num_rows, num_cols]
عندما يتم إعطاء قطري واحد فقط ( k
هو عدد صحيح أو k[0] == k[1]
) . بخلاف ذلك، لها رتبة r
بالشكل [I, J, ..., L, num_rows, num_cols]
.
البعد الثاني الأعمق diagonal
له معنى مزدوج. عندما يكون 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[1] - d
و index_in_diag = n - max(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 band of diagonals. diagonals = np.array([[[1, 2, 3], # Input shape: (2, 2, 3) [4, 5, 0]], [[6, 7, 9], [9, 1, 0]]]) tf.matrix_diag(diagonals, k = (-1, 0)) ==> [[[1, 0, 0], # Output shape: (2, 3, 3) [4, 2, 0], [0, 5, 3]], [[6, 0, 0], [9, 7, 0], [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]]
الحجج:
- النطاق: كائن النطاق
- قطري: الرتبة
r
، حيثr >= 1
- k: الإزاحة القطرية. القيمة الموجبة تعني القطر الفائق، 0 تشير إلى القطر الرئيسي، والقيمة السالبة تعني الأقطار الفرعية. يمكن أن يكون
k
عددًا صحيحًا واحدًا (لقطر واحد) أو زوجًا من الأعداد الصحيحة التي تحدد الأطراف المنخفضة والعالية لنطاق المصفوفة. يجب ألا يكونk[0]
أكبر منk[1]
. - num_rows: عدد صفوف مصفوفة الإخراج. إذا لم يتم توفيره، فإن المرجع يفترض أن مصفوفة الإخراج هي مصفوفة مربعة ويستنتج حجم المصفوفة من k والبعد الأعمق
diagonal
. - num_cols: عدد أعمدة مصفوفة الإخراج. إذا لم يتم توفيره، فإن المرجع يفترض أن مصفوفة الإخراج هي مصفوفة مربعة ويستنتج حجم المصفوفة من k والبعد الأعمق
diagonal
. - قيمة الحشو: الرقم المراد ملء المنطقة خارج النطاق القطري المحدد به. الافتراضي هو 0.
العوائد:
-
Output
: له الرتبةr+1
عندما يكونk
عددًا صحيحًا أوk[0] == k[1]
، والرتبةr
بخلاف ذلك.
البنائين والمدمرين | |
---|---|
MatrixDiagV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input diagonal, :: tensorflow::Input k, :: tensorflow::Input num_rows, :: tensorflow::Input num_cols, :: tensorflow::Input padding_value) |
الصفات العامة | |
---|---|
operation | |
output |
الوظائف العامة | |
---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const |
الصفات العامة
عملية
Operation operation
الإخراج
::tensorflow::Output output
الوظائف العامة
ماتريكس دياجV2
MatrixDiagV2( const ::tensorflow::Scope & scope, ::tensorflow::Input diagonal, ::tensorflow::Input k, ::tensorflow::Input num_rows, ::tensorflow::Input num_cols, ::tensorflow::Input padding_value )
العقدة
::tensorflow::Node * node() const
المشغل::tensorflow::الإدخال
operator::tensorflow::Input() const
المشغل::tensorflow::الإخراج
operator::tensorflow::Output() const
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2024-11-19 (حسب التوقيت العالمي المتفَّق عليه)