Spec-Zone.ru › TensorFlow 2.4

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:].

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

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

Аргументы
params Значение, из которого извлекаются значения. Должен быть хотя бы ранга axis + 1.
indices Индекс Tensor. Должен быть одного из следующих типов: int32, int64. Должен находиться в пределах [0, params.shape[axis]).
validate_indices Устарело, ничего не делает.
axis Ось Tensor. Должен быть одного из следующих типов: int32, int64. Ось в params для извлечения indices из. Должен быть больше или равен batch_dims. По умолчанию — первая не-пакетная размерность. Поддерживает отрицательные индексы.
batch_dims Число пакетных размерностей. Должно быть меньше или равно 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.4/api_docs/python/tf/gather

Spec-Zone.ru

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