tf.foldl
| Просмотреть исходный код на GitHub |
foldl над списком тензоров, распакованных из elems по размерности 0. (устаревшие значения аргументов)
tf.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]]):.
| Аргументы | |
|---|---|
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.3/api_docs/python/tf/foldl