【问题标题】:Applying predefined function to batch in tensorflow将预定义函数应用于张量流中的批处理
【发布时间】:2017-06-10 19:58:44
【问题描述】:

我有一个用 tensorflow 编写的函数,它可以操作数组。它接收二维数组并对数组的一部分执行一些操作,然后输出一个大小和形状相同但元素经过修改的数组。我的问题是,在我的模型中,我一次不只得到一个数组,而是得到一批形状(batch_size、array_size、channel)。由于通道通常是单声道的,因此输入批次是 4D 张量。 有什么方法可以将我的函数应用于这个 4D 张量中的每一层(矩阵),而无需显着修改函数?

函数类似于:

def myFunction(matrix):
     # function body
     return another_matrix

我如何将它应用于一批 5 个这样的矩阵?

【问题讨论】:

    标签: arrays multidimensional-array indexing tensorflow


    【解决方案1】:

    tf.map_fn

    它将f 应用于每个元素,在您的情况下应用于每个二维数组。这些二维数组是通过解包第二个参数得到的。

    【讨论】:

    • 既然第一个维度是我的批量大小,我不应该沿着第一个维度解栈(解包似乎已被弃用)吗?我在想类似 matrix = tf.unstack(batch) 然后 output = tf.map_fn(myFunction, matrix) 之类的东西,但它似乎不明白。
    • 您的第 0 个维度是批量大小。 'map_fn' 自动沿该维度解包。
    猜你喜欢
    • 2020-07-21
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    • 2018-06-23
    相关资源
    最近更新 更多