有效地创建张量流节点的向量

时间:2017-08-10 11:10:44

标签: python tensorflow

假设我在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函数可能更复杂。问题是如何在很长的时间内有效地做到这一点。

1 个答案:

答案 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)