ম্যাট্রিক্সসেটডিয়াগভি 3

সর্বজনীন চূড়ান্ত শ্রেণীর ম্যাট্রিক্সসেটডিয়াভিভি 3

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

`ইনপুট` এবং` তির্যক` প্রদত্ত, এই অপারেশনটি অন্তর্নির্মিত ম্যাট্রিকগুলির নির্দিষ্ট বর্ণগুলির ব্যতীত একই আকার এবং `ইনপুট` হিসাবে মান সহ একটি টেনসর দেয়। এগুলি `ডায়াগোনাল in এর মান দ্বারা ওভাররাইট করা হবে`

`ইনপুট` এর` r + 1` মাত্রা রয়েছে `[আই, জে, ..., এল, এম, এন]` ` যখন `k` স্কেলার বা` কে [0] == কে [1] `,` তির্যক `r` মাত্রা` [আই, জে, ..., এল, সর্বাধিক_আডিয়া_লেন] `থাকে` অন্যথায়, এর `r + 1` মাত্রা রয়েছে` [I, J, ..., L, num_diags, সর্বোচ্চ_ডায়াগ_লেন] `` `num_diags` হল ত্রিভুজের সংখ্যা,` num_diags = k [1] - কে [0] + 1` ` `সর্বোচ্চ_ডায়াগ_লে` হ'ল রেঞ্জের দীর্ঘতম তির্যক` [কে [0], কে [1]] `,` সর্বোচ্চ_ডিয়াগ_লেন = মিনিট (এম + মিনিট (কে [1], 0), এন + মিনিট (-কে [0] , 0)) `

আউটপুটটি মাত্রা `[আই, জে, ..., এল, এম, এন] rank সহ` কে + 1` এর একটি সেন্সর ens যদি `k` স্কেলার হয় বা` কে [0] == কে [1] `:

output[i, j, ..., l, m, n]
   = diagonal[i, j, ..., l, n-max(k[1], 0)] ; if n - m == k[1]
     input[i, j, ..., l, m, n]              ; otherwise
 
অন্যথায়,
output[i, j, ..., l, m, n]
   = diagonal[i, j, ..., l, diag_index, index_in_diag] ; if k[0] <= d <= k[1]
     input[i, j, ..., l, m, n]                         ; otherwise
 
যেখানে` d = n - m`, `diag_index = k [1] - d`, এবং` সূচক_ইন_ডিয়াগ = এন - সর্বাধিক (ডি, 0) + অফসেট` `

the অফসেট` শূন্য হয় ব্যতীত যখন ত্রিভুজটির প্রান্তিককরণ ডানদিকে থাকে।

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 (কলস - সর্বাধিক (d, 0), সারি + মিনিট (d, 0))` `

উদাহরণস্বরূপ:

# The main diagonal.
 input = np.array([[[7, 7, 7, 7],              # Input shape: (2, 3, 4)
                    [7, 7, 7, 7],
                    [7, 7, 7, 7]],
                   [[7, 7, 7, 7],
                    [7, 7, 7, 7],
                    [7, 7, 7, 7]]])
 diagonal = np.array([[1, 2, 3],               # Diagonal shape: (2, 3)
                      [4, 5, 6]])
 tf.matrix_set_diag(input, diagonal)
   ==> [[[1, 7, 7, 7],  # Output shape: (2, 3, 4)
         [7, 2, 7, 7],
         [7, 7, 3, 7]],
        [[4, 7, 7, 7],
         [7, 5, 7, 7],
         [7, 7, 6, 7]]]
 
 # A superdiagonal (per batch).
 tf.matrix_set_diag(input, diagonal, k = 1)
   ==> [[[7, 1, 7, 7],  # Output shape: (2, 3, 4)
         [7, 7, 2, 7],
         [7, 7, 7, 3]],
        [[7, 4, 7, 7],
         [7, 7, 5, 7],
         [7, 7, 7, 6]]]
 
 # A band of diagonals.
 diagonals = np.array([[[0, 9, 1],  # Diagonal shape: (2, 4, 3)
                        [6, 5, 8],
                        [1, 2, 3],
                        [4, 5, 0]],
                       [[0, 1, 2],
                        [5, 6, 4],
                        [6, 1, 2],
                        [3, 4, 0]]])
 tf.matrix_set_diag(input, diagonals, k = (-1, 2))
   ==> [[[1, 6, 9, 7],  # Output shape: (2, 3, 4)
         [4, 2, 5, 1],
         [7, 5, 3, 8]],
        [[6, 5, 1, 7],
         [3, 1, 6, 2],
         [7, 4, 2, 4]]]
 
 # LEFT_RIGHT alignment.
 diagonals = np.array([[[9, 1, 0],  # Diagonal shape: (2, 4, 3)
                        [6, 5, 8],
                        [1, 2, 3],
                        [0, 4, 5]],
                       [[1, 2, 0],
                        [5, 6, 4],
                        [6, 1, 2],
                        [0, 3, 4]]])
 tf.matrix_set_diag(input, diagonals, k = (-1, 2), align="LEFT_RIGHT")
   ==> [[[1, 6, 9, 7],  # Output shape: (2, 3, 4)
         [4, 2, 5, 1],
         [7, 5, 3, 8]],
        [[6, 5, 1, 7],
         [3, 1, 6, 2],
         [7, 4, 2, 4]]]
 
 

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

ক্লাস ম্যাট্রিক্সসেটডায়াগভি 3.অপশন MatrixSetDiagV3 জন্য MatrixSetDiagV3 বৈশিষ্ট্য

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

স্ট্যাটিক ম্যাট্রিক্সসেটডিয়াভিভি 3.অপশন
সারিবদ্ধ (স্ট্রিং সারিবদ্ধ)
আউটপুট <T>
আউটপুট ()
একটি সেন্সরটির প্রতীকী হ্যান্ডেল ফেরত দেয়।
স্ট্যাটিক <টি> ম্যাট্রিক্সসেটডায়াগভি 3 <টি>
তৈরি করুন ( স্কোপ স্কোপ, অপেরাণ্ড <T> ইনপুট, অপেরান্ড <T> ডায়াগোনাল , অপেরান্ড <Integer> কে, অপশন ... অপশন)
একটি নতুন ম্যাট্রিক্সসেটডায়াগভি 3 অপারেশন মোড়ক করে একটি শ্রেণি তৈরির জন্য কারখানা পদ্ধতি।
আউটপুট <T>
আউটপুট ()
`আউটপুট.শ্যাপ = ইনপুট.শ্যাপ` সহ` r + 1` র‌্যাঙ্ক করুন `

উত্তরাধিকারী পদ্ধতি

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

পাবলিক স্ট্যাটিক ম্যাট্রিক্সসেটডিয়াভিভি 3.অ্যাপশনগুলি প্রান্তিককরণ (স্ট্রিং প্রান্তিককরণ)

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

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

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

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

সার্বজনীন স্ট্যাটিক ম্যাট্রিক্সসেটডিয়াভিভি 3 <টি> তৈরি করুন ( স্কোপ স্কোপ, অপেরাড <টি> ইনপুট, অপেরান্ড <T> ডায়াগোনাল , অপেরান্ড < Inger > কে, অপশন ... অপশন)

একটি নতুন ম্যাট্রিক্সসেটডায়াগভি 3 অপারেশন মোড়ক করে একটি শ্রেণি তৈরির জন্য কারখানা পদ্ধতি।

পরামিতি
সুযোগ বর্তমান সুযোগ
ইনপুট রেঙ্ক `r + 1`, যেখানে` r> = 1` `
তির্যক `K` একটি পূর্ণসংখ্যা বা` k [0] == কে [1] `হলে রেঙ্ক` r` ` অন্যথায়, এটির র‌্যাঙ্ক `r + 1` রয়েছে` `কে> = 1``
কে ডায়াগোনাল অফসেট (গুলি)। ধনাত্মক মান বলতে সুপারডায়াগোনাল হয়, 0টি মূল তির্যককে বোঝায় এবং negativeণাত্মক মান মানে উপ-বিভাগীয়। `k` একটি একক পূর্ণসংখ্যা (একক ত্রিভুজের জন্য) বা ম্যাট্রিক্স ব্যান্ডের নিম্ন এবং উচ্চ প্রান্ত নির্দিষ্ট করে পূর্ণসংখ্যার এক জোড়া হতে পারে। `কে [0]` অবশ্যই `কে [1] than এর চেয়ে বড় হওয়া উচিত না`
বিকল্পগুলি alচ্ছিক বৈশিষ্ট্য মান বহন করে
ফিরে আসে
  • ম্যাট্রিক্সসেটডিয়াভিভি 3 এর একটি নতুন উদাহরণ

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

`আউটপুট.শ্যাপ = ইনপুট.শ্যাপ` সহ` r + 1` র‌্যাঙ্ক করুন `