tf.compat.v1.foldl
foldl по списку тензоров, распакованных из elems по размерности 0.
tf.compat.v1.foldl(
fn, elems, initializer=None, parallel_iterations=10, back_prop=True,
swap_memory=False, name=None
)
Этот оператор 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]]):.
| Args | |
|---|---|
fn | Вызываемая функция, которая должна быть выполнена. |
elems | Тензор или (возможно, вложенная) последовательность тензоров, каждый из которых будет распакован по их первой размерности. Вложенная последовательность получившихся срезов будет первым аргументом для fn. |
initializer | (необязательно) Тензор или (возможно, вложенная) последовательность тензоров, как начальное значение для аккумулятора. |
parallel_iterations | (необязательно) Число итераций, которые разрешено запускать параллельно. |
back_prop | (необязательно) True включает поддержку обратного распространения. |
swap_memory | (необязательно) True включает обмен данными между GPU и CPU. |
name | (необязательно) Префикс имени для возвращаемых тензоров. |
| Returns | |
|---|---|
Тензор или (возможно, вложенная) последовательность тензоров, полученные путем последовательного применения fn к списку тензоров, распакованных из elems, от первого к последнему. |
| Raises | |
|---|---|
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/compat/v1/foldl