Spec-Zone.ru › TensorFlow 2.4

tf.foldl

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

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

tf.foldl(
    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.foldl(fn, elems, back_prop=False) Используйте: results = tf.nest.map_structure(tf.stop_gradient, tf.foldl(fn, elems))

Этот оператор foldl многократно применяет вызываемый объект fn к последовательности элементов от первого к последнему. Элементы состоят из тензоров, распакованных из elems по размерности 0. Вызываемый объект 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 = tf.constant([1, 2, 3, 4, 5, 6])
sum = foldl(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/foldl

Spec-Zone.ru

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