tensorflow:: ops:: MatrixDiagV2
#include <array_ops.h>تُرجع هذه الدالة موترًا قطريًا مجمعًا بقيم قطرية مجمعة معطاة.
ملخص
تُعيد هذه الدالة موترًا يحتوي على العناصر diagonal من k[0] إلى k[1] في مصفوفة، مع إضافة 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 ; otherwised = 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: إزاحة القطر. القيمة الموجبة تعني القطر العلوي، والصفر يشير إلى القطر الرئيسي، والقيمة السالبة تعني الأقطار الفرعية. يمكن أن يكون
kعددًا صحيحًا واحدًا (للقطر الواحد) أو زوجًا من الأعداد الصحيحة التي تحدد الحدين الأدنى والأعلى لنطاق المصفوفة. يجب ألا يكونk[0]أكبر منk[1]. - عدد الصفوف: عدد صفوف مصفوفة الإخراج. إذا لم يتم تحديده، يفترض البرنامج أن مصفوفة الإخراج مربعة ويستنتج حجم المصفوفة من 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
الوظائف العامة
MatrixDiagV2
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
operator::tensorflow::Input
operator::tensorflow::Input() const
operator::tensorflow::Output
operator::tensorflow::Output() const
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2026-11-05 (حسب التوقيت العالمي المتفَّق عليه)