برشها را از «پارامها» در یک تانسور با شکل مشخص شده با «شاخصها» جمعآوری کنید.
«شاخصها» یک تانسور عدد صحیح بعدی 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']]
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> | asOutput () دسته نمادین یک تانسور را برمیگرداند. |
استاتیک <T، U تعداد را گسترش می دهد> جمع آوری <T> | |
خروجی <T> | خروجی () مقادیر «params» از شاخصهای «شاخصها» با شکل «indices.shape[:-1] + params.shape[indices.shape[-1]:]» جمعآوری شده است. |
روش های ارثی
روش های عمومی
خروجی عمومی <T> asOutput ()
دسته نمادین یک تانسور را برمیگرداند.
ورودی های عملیات TensorFlow خروجی های عملیات تنسورفلو دیگر هستند. این روش برای به دست آوردن یک دسته نمادین که نشان دهنده محاسبه ورودی است استفاده می شود.
عمومی استاتیک GatherNd <T> ایجاد ( دامنه دامنه ، پارامترهای عملوند <T>، شاخص های عملوند <U>)
روش Factory برای ایجاد کلاسی که عملیات GatherNd جدید را بسته بندی می کند.
پارامترها
دامنه | محدوده فعلی |
---|---|
پارامترها | تانسوری که از آن مقادیر جمع آوری می شود. |
شاخص ها | تانسور شاخص |
برمی گرداند
- یک نمونه جدید از GatherNd
خروجی عمومی <T> خروجی ()
مقادیر «params» از شاخصهای «شاخصها» با شکل «indices.shape[:-1] + params.shape[indices.shape[-1]:]» جمعآوری شده است.