我正在尝试使TF“图表和会话”指南以及TF“ Keras”指南和TF估算器指南中的信息协调一致。现在在前者中,它说a tf.Session使计算图可以访问物理硬件以执行图并训练模型。就像最初学习TF的教程一样,您需要使用Session来运行任何东西:变量指南,张量指南等。但是,在TF Keras指南中,示例似乎在运行时没有显式调用{{1} }或通常的tf.Session
,Keras模型也不使用急切的执行。对于Estimators API也是如此。
我有几个代码示例。他们中的一些人使用呼叫的会话,而其他人则不使用。我希望有人能阐明将with tf.Session() as sess:
与Keras层或Estimators一起使用的要求的规则是什么。我的意思是,您似乎可以为keras估算器或标准TF.estimator设置tf.Session
之类的东西,并为multi-gpu等设置设置。
这是TF Keras功能API的示例。请注意,不会呼叫该会话:
run_configs
感谢您提供任何信息或说明。
答案 0 :(得分:1)
仅使用Keras时,不需要调用tf.Session()
。如使用tf.GraphKeys.GLOBAL_STEP
所见,这在使用tensorflow后端时被调用。仅在使用tensorflow后端而不是theano
或CNTK
时调用此方法。
关于通过tf.Session()
调用使用Tensorflow接口,对此进行了here的解释,它只是使用tf.Session()
作为Keras与 pure-TensorFlow 张量和/或函数。
您可以看到一个使用tf.Session()
后端功能将set_session()
与Keras结合使用的示例:
session_conf = tf.ConfigProto(intra_op_parallelism_threads=1, inter_op_parallelism_threads=1)
from keras import backend as K
sess = tf.Session(graph=tf.get_default_graph(), config=session_conf)
K.set_session(sess)