会话模式一:

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

# 创建一个会话
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以减少日志量

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

  1. Tensorflow会话Session

    转载自: http://blog.csdn.net/Hanging_Gardens/article/details/72784392 https://www.cnblogs.com/hypnus-ly ...

  2. tensorflow+入门笔记︱基本张量tensor理解与tensorflow运行结构

    Gokula Krishnan Santhanam认为,大部分深度学习框架都包含以下五个核心组件: 张量(Tensor) 基于张量的各种操作 计算图(Computation Graph) 自动微分(A ...

  3. 第五节,TensorFlow编程基础案例-session使用(上)

    在第一节中我们已经介绍了一些TensorFlow的编程技巧;第一节,TensorFlow基本用法,但是内容过于偏少,对于TensorFlow的讲解并不多,这一节对之前的内容进行补充,并更加深入了解讲解 ...

  4. [tensorflow] 线性回归模型实现

    在这一篇博客中大概讲一下用tensorflow如何实现一个简单的线性回归模型,其中就可能涉及到一些tensorflow的基本概念和操作,然后因为我只是入门了点tensorflow,所以我只能对部分代码 ...

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

    神经网络.<Make Your Own Neural Network>,用非常通俗易懂描述讲解人工神经网络原理用代码实现,试验效果非常好. 循环神经网络和LSTM.Christopher ...

  6. 『TensorFlow』模型保存和载入方法汇总

    『TensorFlow』第七弹_保存&载入会话_霸王回马 一.TensorFlow常规模型加载方法 保存模型 tf.train.Saver()类,.save(sess, ckpt文件目录)方法 ...

  7. TensorFlow 自定义模型导出:将 .ckpt 格式转化为 .pb 格式

    本文承接上文 TensorFlow-slim 训练 CNN 分类模型(续),阐述通过 tf.contrib.slim 的函数 slim.learning.train 训练的模型,怎么通过人为的加入数据 ...

  8. 【转载】 TensorFlow函数:tf.Session()和tf.Session().as_default()的区别

    原文地址: https://blog.csdn.net/Enchanted_ZhouH/article/details/77571939 ------------------------------- ...

  9. Python之TensorFlow的模型训练保存与加载-3

    一.TensorFlow的模型保存和加载,使我们在训练和使用时的一种常用方式.我们把训练好的模型通过二次加载训练,或者独立加载模型训练.这基本上都是比较常用的方式. 二.模型的保存与加载类型有2种 1 ...

随机推荐

  1. Kettle在windows下分布式集群的搭建

    集群的搭建 我这里用的是kettle7.1版本的 下载解压 我们打开kettle的安装目录,进入到data-integration->pwd目录,找到carte-config-master-80 ...

  2. django之用户表的继承

    有这样一个场景,之前已经设计好了用户的信息表,但是再设计另外一个业务表的时候,信息有点重复,如何重新设计呢? 可以采用表的继承,让一个表作为基类,业务表就可以继承它 要注意以下几点 1 作为基类的表使 ...

  3. Android下的几种时间格式转换

    更多更全的工具类,请参考github上的Blankj/AndroidUtilCode 将毫秒转换为小时:分钟:秒格式 public static String ms2HMS(int _ms){ Str ...

  4. C语音秋季学习总结

    我对下个学期的期望就是明确自己的目标,能在下学期中学习更多的知识

  5. com.mysql.jdbc.Connection.isValid(I)Z

    spring boot项目 运行提示这个错误的时候 只需要配置

  6. (转)VS2010反编译dll之后存在的resource修改为resx

    https://www.cnblogs.com/tangbaono1/p/6897183.html 1.找到安装VS的时候,存在的ResGen.exe,我的电脑是win7的,路径是在C:\Progra ...

  7. Codeforces Round #437 E. Buy Low Sell High

    题意:买卖股票,给你n个数,你可以选择买进或者卖出或者什么都不做,问你最后获得的最大收益是多少. Examples Input 910 5 4 7 9 12 6 2 10 Output 20 Inpu ...

  8. Tomcat-servlet基础

    1.1 概念 运行在服务器上的小程序   定义了浏览器访问到(tomact)的规则 1.2 步骤 1.3 执行原理 1  当服务器 接收到客户端浏览器的请求后  会解析url地址  获得url路径   ...

  9. SpringBoot打成jar包的配置方式

    pom.xml中添加Springboot插件 <build> <plugins> <plugin> <groupId>org.springframewo ...

  10. Java JDK 在Windows 10中配置环境变量

    首先,去Oracle官方网站下载Java JDK https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-213 ...