Kumpulkan irisan dari `params` menjadi Tensor dengan bentuk yang ditentukan oleh `indeks`.
`indices` adalah tensor bilangan bulat berdimensi K, yang paling baik dianggap sebagai tensor indeks berdimensi (K-1) menjadi `params`, dengan setiap elemen mendefinisikan potongan `params`:
keluaran[\\(i_0, ..., i_{K-2}\\)] = params[indeks[\\(i_0, ..., i_{K-2}\\)]]
Sedangkan di tf.gather
`indices` mendefinisikan irisan ke dalam dimensi `axis` dari `params`, di tf.gather_nd
, `indices` mendefinisikan irisan ke dalam dimensi `N` pertama dari `params`, dengan `N = indices.shape [-1]`.
Dimensi terakhir dari `indeks` paling banyak dapat berupa peringkat `params`:
indeks.bentuk[-1] <= params.rank
Dimensi terakhir `indices` sesuai dengan elemen (jika `indices.shape[-1] == params.rank`) atau irisan (jika `indices.shape[-1] < params.rank`) di sepanjang `indices dimensi. bentuk[-1]` dari `params`. Tensor keluaran mempunyai bentuk
indeks.bentuk[:-1] + params.bentuk[indeks.bentuk[-1]:]
Perhatikan bahwa pada CPU, jika indeks di luar batas ditemukan, kesalahan akan dikembalikan. Pada GPU, jika indeks di luar batas ditemukan, angka 0 disimpan dalam nilai keluaran 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']
Iris pengindeksan ke dalam matriks: indices = [[1], [0]]
params = [['a', 'b'], ['c', 'd']]
output = [['c', 'd'], ['a', 'b']]
Mengindeks ke dalam 3-tensor: 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: indices = [[[0, 0]], [[0, 1]]]
params = [['a', 'b'], ['c', 'd']]
output = [['a'], ['b']]
Pengindeksan irisan batch ke dalam matriks: indices = [[[1]], [[0]]]
params = [['a', 'b'], ['c', 'd']]
output = [[['c', 'd']], [['a', 'b']]]
Pengindeksan batch menjadi 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 simbolik tensor. |
statis <T, U memperluas 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 Warisan
Metode Publik
Keluaran publik <T> sebagai Keluaran ()
Mengembalikan pegangan simbolik tensor.
Masukan ke operasi TensorFlow adalah keluaran dari operasi TensorFlow lainnya. Metode ini digunakan untuk mendapatkan pegangan simbolis yang mewakili perhitungan input.
public static GatherNd <T> buat ( Lingkup lingkup, parameter Operand <T>, indeks Operand <U>)
Metode pabrik untuk membuat kelas yang membungkus operasi GatherNd baru.
Parameter
cakupan | ruang lingkup saat ini |
---|---|
param | 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]:]`.