TensorFlow 运行模型--会话(Session)

会话模式一:

需要明确调用会话生成函数和关闭函数

# 创建一个会话
sess = tf.Session()
# 使用创建好的会话进行运算
sess.run("要运算的对象")
# 关闭会话使本次运行使用的资源得以释放
sess.close()

会话模式二:

创建一个会话,并通过python上下文管理器管理会话

with tf.Session() as sess:
    sess.run(...)   # 括号里是要运行的对象
# 计算结束后会自动关闭会话(仅能在with内部使用)

通过会话获取张量的取值tf.Tensor.eval函数

sess = tf.Session()
with sess.as_default():
    print(result.eval())

"""
输出
[4. 6.]
"""

TensorFlow提供了一个在交互式环境下直接构建默认的会话函数(tf.InteractiveSession)

sess = tf.InteractiveSession()
print(result.eval())
# 也是需要关闭的
sess.close()    

通过tf.InteractiveSession()可以省去将产生的会话注册为默认会话的过程,可直接使用result.eval()获取张量值
以上会话都可以使用Config Proto Buffer来配置需要生成的会话

config = tf.ConfigProto(allow_soft_placement=True, log_device_placement=True)
sess1 = tf.InteractiveSession(config=config)
sess2 = tf.Session(config=config)

通过配置ConfigProto可以配置类似并行的线程数、GPU分配策略、运算超时计算等参数。这些参数中最常用的有两个:

第一个是allow_soft_placement:这是一个bool型参数,当设置为True时GPU上的运算可以放到CPU上进行

  1. 运算无法在GPU上执行
  2. 没有相应的GPU资源(找不到指定的GPU)
  3. 运算输入包括对CPU计算结果的引用

这个参数默认值为False、但是为了提高代码的可移植性,在GPU环境下一般设置为True,这样可以让计算可以在不同版本的GPU,不同数量的GPU设备上运行

第二个是log_device_placement:是一个bool型参数。当其为True时,日志中会记录每个节点会被安排到哪个设备上以便调试,在生产环境中通常设置False以减少日志量

原文地址:https://www.cnblogs.com/lyh-vip/p/10508931.html

时间: 2024-10-21 08:06:13

TensorFlow 运行模型--会话(Session)的相关文章

3.3 TensorFlow运行模型 ------- 会话

会话拥有并管理TensorFlow程序运行时的所有资源.当计算完成后需要关闭会话来帮助系统回收资源,否则就可能出现资源泄漏的问题. TensorFlow中使用的会话模式一般有梁总,第一种模式需要明确调用会话生成函数和关闭会话函数,代码流程如下: #创建一个会话 sess = tf.Session() #使用这个创建好的会话得到关心的运算的结果 sess.run(....) #关闭会话使得本次运行中使用到的资源得以释放 sess.close() 上述方法计算完成时,需要明确调用Session.cl

Tensorflow运行模型——会话

会话拥有并管理tensorflow程序运行时的所有资源.所有计算完成后需要关闭会话来帮组系统回收资源. 使用会话模式有两种: 但是,第一种方法有缺陷,所以直接给出下面这种 with tf.Session() as sess: #使用创建好的会话来计算关心的结果 sess.run(...) 从会话中取出变量 方法一: sess=tf.Session() with sess.as_default(): print(变量名.eval()) 方法二: sess=tf.Session() print(se

学习笔记CB014:TensorFlow seq2seq模型步步进阶

神经网络.<Make Your Own Neural Network>,用非常通俗易懂描述讲解人工神经网络原理用代码实现,试验效果非常好. 循环神经网络和LSTM.Christopher Olah http://colah.github.io/posts/2015-08-Understanding-LSTMs/ . seq2seq模型基于循环神经网络序列到序列模型,语言翻译.自动问答等序列到序列场景,都可用seq2seq模型,用seq2seq实现聊天机器人的原理 http://suriyade

重温WCF之会话Session(九)

转载地址:http://blog.csdn.net/tcjiaan/article/details/8281782 每个客户端在服务器上都有其的独立数据存储区,互不相干,就好像A和服务器在单独谈话一样,所以叫会话. 下面,我们写一个例子,看看在不支持会话的绑定上连续调用两个有关联的代码,会发生什么情况. [ServiceContract] public interface IService { [OperationContract(IsOneWay = true)] void SetValue(

tensorflow机器学习模型的跨平台上线

在用PMML实现机器学习模型的跨平台上线中,我们讨论了使用PMML文件来实现跨平台模型上线的方法,这个方法当然也适用于tensorflow生成的模型,但是由于tensorflow模型往往较大,使用无法优化的PMML文件大多数时候很笨拙,因此本文我们专门讨论下tensorflow机器学习模型的跨平台上线的方法. 1. tensorflow模型的跨平台上线的备选方案 tensorflow模型的跨平台上线的备选方案一般有三种:即PMML方式,tensorflow serving方式,以及跨语言API方

Tensorflow Learning1 模型的保存和恢复

CKPT->pb Demo 解析 tensor name 和 node name 的区别 Pb 的恢复 CKPT->pb tensorflow的模型保存有两种形式: 1. ckpt:可以恢复图和变量,继续做训练 2. pb : 将图序列化,变量成为固定的值,,只可以做inference:不能继续训练 Demo 1 def freeze_graph(input_checkpoint,output_graph): 2 3 ''' 4 :param input_checkpoint: 5 :para

MyBatis之会话Session原理

MyBatis 之会话 Session 执行逻辑 1.SQL 会话工厂构建器类 SqlSessionFactoryBuilder 的 build 方法用于构建 SqlSessionFactory 类的实例: 2.SQL 会话工厂类的实例用于创建 Sql 会话 SqlSession 的实例: 3.SQL 会话 SqlSession 用于执行具体的 CURD 操作,其类似于 JDBC 中的连接类 Connection: 4.SQL 会话模板 SqlSessionTemplate 是 MyBatis

简单PHP会话(session)说明

现在程序员愈发的不容易了,想要精通,必然要寻本溯源,这其实与目前泛滥的愈发高级的语言以及众多的框架刚好相反,因为它们在尽可能的掩盖本源使其简单,个人称之为程序员学习悖论. 注:作者接触web开发和php两周左右,以下内容适合初学者. 1.导读 从文题目看,<简单PHP会话(Session)说明> 是已经圈定了本文的内容范围,试图阐明Session(文中对会话称为Session) 在PHP语言中是如何实现以及使用的,重点在于基本理解后的使用. 文章思路是首先搞清楚session是什么东西,Ses

Android -- 与WEB交互在同一个会话Session中通信

Session与Cookie Cookie和Session都为了用来保存状态信息,都是保存客户端状态的机制,它们都是为了解决HTTP无状态的问题而所做的努力. Session可以用Cookie来实现,也可以用URL回写的机制来实现. Cookie和Session有以下明显的不同点: 1)Cookie将状态保存在客户端,Session将状态保存在服务器端: 2)Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器.网络服务器用HTTP头向客户端发送cookies,在客户