我正在练习keras中的concatenate方法。
而这个例子中使用的with语句让我思考了这个语句的用途。
示例代码如下:
import numpy as np
import keras.backend as K
import tensorflow as tf
t1 = K.variable(np.array([ [[1, 2], [2, 3]], [[4, 4], [5, 3]]]))
t2 = K.variable(np.array([[[7, 4], [8, 4]], [[2, 10], [15, 11]]]))
d0 = K.concatenate([t1 , t2] , axis=-2)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
print(sess.run(d0))
然后我检查了来自:tensorflow 的文档,其指出:
会话可以拥有资源,例如tf.Variable、tf.QueueBase和tf.ReaderBase。 当这些资源不再需要时,释放这些资源非常重要。 为此,可以在会话上调用tf.Session.close方法,也可以将会话用作上下文管理器。
我相信这已经解释得很清楚了,但有没有人能给我更加直观的解释呢?
提前感谢并祝您有美好的一天!
with
块中,"关闭" 部分已经为你处理好了。一旦跳出该级别的缩进,所有东西都会自动被拆除并释放所有资源。 - roganjoshwith
上下文管理器会为你完成它 :) - roganjosh