125、TensorFlow计算图的执行
# TensorFlow使用tf.Session类来表示客户端程序之间的链接 # 虽然一个在其他语言中相似的接口也是可以使用的,列如C++ runtime # 一个tf.Session对象提供了访问本地机器的方法,和使用TensorFlow运行时远程链接到设备的方法 # 它也对你的计算图信息进行缓存,因此你可以高效地运行相同的计算很多遍 # import tensorflow as tf # Create a default in-process session # with tf.Session() as sess: # ... # Create a remote session # with tf.Session("grpc://example.org:2222"): # ... tf.Session.init() # 接收3个可选的参数 # target 如果这个参数留空,session会使用当前机器的设备 # 但是你也可以指定grpc:// URL来指定TensorFlow服务器的地址 # 不同的tf.Session()会根据相同的配置文件链接到相同的Server,来进行分布式的训练 # graph默认情况下一个新的tf.Session会被产生,并且只能在当前默认的计算图中运行操作 # 如果你使用多个图在你的程序中,你可以指定声明tf.Graph当你构建你的session的时候 # config 这个参数允许你来指定一个tf.ConfigProto来控制的session的行为 # 列如一些配置包括如下: # allow_soft_placement : true ,这个字段的值为true的时候会忽略tf.device声明,并且将所有的 # 操作都放置在CPU上面 # cluster_def:当使用分布式的TensorFlow的时候,这个操作允许你来指定 # 哪一个机器来使用在计算图中,并且提供 job names , task indices 和 network addresses # 之间的映射 # graph_options.optimizer_options : 提供了TensorFlow在计算图上面的优化,在执行它之前 # gpu_options.allow_growth : 把这个设置为True 来改变GPU的内存的分配,这样它就会自动增长GPU的内存 # 而不是一开始就使用全部的GPU内存