考虑下面的程序,我对它b += a
进行了多次迭代计算。
A = tf.constant(np.random.randn(1000000))
B = tf.constant(np.random.randn(1000000))
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for i in range(100):
B = tf.add(A, B)
显然,上面的循环调用了至少 100 次内核启动,这看起来是不必要的,因为我实际上是在原地做这个添加。有什么办法可以避免内核启动开销?理想情况下,我正在寻找一种 tensorflow API 解决方案(只有一次调用run
),而不是改变B += a
.