`প্যারাম` থেকে `সূচক` দ্বারা নির্দিষ্ট আকৃতি সহ একটি টেনসরে স্লাইস সংগ্রহ করুন।
`সূচক` হল একটি কে-ডাইমেনশনাল ইন্টিজার টেনসর, যাকে সূচকের একটি (K-1)-ডাইমেনশনাল টেনসর হিসেবে ভাবা হয় `প্যারামস`-এ, যেখানে প্রতিটি উপাদান `প্যারামস`-এর একটি স্লাইস সংজ্ঞায়িত করে:
আউটপুট[\\(i_0, ..., i_{K-2}\\)] = প্যারামস[সূচক[\\(i_0, ..., i_{K-2}\\)]]
যেখানে tf.gather
এ `indices` স্লাইসকে `params`-এর `অক্ষ` মাত্রায় সংজ্ঞায়িত করে, tf.gather_nd
এ, `সূচক` স্লাইসকে `params`-এর প্রথম `N` মাত্রায় সংজ্ঞায়িত করে, যেখানে `N = indices.shape [-1]`।
`সূচক`-এর শেষ মাত্রা সর্বাধিক `প্যারাম`-এর র্যাঙ্ক হতে পারে:
indices.shape[-1] <= params.rank
`সূচক` এর শেষ মাত্রা উপাদানের সাথে মিলে যায় (যদি `indices.shape[-1] == params.rank`) অথবা স্লাইস (যদি `indices.shape[-1] < params.rank` হয়) মাত্রা `সূচকের সাথে। `পরম` এর আকৃতি[-1] আউটপুট টেনসরের আকৃতি আছে
indices.shape[:-1] + params.shape[indices.shape[-1]:]
মনে রাখবেন যে CPU-তে, আউট অফ বাউন্ড সূচক পাওয়া গেলে, একটি ত্রুটি ফেরত দেওয়া হয়। GPU-তে, যদি একটি আউট অফ বাউন্ড সূচক পাওয়া যায়, একটি 0 সংশ্লিষ্ট আউটপুট মানের মধ্যে সংরক্ষণ করা হয়।
নিচে কিছু উদাহরণ।
একটি ম্যাট্রিক্সে সহজ সূচীকরণ:
indices = [[0, 0], [1, 1]]
params = [['a', 'b'], ['c', 'd']]
output = ['a', 'd']
indices = [[1], [0]]
params = [['a', 'b'], ['c', 'd']]
output = [['c', 'd'], ['a', 'b']]
indices = [[1]]
params = [[['a0', 'b0'], ['c0', 'd0']],
[['a1', 'b1'], ['c1', 'd1']]]
output = [[['a1', 'b1'], ['c1', 'd1']]]
indices = [[0, 1], [1, 0]]
params = [[['a0', 'b0'], ['c0', 'd0']],
[['a1', 'b1'], ['c1', 'd1']]]
output = [['c0', 'd0'], ['a1', 'b1']]
indices = [[0, 0, 1], [1, 0, 1]]
params = [[['a0', 'b0'], ['c0', 'd0']],
[['a1', 'b1'], ['c1', 'd1']]]
output = ['b0', 'b1']
indices = [[[0, 0]], [[0, 1]]]
params = [['a', 'b'], ['c', 'd']]
output = [['a'], ['b']]
indices = [[[1]], [[0]]]
params = [['a', 'b'], ['c', 'd']]
output = [[['c', 'd']], [['a', 'b']]]
indices = [[[1]], [[0]]]
params = [[['a0', 'b0'], ['c0', 'd0']],
[['a1', 'b1'], ['c1', 'd1']]]
output = [[[['a1', 'b1'], ['c1', 'd1']]],
[[['a0', 'b0'], ['c0', 'd0']]]]
indices = [[[0, 1], [1, 0]], [[0, 0], [1, 1]]]
params = [[['a0', 'b0'], ['c0', 'd0']],
[['a1', 'b1'], ['c1', 'd1']]]
output = [[['c0', 'd0'], ['a1', 'b1']],
[['a0', 'b0'], ['c1', 'd1']]]
indices = [[[0, 0, 1], [1, 0, 1]], [[0, 1, 1], [1, 1, 0]]]
params = [[['a0', 'b0'], ['c0', 'd0']],
[['a1', 'b1'], ['c1', 'd1']]]
output = [['b0', 'b1'], ['d0', 'c1']]
tf.gather
এবং `tf.batch_gather` দেখুন। পাবলিক পদ্ধতি
আউটপুট <T> | আউটপুট হিসাবে () একটি টেনসরের প্রতীকী হ্যান্ডেল প্রদান করে। |
static <T, U প্রসারিত সংখ্যা> GatherNd <T> | |
আউটপুট <T> | আউটপুট () `পরামর্শ` থেকে মান `সূচক` দ্বারা প্রদত্ত সূচক থেকে সংগ্রহ করা হয়েছে, আকৃতি `সূচক. আকার[:-1] + প্যারামস.আকৃতি[সূচক. আকার[-1]:]`। |
উত্তরাধিকারসূত্রে প্রাপ্ত পদ্ধতি
পাবলিক পদ্ধতি
সর্বজনীন আউটপুট <T> হিসাবে আউটপুট ()
একটি টেনসরের প্রতীকী হ্যান্ডেল প্রদান করে।
TensorFlow অপারেশনের ইনপুট হল অন্য TensorFlow অপারেশনের আউটপুট। এই পদ্ধতিটি একটি সিম্বলিক হ্যান্ডেল পেতে ব্যবহৃত হয় যা ইনপুটের গণনার প্রতিনিধিত্ব করে।
পাবলিক স্ট্যাটিক GatherNd <T> তৈরি করুন ( Scope scope, Operand <T> params, Operand <U> সূচক)
একটি নতুন GatherNd অপারেশন মোড়ানো একটি ক্লাস তৈরি করার কারখানার পদ্ধতি।
পরামিতি
সুযোগ | বর্তমান সুযোগ |
---|---|
params | যে টেনসর থেকে মান সংগ্রহ করতে হবে। |
সূচক | সূচক টেনসর। |
রিটার্নস
- GatherNd এর একটি নতুন উদাহরণ
সর্বজনীন আউটপুট <T> আউটপুট ()
`পরামর্শ` থেকে মান `সূচক` দ্বারা প্রদত্ত সূচক থেকে সংগ্রহ করা হয়েছে, আকৃতি `সূচক. আকার[:-1] + প্যারামস.আকৃতি[সূচক. আকার[-1]:]`।