جریان تنسور:: عملیات:: جمع آوری کنید
#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 و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2025-07-26 بهوقت ساعت هماهنگ جهانی.