جریان تنسور:: عملیات:: جمع آوری کنید
#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}\\)]]
در حالی که در indices
tf.gather
، برشها را در بعد اول params
تعریف میکند، در tf.gather_nd
، indices
برشها را در اولین ابعاد N
params
تعریف میکنند، جایی که N = indices.shape[-1]
.
آخرین بعد indices
حداکثر می تواند رتبه params
باشد:
indices.shape[-1] <= params.rank
آخرین بعد indices
مربوط به عناصر (if indices.shape[-1] == params.rank
) یا برشهایی (if 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']]
نمایه سازی در یک تانسور 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
را ببینید.
استدلال ها:
- scope: یک شی Scope
- پارامترها: تانسوری که از آن مقادیر جمع آوری می شود.
- شاخص ها: تانسور شاخص.
برمی گرداند:
-
Output
: مقادیرparams
جمعآوریشده از شاخصهای دادهشده توسطindices
، با شکلindices.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 و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2024-11-17 بهوقت ساعت هماهنگ جهانی.