我在张量流中有一个二维张量,
比方说,例如2 * 4张量[[1.,2.,3.,4 . ],[2.,4.,5.,6 . ]] .
我有一个函数a()让张量中的每一行都通过,然后求和()的所有结果 . 怎么做(不在会话中这样做)?
输出应该是([1.,2.,3.,4 . ])a([2.,4.,5.,6 . ]),实际上我有一个非常大的张量,有很多行 .
这与reduce_sum不同,因为这里的a()函数非常复杂,不能通过向量化直接使用 .
非常感谢!
也许您正在寻找的是Tensorflow中的map_fn函数 . map_fn(a, elems) 将一个张量, elems 沿其第一维解包到一系列切片中,然后将提供的函数 a 应用于每个切片,然后通过沿第一维连接将输出再次组合成单个张量 .
map_fn(a, elems)
elems
a
这听起来像你想要的
Y = map_fn(a, X) answer = reduce_sum(Y, axis=0)
其中 X 是你提供的张量 .
X
1 回答
也许您正在寻找的是Tensorflow中的map_fn函数 .
map_fn(a, elems)
将一个张量,elems
沿其第一维解包到一系列切片中,然后将提供的函数a
应用于每个切片,然后通过沿第一维连接将输出再次组合成单个张量 .这听起来像你想要的
其中
X
是你提供的张量 .