تينسورفلو :: العمليات :: مصفوفة
#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 output[i, j, ..., l, m, n] ; otherwise
خلاف ذلك ، يتم التعامل مع M
على أنها عدد الأقطار للمصفوفة في نفس الدفعة ( M = k[1]-k[0]+1
) ، وموتر الإخراج هو:
output[i, j, ..., l, m, n] = diagonal[i, j, ..., l, k[1]-d, n-max(d, 0)] ; if d_lower <= d <= d_upper input[i, j, ..., l, m, n] ; otherwiseحيث
d = n - m
على سبيل المثال:
# 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 = 9. tf.matrix_diag(diagonal, k = -1, num_rows = 3, padding = 9) ==> [[9, 9], # Output shape: (3, 2) [1, 9], [9, 2]]
الحجج:
- النطاق: كائن النطاق
- قطري: الرتبة
r
، حيثr >= 1
- ك: إزاحة (إزاحات) قطرية. تعني القيمة الموجبة قطريًا فوقيًا ، وتشير القيمة 0 إلى القطر الرئيسي ، بينما تشير القيمة السالبة إلى أقطار فرعية. يمكن أن يكون
k
عددًا صحيحًا واحدًا (لقطر واحد) أو زوجًا من الأعداد الصحيحة التي تحدد النهايات المنخفضة والعالية لنطاق المصفوفة. يجب ألا يكونk[0]
أكبر منk[1]
. - num_rows: عدد صفوف مصفوفة الإخراج. إذا لم يتم توفيره ، يفترض المرجع أن مصفوفة الإخراج عبارة عن مصفوفة مربعة وتستنتج حجم المصفوفة من k والبعد الداخلي
diagonal
. - num_cols: عدد أعمدة مصفوفة الإخراج. إذا لم يتم توفيره ، يفترض المرجع أن مصفوفة الإخراج عبارة عن مصفوفة مربعة وتستنتج حجم المصفوفة من k والبعد الداخلي
diagonal
. - padding_value: الرقم المراد ملء المنطقة خارج النطاق القطري المحدد به. الافتراضي هو 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
الوظائف العامة
مصفوفة
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 :: Output
operator::tensorflow::Output() const
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2020-04-20 (حسب التوقيت العالمي المتفَّق عليه)