tensorflow:: ops:: MatrixDiagV2

#include <array_ops.h>

প্রদত্ত ব্যাচড ডায়াগোনাল মানগুলো সহ একটি ব্যাচড ডায়াগোনাল টেনসর ফেরত দেয়।

সারসংক্ষেপ

একটি ম্যাট্রিক্সের k[0] তম থেকে k[1] -তম diagonal বিষয়বস্তু সহ একটি টেনসর ফেরত দেয়, যেখানে বাকি সবকিছু padding দিয়ে প্যাড করা থাকে। num_rows এবং num_cols আউটপুটের সবচেয়ে ভেতরের ম্যাট্রিক্সের মাত্রা নির্দিষ্ট করে। যদি উভয়ই নির্দিষ্ট না করা হয়, তাহলে অপারেশনটি ধরে নেয় যে সবচেয়ে ভেতরের ম্যাট্রিক্সটি বর্গাকার এবং k ও diagonal সবচেয়ে ভেতরের মাত্রা থেকে এর আকার অনুমান করে। যদি এদের মধ্যে কেবল একটি নির্দিষ্ট করা হয়, তাহলে অপারেশনটি অন্যান্য মানদণ্ডের উপর ভিত্তি করে অনির্দিষ্ট মানটিকে সম্ভাব্য ক্ষুদ্রতম হিসেবে ধরে নেয়।

ধরা যাক, diagonal ডাইমেনশন r [I, J, ..., L, M, N] । যখন শুধুমাত্র একটি ডায়াগোনাল দেওয়া থাকে ( k একটি পূর্ণসংখ্যা অথবা k[0] == k[1] ), তখন আউটপুট টেনসরের র‍্যাঙ্ক r+1 এবং শেপ [I, J, ..., L, M, num_rows, num_cols] হয়। অন্যথায়, এর র‍্যাঙ্ক 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 সবচেয়ে ভেতরের মাত্রা থেকে ম্যাট্রিক্সের আকার অনুমান করে নেয়।
  • padding_value: নির্দিষ্ট কর্ণরেখার বাইরের স্থানটি পূরণ করার জন্য সংখ্যা। ডিফল্ট মান হলো ০।

ফেরত:

  • Output : যখন k একটি পূর্ণসংখ্যা অথবা k[0] == k[1] , তখন র‍্যাঙ্ক r+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 

অপারেটর::টেনসরফ্লো::ইনপুট

 operator::tensorflow::Input() const 

অপারেটর::টেনসরফ্লো::আউটপুট

 operator::tensorflow::Output() const