会话模式一:

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

# 创建一个会话
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. [sharepoint]修改Item或者File的Author和Editor

    写在前面 最近项目中调用sharepoint rest api方式获取文件或者Item列表,而用的方式是通过证书请求,在上传文件,或者新建item的时候,默认的用户是在sharepoint端注册的用户 ...

  2. Hive 任务优化 tips

    1.  集群任务队列: 一般有  root.default, root.online, root.offline, root.spark-thiftserver Hue提交的任务一般默认在 defau ...

  3. Linux Shell 简介

    什么是 Shell Shell 是用户和 Linux 内核之间的接口程序,当从 Shell 或其他程序向 Linux 传递命令时,内核会做出相应的反应: Shell 是一个命令语言解释器,它拥有自己内 ...

  4. mysql实用函数

    1.  group_concat(); 可以将选择的字段列数据,分组以逗号分隔成一串.实用方便.select id,group_concat(distinct name) from ttt group ...

  5. java.util.logging jdk日志详解

    jdk自带的日志,结构并不复杂,功能也能满足绝大部分功能.日志写入位置是开放的,只要继承了handler都可以接收日志的写入.handler本身依赖于LogRecord对象,该对象代表一个日志.Han ...

  6. spring-AOP之通知和顾问

    通知和顾问都是切面的实现形式,其中通知可以完成对目标对象方法简单的织入功能. 而顾问包装了通知,可以让我们对通知实现更加精细化的管理,让我们可以指定具体的切入点. 通知分为前置通知,环绕通知及后置通知 ...

  7. 解决no module named ipykernel_launcher

    解决no module named ipykernel_launcher 最近开hydrogen的时候,提示no module named ipykernel_launcher. 记得以前解决过这个问 ...

  8. 反射与特性与Tool编写

    大多数程序都是用来处理数据的,他们读,写,操作和显示数据,图形也是一种数据. 程序员为某种目的创建和使用一些类型,因此,在设计时必须理解所使用类型的特性. 有关程序及其类型的数据被称为元数据,他们保存 ...

  9. python入门(一):进入python的交互模式、pip的使用和数据类型

    环境安装: https://www.python.org/ pycharm 社区版路径: http://www.jetbrains.com/pycharm/download/download-than ...

  10. (vue.js)element ui 表单重置

    el-form需要接收一个model,并且需要配合el-form-item一起使用,并且在el-form-item上绑定prop属性,resetField方法才能好使. <el-form :mo ...