Kumpulkan irisan dari `params` menjadi Tensor dengan bentuk yang ditentukan oleh `indeks`.
`indeks` adalah tensor bilangan bulat K-dimensi, paling baik dianggap sebagai tensor indeks (K-1)-dimensi ke dalam `params`, di mana setiap elemen mendefinisikan sepotong `params`:
output[\\(i_0, ..., i_{K-2}\\)] = params[indeks[\\(i_0, ..., i_{K-2}\\)]]
Sedangkan di tf.gather
`indices` mendefinisikan irisan ke dalam dimensi `sumbu` dari `params`, di tf.gather_nd
, `indices` mendefinisikan irisan ke dalam dimensi `N` pertama dari `params`, di mana `N = indices.shape [-1]`.
Dimensi terakhir dari `indeks` paling banyak dapat berupa peringkat `params`:
index.shape[-1] <= params.rank
Dimensi terakhir dari `indices` sesuai dengan elemen (jika `indices.shape[-1] == params.rank`) atau irisan (jika `indices.shape[-1] < params.rank`) di sepanjang dimensi `indices. bentuk[-1]` dari `params`. Tensor keluaran memiliki bentuk
indices.shape[:-1] + params.shape[indices.shape[-1]:]
Perhatikan bahwa pada CPU, jika indeks di luar batas ditemukan, kesalahan akan dikembalikan. Pada GPU, jika indeks di luar batas ditemukan, 0 disimpan dalam nilai output yang sesuai.
Beberapa contoh di bawah ini.
Pengindeksan sederhana ke dalam matriks:
indices = [[0, 0], [1, 1]]
params = [['a', 'b'], ['c', 'd']]
output = ['a', 'd']
Pengindeksan irisan ke dalam matriks: indices = [[1], [0]]
params = [['a', 'b'], ['c', 'd']]
output = [['c', 'd'], ['a', 'b']]
Pengindeksan ke dalam 3-tensor: l10n 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']
Pengindeksan batch ke dalam matriks: l10n indices = [[[0, 0]], [[0, 1]]]
params = [['a', 'b'], ['c', 'd']]
output = [['a'], ['b']]
Pengindeksan irisan batch ke dalam matriks: l10n indices = [[[1]], [[0]]]
params = [['a', 'b'], ['c', 'd']]
output = [[['c', 'd']], [['a', 'b']]]
Pengindeksan batch ke dalam 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']]
Lihat juga tf.gather
dan `tf.batch_gather`. Metode Publik
Keluaran <T> | sebagai Keluaran () Mengembalikan pegangan simbolis dari sebuah tensor. |
statis <T, U memperpanjang Angka> GatherNd <T> | |
Keluaran <T> | keluaran () Nilai dari `params` dikumpulkan dari indeks yang diberikan oleh `indices`, dengan bentuk `indices.shape[:-1] + params.shape[indices.shape[-1]:]`. |
Metode yang Diwarisi
Metode Publik
Output publik <T> sebagai Output ()
Mengembalikan pegangan simbolis dari sebuah tensor.
Input ke operasi TensorFlow adalah output dari operasi TensorFlow lainnya. Metode ini digunakan untuk mendapatkan pegangan simbolis yang mewakili perhitungan input.
publik statis GatherNd <T> buat ( Lingkup cakupan, parameter Operand <T>, indeks Operand <U>)
Metode pabrik untuk membuat kelas yang membungkus operasi GatherNd baru.
Parameter
cakupan | lingkup saat ini |
---|---|
params | Tensor untuk mengumpulkan nilai. |
indeks | Tensor indeks. |
Kembali
- contoh baru dari GatherNd
Keluaran publik <T> keluaran ()
Nilai dari `params` dikumpulkan dari indeks yang diberikan oleh `indices`, dengan bentuk `indices.shape[:-1] + params.shape[indices.shape[-1]:]`.