MatrixDiagV3

পাবলিক ফাইনাল ক্লাস MatrixDiagV3

প্রদত্ত ব্যাচ করা তির্যক মান সহ একটি ব্যাচড তির্যক টেনসর প্রদান করে।

একটি ম্যাট্রিক্সের `k[0]`-th থেকে `k[1]`-তম কর্ণ হিসাবে `কর্ণ` এর বিষয়বস্তু সহ একটি টেনসর প্রদান করে, বাকি সবকিছু `প্যাডিং` দিয়ে প্যাড করে। `num_rows` এবং `num_cols` আউটপুটের অন্তর্নিহিত ম্যাট্রিক্সের মাত্রা নির্দিষ্ট করে। যদি উভয়টি নির্দিষ্ট করা না থাকে, op অনুমান করে সবচেয়ে ভিতরের ম্যাট্রিক্সটি বর্গক্ষেত্র এবং `k` থেকে এর আকার এবং `তির্যক` এর ভেতরের মাত্রা অনুমান করে। যদি তাদের মধ্যে শুধুমাত্র একটি নির্দিষ্ট করা হয়, op অনুমান করে যে অনির্দিষ্ট মানটি অন্যান্য মানদণ্ডের উপর ভিত্তি করে সম্ভাব্য সবচেয়ে ছোট।

ধরুন `কর্ণ`-এর `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]`।

`তির্যক` এর দ্বিতীয় অন্তর্নিহিত মাত্রার দ্বিগুণ অর্থ রয়েছে। যখন `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 = k[1]-k[0]+1`) ম্যাট্রিক্সের কর্ণের সংখ্যা হিসাবে `M` ধরা হয়, এবং আউটপুট টেনসর হল:
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] - d`, এবং `index_in_diag = n - সর্বোচ্চ(d, 0) + অফসেট`।

'অফসেট' শূন্য হয় যখন তির্যকটির প্রান্তিককরণ ডানদিকে থাকে।

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(d) = min(cols - max(d, 0), সারি + min(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 tridiagonal band (per batch).
 diagonals = np.array([[[0, 8, 9],  # Input shape: (2, 2, 3)
                        [1, 2, 3],
                        [4, 5, 0]],
                       [[0, 2, 3],
                        [6, 7, 9],
                        [9, 1, 0]]])
 tf.matrix_diag(diagonals, k = (-1, 1))
   ==> [[[1, 8, 0],  # Output shape: (2, 3, 3)
         [4, 2, 9],
         [0, 5, 3]],
        [[6, 2, 0],
         [9, 7, 3],
         [0, 1, 9]]]
 
 # LEFT_RIGHT alignment.
 diagonals = np.array([[[8, 9, 0],  # Input shape: (2, 2, 3)
                        [1, 2, 3],
                        [0, 4, 5]],
                       [[2, 3, 0],
                        [6, 7, 9],
                        [0, 9, 1]]])
 tf.matrix_diag(diagonals, k = (-1, 1), align="LEFT_RIGHT")
   ==> [[[1, 8, 0],  # Output shape: (2, 3, 3)
         [4, 2, 9],
         [0, 5, 3]],
        [[6, 2, 0],
         [9, 7, 3],
         [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]]
 
 

নেস্টেড ক্লাস

ক্লাস MatrixDiagV3.Options MatrixDiagV3 এর জন্য ঐচ্ছিক বৈশিষ্ট্য

পাবলিক পদ্ধতি

স্ট্যাটিক MatrixDiagV3.Options
সারিবদ্ধ (স্ট্রিং সারিবদ্ধ)
আউটপুট <T>
আউটপুট হিসাবে ()
একটি টেনসরের প্রতীকী হ্যান্ডেল প্রদান করে।
স্ট্যাটিক <T> MatrixDiagV3 <T>
তৈরি করুন ( স্কোপ স্কোপ, Operand <T> তির্যক, Operand <Integer> k, Operand <Integer> numRows, Operand <Integer> numCols, Operand <T> প্যাডিং ভ্যালু, বিকল্প... বিকল্প)
একটি নতুন MatrixDiagV3 অপারেশন মোড়ানো একটি ক্লাস তৈরি করার কারখানার পদ্ধতি।
আউটপুট <T>
আউটপুট ()
র‍্যাঙ্ক আছে `r+1` যখন `k` একটি পূর্ণসংখ্যা বা `k[0] == k[1]`, অন্যথায় `r`।

উত্তরাধিকারসূত্রে প্রাপ্ত পদ্ধতি

পাবলিক পদ্ধতি

পাবলিক স্ট্যাটিক MatrixDiagV3. অপশন সারিবদ্ধ (স্ট্রিং সারিবদ্ধ)

পরামিতি
সারিবদ্ধ কিছু কর্ণ `max_diag_len` এর চেয়ে ছোট এবং প্যাড করা দরকার। `সারিবদ্ধ` হল একটি স্ট্রিং যা সুনির্দিষ্ট করে যে কিভাবে সুপারডায়গনাল এবং সাবডায়গনাল যথাক্রমে সারিবদ্ধ করা উচিত। চারটি সম্ভাব্য প্রান্তিককরণ রয়েছে: "RIGHT_LEFT" (ডিফল্ট), "LEFT_RIGHT", "LEFT_LEFT", এবং "RIGHT_RIGHT"। "RIGHT_LEFT" সুপারকর্ণকে ডানদিকে সারিবদ্ধ করে (সারিটিকে বাম দিকে প্যাড করে) এবং বাম দিকে উপকর্ণগুলিকে (সারিটিকে ডানে প্যাড করে)। এটি প্যাকিং বিন্যাস ল্যাপ্যাক ব্যবহার করে। cuSPARSE "LEFT_RIGHT" ব্যবহার করে, যা বিপরীত প্রান্তিককরণ।

সর্বজনীন আউটপুট <T> হিসাবে আউটপুট ()

একটি টেনসরের প্রতীকী হ্যান্ডেল প্রদান করে।

TensorFlow অপারেশনের ইনপুট হল অন্য TensorFlow অপারেশনের আউটপুট। এই পদ্ধতিটি একটি প্রতীকী হ্যান্ডেল পেতে ব্যবহৃত হয় যা ইনপুটের গণনাকে প্রতিনিধিত্ব করে।

পাবলিক স্ট্যাটিক MatrixDiagV3 <T> তৈরি করুন ( স্কোপ স্কোপ, Operand <T> তির্যক, Operand <Integer> k, Operand <Integer> numRows, Operand <Integer> numCols, Operand <T> প্যাডিং ভ্যালু, বিকল্প... বিকল্প)

একটি নতুন MatrixDiagV3 অপারেশন মোড়ানো একটি ক্লাস তৈরি করার কারখানার পদ্ধতি।

পরামিতি
সুযোগ বর্তমান সুযোগ
তির্যক র্যাঙ্ক `r`, যেখানে `r >= 1`
k তির্যক অফসেট(গুলি)। ধনাত্মক মান মানে অতিকর্ণ, 0 প্রধান কর্ণকে বোঝায় এবং ঋণাত্মক মান মানে উপকর্ণ। `k` একটি একক পূর্ণসংখ্যা হতে পারে (একটি একক তির্যকের জন্য) বা একটি ম্যাট্রিক্স ব্যান্ডের নিম্ন এবং উচ্চ প্রান্তগুলিকে নির্দিষ্ট করে এক জোড়া পূর্ণসংখ্যা। `k[0]` অবশ্যই `k[1]` এর চেয়ে বড় হবে না।
সারি সংখ্যা আউটপুট ম্যাট্রিক্সের সারির সংখ্যা। যদি এটি প্রদান না করা হয়, op অনুমান করে যে আউটপুট ম্যাট্রিক্স একটি বর্গ ম্যাট্রিক্স এবং k থেকে ম্যাট্রিক্সের আকার এবং `কর্ণ` এর অন্তর্নিহিত মাত্রা অনুমান করে।
numCols আউটপুট ম্যাট্রিক্সের কলামের সংখ্যা। যদি এটি প্রদান না করা হয়, op অনুমান করে যে আউটপুট ম্যাট্রিক্স একটি বর্গ ম্যাট্রিক্স এবং k থেকে ম্যাট্রিক্সের আকার এবং `কর্ণ` এর অন্তর্নিহিত মাত্রা অনুমান করে।
প্যাডিং ভ্যালু যে সংখ্যাটি দিয়ে নির্দিষ্ট তির্যক ব্যান্ডের বাইরের এলাকাটি পূরণ করতে হবে। ডিফল্ট 0।
বিকল্প ঐচ্ছিক বৈশিষ্ট্য মান বহন করে
রিটার্নস
  • MatrixDiagV3 এর একটি নতুন উদাহরণ

সর্বজনীন আউটপুট <T> আউটপুট ()

র‍্যাঙ্ক আছে `r+1` যখন `k` একটি পূর্ণসংখ্যা বা `k[0] == k[1]`, অন্যথায় `r`।