![TensorFlow深度学习从入门到进阶](https://wfqqreader-1252317822.image.myqcloud.com/cover/944/36922944/b_36922944.jpg)
上QQ阅读APP看书,第一时间看更新
2.3 会话的实现
TensorFlow中使用会话(session)来执行定义好的运算,会话拥有并管理TensorFlow程序运行时的所有资源,当计算完成之后需要关闭会话,以帮助系统回收资源。
可以明确调用会话生成函数和关闭函数:
![](https://epubservercos.yuewen.com/C16494/19573973401151406/epubprivate/OEBPS/Images/978-7-111-65263-2_33_03.jpg?sign=1739678595-Obauu3ypYhAF6TPk9QjiseW98dDrt7oK-0-a01297142f3b1965fa57e0e26d6fcd2d)
运行程序,输出如下:
[3.5.]
如果程序在执行中异常退出,可能不能关闭会话,所以可以使用Python上下文管理器的机制将所有的计算放在“with”的内部,在代码块中执行时就可以保持在某种运行状态,而当离开该代码块时就结束当前状态,省去会话关闭代码:
![](https://epubservercos.yuewen.com/C16494/19573973401151406/epubprivate/OEBPS/Images/978-7-111-65263-2_34_01.jpg?sign=1739678595-FQhwXP5RDv2gdbi53VZ134R2M8tqgYjl-0-beab5bc40ee175b80a1d48c934c3ec89)
TensorFlow 不会自动生成默认的会话,需要程序员将会话指定为默认会话,则TensorFlow执行时会自动启用此会话:
![](https://epubservercos.yuewen.com/C16494/19573973401151406/epubprivate/OEBPS/Images/978-7-111-65263-2_34_02.jpg?sign=1739678595-6e4qXL3rx924Y7NHEdAX4Dr9lWSCnson-0-ec0738003df5c1529d48201d5a64951a)
在使用Python编写时,可以使用函数直接构建默认会话:
![](https://epubservercos.yuewen.com/C16494/19573973401151406/epubprivate/OEBPS/Images/978-7-111-65263-2_34_03.jpg?sign=1739678595-Ky4CjgP5wuCAhgpdkRXhGl0vZruWv4sE-0-d67d25918b8beb14c6a4e61ff76ff1e7)
会话可以通过ConfigProto Protocol Buffer来进行功能配置,类似于并行的线程数、GPU分配策略、运算超过时间等参数设置。比较常用的是以下两个:
![](https://epubservercos.yuewen.com/C16494/19573973401151406/epubprivate/OEBPS/Images/978-7-111-65263-2_34_04.jpg?sign=1739678595-SBFHvA1dporTIU8KwKPLMo4jbTB9PWKV-0-2274f7b5c2fcb7554c99f029c10dc97e)
第一个allow_soft_placement参数,当其为True时,在以下任意一个条件成立时,GPU上的运算可以放到CPU上计算:
● 运算不能在GPU上运行。
● 没有空闲GPU可使用。
● 运算输入包含对CPU计算结果的引用。
当设置为True时,代码的可移植性更强。
第二个log_device_placement参数,当其为True时,日志中将会记录每个节点被安排在了哪个设备上,但会增加日志量。
如果上述代码在没有GPU的机器上运行,会获得以下输出:
Device mapping:no known devices.
下面通过一个例子来演示张量、计算图及会话的相关操作。
【例2-1】 张量、计算图及会话的相关操作。
import tensorflow as tf
![](https://epubservercos.yuewen.com/C16494/19573973401151406/epubprivate/OEBPS/Images/978-7-111-65263-2_35_01.jpg?sign=1739678595-9JIzg0NO6VsM3d3COVWG0EI27UoaGlnN-0-9f41b046e0e9de11372a1afced77cf14)
![](https://epubservercos.yuewen.com/C16494/19573973401151406/epubprivate/OEBPS/Images/978-7-111-65263-2_36_01.jpg?sign=1739678595-FMbcA3g3HWP1mw8fYXcDAjI0xkrHoAHK-0-88f9ed11657d979fe08b4ddb14fb3abb)