有没有一种有效的方法将不同的函数应用于数组的每个元素?

时间:2020-02-07 03:45:54

标签: python tensorflow

我的代码的一部分涉及将不同的函数应用于张量的每个元素。具体来说,请说我有

f = [f1, f2, ..., fn]

X = [X1, X2, ..., Xn]

在这里,f的每个元素都是一个吸收张量并产生另一个张量的函数,而X的每个元素都是一个张量。

我想做的是计算:

y = [f1(X1), f2(X2), ..., fn(Xn)]

到目前为止,我这样做的方法是使用zip,即:

y = [cur_f(cur_x) for cur_f, cur_x in zip(f, X)]

这很好用,但是效率不是很高,因为虽然每个操作可以并行运行,但会顺序运行。更糟糕的是,我无法在此使用tf.function,因为我正在遍历张量,并且我认为我无法使用tf.map_fn,因为在{{1}的情况下,我正在遍历函数}。

是否有一种不错的,快速的方法,还是只有zip方式?

0 个答案:

没有答案