tf.compat.v1.SparseConditionalAccumulator
Условный аккумулирующий агрегат для агрегирования разреженных градиентов.
Наследуется от: ConditionalAccumulatorBase
tf.compat.v1.SparseConditionalAccumulator(
dtype,
shape=None,
shared_name=None,
name='sparse_conditional_accumulator',
reduction_type='MEAN'
)
Разреженные градиенты представлены как IndexedSlices.
Актуальные градиенты (то есть шаг времени, в котором был вычислен градиент, равен шагу времени агрегатора) добавляются в агрегатор.
Извлечение среднего градиента блокируется до тех пор, пока не будет накоплено необходимое количество градиентов.
| Аргументы | |
|---|---|
dtype | Тип данных накапливаемых градиентов. |
shape | Форма накапливаемых градиентов. |
shared_name | Необязательно. Если непусто, этот агрегатор будет совместно использоваться под данным именем в нескольких сессиях. |
name | Необязательное имя агрегатора. |
reduction_type | Тип редукции, используемый при извлечении градиента. |
| Атрибуты | |
|---|---|
accumulator_ref | Ссылка на базовый агрегатор. |
dtype | Тип данных градиентов, накапливаемых этим агрегатором. |
name | Имя базового агрегатора. |
Методы
apply_grad
apply_grad(
grad_indices, grad_values, grad_shape=None, local_step=0, name=None
)
Попытка применить разреженный градиент к агрегатору.
Попытка будет проигнорирована, если градиент устарел, т. е., local_step меньше шага времени агрегатора.
Разреженный градиент представлен своими индексами, значениями и, возможно, пустой или None формой. Индексы должны быть вектором, представляющим расположение ненулевых элементов в тензоре. Значения — ненулевые срезы градиента, и должны иметь такое же первое измерение, как индексы, т. е., nnz, представленные индексами и значениями, должны быть согласованы. Форма, если она не пустая или None, должна быть согласована с формой агрегатора (если она также задана).
| Пример | |
|---|---|
| Тензор [[0, 0], [0, 1], [2, 3]] можно представить как индексы: [1,2] значения: [[0,1],[2,3]] форма: [3, 2] |
| Аргументы | |
|---|---|
grad_indices | Индексы разреженного градиента для применения. |
grad_values | Значения разреженного градиента для применения. |
grad_shape | Форма разреженного градиента для применения. |
local_step | Шаг времени, в котором был вычислен градиент. |
name | Необязательное имя операции. |
| Возвращаемое значение | |
|---|---|
| Операция, которая (условно) применяет градиент к агрегатору. |
| Исключения | |
|---|---|
InvalidArgumentError | Если форма grad неверна |
apply_indexed_slices_grad
apply_indexed_slices_grad(
grad, local_step=0, name=None
)
Попытка применить градиент к агрегатору.
Попытка будет проигнорирована, если градиент устарел, т. е., local_step меньше шага времени агрегатора.
| Аргументы | |
|---|---|
grad | Градиент IndexedSlices для применения. |
local_step | Шаг времени, в котором был вычислен градиент. |
name | Необязательное имя операции. |
| Возвращаемое значение | |
|---|---|
| Операция, которая (условно) применяет градиент к агрегатору. |
| Исключения | |
|---|---|
InvalidArgumentError | Если форма grad неверна |
num_accumulated
num_accumulated(
name=None
)
Количество градиентов, которые в настоящее время агрегированы в агрегаторе.
| Аргументы | |
|---|---|
name | Необязательное имя операции. |
| Возвращаемое значение | |
|---|---|
| Количество накопленных градиентов в настоящее время в агрегаторе. |
set_global_step
set_global_step(
new_global_step, name=None
)
Устанавливает глобальный шаг времени агрегатора.
Операция записывает предупреждение, если мы пытаемся установить шаг времени, который меньше текущего шага времени агрегатора.
| Аргументы | |
|---|---|
new_global_step | Значение нового шага времени. Может быть переменной или константой |
name | Необязательное имя операции. |
| Возвращаемое значение | |
|---|---|
| Операция, устанавливающая шаг времени агрегатора. |
take_grad
take_grad(
num_required, name=None
)
Попытка извлечь средний градиент из агрегатора.
Операция блокируется до тех пор, пока достаточное количество градиентов не будет успешно применено к агрегатору.
После успешного выполнения также выполняются следующие действия:
- Счетчик накопленных градиентов сбрасывается до 0.
- Агрегированный градиент сбрасывается до нулевого тензора.
- Внутренний шаг времени агрегатора увеличивается на 1.
| Аргументы | |
|---|---|
num_required | Количество градиентов, которое должно быть агрегировано |
name | Необязательное имя операции |
| Возвращаемое значение | |
|---|---|
| Кортеж индексов, значений и формы, представляющий средний градиент. |
| Исключения | |
|---|---|
InvalidArgumentError | Если num_required < 1 |
take_indexed_slices_grad
take_indexed_slices_grad(
num_required, name=None
)
Попытка извлечь средний градиент из агрегатора.
Операция блокируется до тех пор, пока достаточное количество градиентов не будет успешно применено к агрегатору.
После успешного выполнения также выполняются следующие действия:
- Счетчик накопленных градиентов сбрасывается до 0.
- Агрегированный градиент сбрасывается до нулевого тензора.
- Внутренний шаг времени агрегатора увеличивается на 1.
| Аргументы | |
|---|---|
num_required | Количество градиентов, которое должно быть агрегировано |
name | Необязательное имя операции |
| Возвращает | |
|---|---|
Объект IndexedSlices, содержащий значение среднего градиента. |
| Исключения | |
|---|---|
InvalidArgumentError | Если num_required < 1 |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/compat/v1/SparseConditionalAccumulator