我正在解决一个问题,我必须构建一个非常大的计算图来描述我的可能性,然后计算相应函数的梯度。为了演示起见,假设我在循环上构造了以下虚拟求和:
graph = tf.Graph()
with graph.as_default():
theta = tf.Variable(tf.ones_like([[1.]]), name='theta')
L=[]
K=[]
for _ in range(10**6):
L.append(3*theta)
K.append(theta)
m = tf.reduce_sum(tf.multiply(L,K))
g = tf.gradients(ys=m, xs=[theta], stop_gradients=L)
with tf.Session(graph=graph) as sess:
sess.run(tf.global_variables_initializer())
g_=sess.run([g], feed_dict={theta:np.array([[-10.]])})
有什么好的技巧可以减少构建静态计算图的等待时间吗?