برشها را از «پارامها» در یک تانسور با شکل مشخص شده با «شاخصها» جمعآوری کنید.
«شاخصها» یک تانسور عدد صحیح بعدی K است که بهترین تانسور (K-1)-بعدی از شاخصها به «پارامها» است که در آن هر عنصر تکهای از «پارامها» را تعریف میکند:
خروجی[\\(i_0, ..., i_{K-2}\\)] = پارامترها[شاخصها[\\(i_0, ..., i_{K-2}\\)]]
در حالی که در tf.gather
«شاخصها» برشها را در بعد «محور» «params» تعریف میکند، در tf.gather_nd
، «شاخصها» برشها را در اولین ابعاد «N» «params» تعریف میکند، جایی که «N = indices.shape» است. [-1]`.
آخرین بعد «شاخص ها» حداکثر می تواند رتبه «پارام ها» باشد:
indices.shape[-1] <= params.rank
آخرین بعد «شاخصها» به عناصر (اگر «indices.shape[-1] == params.rank») یا برشهایی (اگر «indices.shape[-1] < params.rank») در امتداد «شاخصها» مربوط میشود. شکل[-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']]
نمایه سازی به یک تانسور 3: 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 = [[[1]], [[0]]]
params = [['a', 'b'], ['c', 'd']]
output = [[['c', 'd']], [['a', 'b']]]
indices = [[[0, 0]], [[0, 1]]]
params = [['a', 'b'], ['c', 'd']]
output = [['a'], ['b']]
نمایه سازی دسته ای Batched matrix70-indekse: a 3-tensor: 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» را ببینید. ثابت ها
رشته | OP_NAME | نام این عملیات، همانطور که توسط موتور هسته TensorFlow شناخته می شود |
روش های عمومی
خروجی <T> | asOutput () دسته نمادین تانسور را برمی گرداند. |
static <T TType > GatherNd <T> را گسترش می دهد | |
خروجی <T> | خروجی () مقادیر «params» از شاخصهای «شاخصها» با شکل «indices.shape[:-1] + params.shape[indices.shape[-1]:]» جمعآوری شده است. |
روش های ارثی
ثابت ها
رشته نهایی ثابت عمومی OP_NAME
نام این عملیات، همانطور که توسط موتور هسته TensorFlow شناخته می شود
روش های عمومی
خروجی عمومی <T> asOutput ()
دسته نمادین تانسور را برمی گرداند.
ورودی های عملیات TensorFlow خروجی های عملیات تنسورفلو دیگر هستند. این روش برای به دست آوردن یک دسته نمادین که نشان دهنده محاسبه ورودی است استفاده می شود.
استاتیک عمومی GatherNd <T> ایجاد ( دامنه دامنه ، پارامترهای عملوند <T>، عملوند <? شاخص های TNumber > را گسترش می دهد)
روش Factory برای ایجاد کلاسی که عملیات GatherNd جدید را بسته بندی می کند.
مولفه های
محدوده | محدوده فعلی |
---|---|
پارامترها | تانسوری که از آن مقادیر جمع آوری می شود. |
شاخص ها | تانسور شاخص |
برمی گرداند
- یک نمونه جدید از GatherNd
خروجی عمومی <T> خروجی ()
مقادیر «params» از شاخصهای «شاخصها» با شکل «indices.shape[:-1] + params.shape[indices.shape[-1]:]» جمعآوری شده است.