Spec-Zone.ru › TensorFlow 2.4

tf.foldr

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

foldr на списке тензоров, распакованных из elems по размерности 0. (аргументы устаревшего значения)

tf.foldr(
    fn, elems, initializer=None, parallel_iterations=10, back_prop=True,
    swap_memory=False, name=None
)
Предупреждение: НЕКОТОРЫЕ ЗНАЧЕНИЯ АРГУМЕНТОВ УСТАРЕЛИ: (back_prop=False). Они будут удалены в будущей версии. Инструкции по обновлению: back_prop=False устарел. Рассмотрите использование tf.stop_gradient вместо него. Вместо: results = tf.foldr(fn, elems, back_prop=False) Используйте: results = tf.nest.map_structure(tf.stop_gradient, tf.foldr(fn, elems))

Этот оператор foldr многократно применяет вызываемую функцию fn к последовательности элементов от последнего к первому. Элементы состоят из тензоров, распакованных из elems. Вызываемая функция fn принимает два тензора в качестве аргументов. Первый аргумент — это накопленное значение, вычисленное из предыдущего вызова fn, а второй — значение в текущей позиции elems. Если initializer равно None, elems должен содержать по крайней мере один элемент, и его первый элемент используется в качестве инициализатора.

Предположим, что elems распаковывается в values, список тензоров. Формат тензора результата fn(initializer, values[0]).shape.

Этот метод также позволяет использовать многоаргументные elems и выходные данные fn. Если elems представляет собой (возможно, вложенный) список или кортеж тензоров, то каждый из этих тензоров должен иметь соответствующую первую (распаковываемую) размерность. Подпись fn может соответствовать структуре elems. То есть, если elems есть (t1, [t2, t3, [t4, t5]]), тогда подходящая подпись для fn: fn = lambda (t1, [t2, t3, [t4, t5]]):.

Аргументы
fn Вызываемая функция, которая должна быть выполнена.
elems Тензор или (возможно, вложенная) последовательность тензоров, каждый из которых будет распакован по первой размерности. Вложенная последовательность результирующих срезов будет первым аргументом fn.
initializer (необязательно) Тензор или (возможно, вложенная) последовательность тензоров в качестве начального значения для аккумулятора.
parallel_iterations (необязательно) Количество итераций, разрешенных для одновременного выполнения.
back_prop (необязательно) Устарело. False отключает поддержку обратного распространения. Вместо этого предпочтительнее использовать tf.stop_gradient.
swap_memory (необязательно) True включает обмен памятью между GPU и CPU.
name (необязательно) Префикс имени для возвращаемых тензоров.
Возвращаемое значение
Тензор или (возможно, вложенная) последовательность тензоров, полученная путем последовательного применения fn к списку тензоров, распакованных из elems, от последнего к первому.
Возбуждает
TypeError если fn не вызываемая функция.

Пример:

elems = [1, 2, 3, 4, 5, 6]
sum = foldr(lambda a, x: a + x, elems)
# sum == 21

© 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/foldr

Spec-Zone.ru

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