阅读(1395)
赞(10)
TensorFlow高阶函数:tf.foldl
2017-10-20 16:25:24 更新
函数:tf.foldl
foldl (
fn ,
elems ,
initializer = None ,
parallel_iterations = 10 ,
back_prop = True ,
swap_memory = False ,
name = None
)
定义在:tensorflow/python/ops/functional_ops.py.
参见指南:高阶函数>高阶运算符
该 TensorFlow 高阶函数表示折叠从0维度上的 elems 中的解压缩张量列表.
该 foldl 运算符反复地将可调用的 fn 应用于从第一个到最后一个元素序列.这些元素是由0维度上的 elems 维度0上解压缩张量构成.可调用的 fn 将采用两个张量作为参数.第一个参数是从上一次的调用 fn 计算而来的累计值.如果 initializer(初始值设定项) 是 None,则 elems 必须至少包含一个元素,并且其第一个元素用作初始值设定项.
假设 elems 被解压缩成 values、一个张量列表.结果张量的形状为:fn(initializer, values[0]).shape.
参数:
- fn:可执行的调用.
- elems:在0维度上解压缩的张量.
- initializer:(可选)累加器的初始值.
- parallel_iterations:(可选)允许并行运行的迭代次数.
- back_prop:(可选)True,支持反向传播.
- swap_memory:(可选)True,可实现 GPU-CPU 内存交换.
- name:(可选)返回的张量的名称前缀.
返回值:
返回一个张量,该张量来自从第一次到最后一次将 fn 连续应用到从 elems 中解压缩出来的张量列表.
可能引发的错误:
- TypeError:如果 fn 不可调用
使用实例:
elems = [1, 2, 3, 4, 5, 6]
sum = foldl(lambda a, x: a + x, elems)
# sum == 21