【问题标题】:tensorflow how to use tf.map_fn to process two input tensor shape of (?, 40,30,128) and (?,40,30) in batch wise, ? is my batch sizetensorflow 如何使用 tf.map_fn 批量处理 (?, 40,30,128) 和 (?,40,30) 的两个输入张量形状,?是我的批量大小
【发布时间】:2019-05-16 01:01:03
【问题描述】:

我正在使用 TF1.12。

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

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

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

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

非常感谢!

【问题讨论】:

    标签: python tensorflow


    【解决方案1】:

    你可以这样做:

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

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

    【讨论】:

    • 效果很好,无论如何我的下一步是完全矢量化的解决方案。你知道前几天,我被 tensorflow 吓坏了,因为它和普通语言真的不一样,你不能使用for,你只能使用 TF 提供的 API,而且有很多!你回答了我的第一个问题here你不仅给了我完美的答案,还给了我深刻的建议。非常感谢你。你是一个很棒的导师。现在我喜欢 tensorflow。
    • @TinaLiu 很高兴它有帮助,谢谢你的好话。 TensorFlow 确实具有挑战性,如果您对它的非典型编程模型感到困难,请不要气馁,这对每个人来说都很难。 Eager 模式和 TensorFlow 2.x 应该让这更容易一些(尽管我个人觉得“经典”TensorFlow 现在我已经习惯了)。无论如何,希望你能很快掌握它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    相关资源
    最近更新 更多