假设我在python中有以下函数,它得到张量流变量x和一些常量y,作为输出它返回节点,这在某种程度上取决于这两个。
import tensorflow as tf
x = tf.Variable(3.0)
y = {"a" : 3, "b" : 1.0}
def make_graph(x, y):
return y["a"] * x**2 + y["b"]
我有一个常量列表,比如y(y_vec),我想将函数应用于每个元素,然后计算这些节点的总和,如下所示:
f = sum([ make_graph(x, y) for y in y_vec ])
然后我想针对x优化f。当然make_graph函数可能更复杂。问题是如何在很长的时间内有效地做到这一点。
答案 0 :(得分:1)
答案取决于您正在应用的功能。在您的示例中,您可以执行以下操作:
import tensorflow as tf
x = tf.Variable(3.0)
y = {"a" : [3, 4, 5], "b" : [1.0, 2.0, 3.0]}
def make_graph(x, y):
return tf.reduce_sum(y["a"] * x**2 + y["b"], axis=0)
f = make_graph(x, y)