在生成会话时,通常会设置构造函数的config参数来配置会话的一些选项。可以配置的选型有很多,比如并行的线程数、GPU分配策略、运算超时时间等。为了配置能够更方便地进行,可以使用tensorflow提供的configProto()函数的返回值作为config参数的依据。
使用ConfigProto()函数配置Session是最常见的做法。在ConfigProto()函数内部可以指定多个参数选项,我们只对常用的两个进行说明。
第一个参数选项是log_device_placement,这是一个布尔型的参数。当它为True是,日志中将会记录运行每个节点所用的计算设备,然后打印出来。这在一定程度上方便了我们调试,但在生产环境中一般使用这个参数的默认值False以减少日志量。
第二个参数选项是allow_soft_placement,这也是一个布尔型的参数。如果设置为Ture,则当运算无法在GPU上执行的时候会将运算转移到CPU上进行。
以下是这两个参数的使用样例:
config = tf.ConfigProto(log_device_placement = True, allow_soft_placement=True)
sess1 = tf.Session(config=config)
#或者用于创建默认会话的时候
sess2 = tf.InteractiveSession(config=config)