Spec-Zone.ru › TensorFlow 2.3

tf.gather

Просмотреть исходный код на GitHub

Извлечение фрагментов из params по оси axis согласно индексам.

tf.gather(
    params, indices, validate_indices=None, axis=None, batch_dims=0, name=None
)

Извлечение фрагментов из params по оси axis согласно indices. indices должен быть целочисленным тензором любой размерности (обычно 0-мерным или 1-мерным).

Для 0-мерного (скалярного) indices:

$$\begin{align*} output[p_0, ..., p_{axis-1}, && &&& p_{axis + 1}, ..., p_{N-1}] = \\ params[p_0, ..., p_{axis-1}, && indices, &&& p_{axis + 1}, ..., p_{N-1}] \end{align*}$$

Где N = ndims(params).

Для 1-мерного (векторного) indices с batch_dims=0:

$$\begin{align*} output[p_0, ..., p_{axis-1}, && &i, &&p_{axis + 1}, ..., p_{N-1}] =\\ params[p_0, ..., p_{axis-1}, && indices[&i], &&p_{axis + 1}, ..., p_{N-1}] \end{align*}$$

В общем случае, генерирует тензор вывода, где:

$$\begin{align*} output[p_0, &..., p_{axis-1}, & &i_{B}, ..., i_{M-1}, & p_{axis + 1}, &..., p_{N-1}] = \\ params[p_0, &..., p_{axis-1}, & indices[p_0, ..., p_{B-1}, &i_{B}, ..., i_{M-1}], & p_{axis + 1}, &..., p_{N-1}] \end{align*}$$

Где N = ndims(params), M = ndims(indices), и B = batch_dims. Обратите внимание, что params.shape[:batch_dims] должно быть идентично indices.shape[:batch_dims].

Форма тензора вывода:

output.shape = params.shape[:axis] + indices.shape[batch_dims:] + params.shape[axis + 1:].

Обратите внимание, что на ЦП, если найден индекс за пределами границ, возвращается ошибка. На ГП, если найден индекс за пределами границ, в соответствующее значение вывода записывается 0.

См. также tf.gather_nd.

Аргументы
params Значение, из которого извлекаются значения. Должен быть хотя бы ранга axis + 1.
indices Индекс Tensor. Должен быть одного из следующих типов: int32, int64. Должен быть в пределах [0, params.shape[axis]).
validate_indices Устарело, ничего не делает.
axis Ось Tensor. Должен быть одного из следующих типов: int32, int64. Ось в params для извлечения indices из params. Должно быть больше или равно batch_dims. По умолчанию первая не-пакетная ось. Поддерживает отрицательные индексы.
batch_dims Целое число integer. Количество пакетных осей. Должно быть меньше или равно rank(indices).
name Имя операции (необязательно).
Возвращаемое значение
Тензор Tensor. Имеет тот же тип, что и params.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/gather

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API