首页 > 解决方案 > tensorflow 如何使用 tf.map_fn 批量处理 (?, 40,30,128) 和 (?,40,30) 的两个输入张量形状,?是我的批量大小

问题描述

我正在使用 TF1.12。

我有一个函数输入大小是fn([40, 30, 128],[40, 30])并返回tf.float32

但是对于批量大小,我不知道该怎么做。然后我发现了这个功能 tf.map_fn。我有两个输入,所以我应该把我的输入放在哪里。 input1 [?, 40, 30, 128]input2 [?, 40, 30]

批量大小是None,但它们是相等的。

任何相关的将不胜感激。我是 tensorflow 的新手,所以任何事情都有帮助。

非常感谢!

标签: pythontensorflow

解决方案


你可以做:

tf.map_fn(lambda inp: fn(inp[0], inp[1]), (input1, input2))

请注意,这tf.map_fn通常比使用矢量化解决方案要慢。考虑是否可以fn使用批量数据而不是单个批量元素。


推荐阅读