我所追求的是能够将张量流op应用于2d张量的每个元素,例如
input = tf.Variable([[1.0, 2.0], [3.0, 4.0]) myCustomOp = ... # some kind of custom op that operates on 1D tensors finalResult = tf.[thing I'm after](input, myCustomOp) # when run final result should look like: [myCustomOp([1.0, 2.0]), myCustomOp([3.0, 4.0)]
有任何想法吗?
TensorFlow(0.8,如果你从源代码编译或下载每晚构建这是目前)的下一个版本包括高阶经营者,包括tf.map_fn()
和tf.scan()
,让您应用功能由TensorFlow OPS的一个更大的张量subtensors.
该tf.map_fn(fn, elems, ...)
函数将沿第一维的-dimensional N
输入解包为elems
多维子N-1
指标,并应用于fn
每个子指标.这似乎完全符合您的用例:
input = tf.Variable([[1.0, 2.0], [3.0, 4.0]]) function_to_map = lambda x: f(x) # Where `f` instantiates myCustomOp. final_result = tf.map_fn(function_to_map, input)