tensorflow:: عملیات:: GatherNd
#include <array_ops.h> برشهایی از params را در یک تانسور با شکلی که توسط indices مشخص شده است، جمعآوری کنید .
خلاصه
indices یک تانسور عدد صحیح K بعدی است که در بهترین حالت میتوان آن را به عنوان یک تانسور (K-1) بعدی از شاخصها در params در نظر گرفت، که در آن هر عنصر یک برش از params را تعریف میکند:
output[\\(i_0, ..., i_{K-2}\\)] = params[indices[\\(i_0, ..., i_{K-2}\\)]] در حالی که در tf.gather indices برشهایی را در بعد axis params تعریف میکنند، در tf.gather_nd ، indices برشهایی را در N بعد اول params تعریف میکنند، که در آن N = indices.shape[-1] است.
آخرین بُعد indices حداکثر میتواند رتبه params باشد:
indices.shape[-1] <= params.rank
آخرین بُعد indices متناظر با عناصر (اگر indices.shape[-1] == params.rank ) یا برشها (اگر indices.shape[-1] < params.rank ) در امتداد بُعد indices.shape[-1] از params باشد. تانسور خروجی شکل دارد.
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 مراجعه کنید.
استدلالها:
- دامنه: یک شیء دامنه
- پارامترها: تانسوری که مقادیر از آن جمعآوری میشوند.
- شاخصها: تانسور شاخص.
بازده:
-
Output: مقادیرparamsکه از اندیسهای داده شده توسطindicesجمعآوری شدهاند، با استفاده از shapeindices.shape[:-1] + params.shape[indices.shape[-1]:].
سازندهها و مخربها | |
|---|---|
GatherNd (const :: tensorflow::Scope & scope, :: tensorflow::Input params, :: tensorflow::Input indices) |
ویژگیهای عمومی | |
|---|---|
operation | |
output | |
کارکردهای عمومی | |
|---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const | |
ویژگیهای عمومی
عملیات
Operation operation
خروجی
::tensorflow::Output output
کارکردهای عمومی
گردآورنده
GatherNd( const ::tensorflow::Scope & scope, ::tensorflow::Input params, ::tensorflow::Input indices )
گره
::tensorflow::Node * node() const
عملگر::tensorflow::ورودی
operator::tensorflow::Input() const
عملگر::tensorflow::خروجی
operator::tensorflow::Output() const
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2026-11-05 بهوقت ساعت هماهنگ جهانی.