GatherNd

کلاس نهایی عمومی GatherNd

برش‌ها را از «پارام‌ها» در یک تانسور با شکل مشخص شده با «شاخص‌ها» جمع‌آوری کنید.

«شاخص‌ها» یک تانسور عدد صحیح بعدی 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 = [[[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']]]
 
نمایه سازی دسته بندی شده در یک تانسور 3:
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>، شاخص های عملوند <U>)
روش Factory برای ایجاد کلاسی که عملیات GatherNd جدید را بسته بندی می کند.
خروجی <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]:]» جمع‌آوری شده است.