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上进行
- 运算无法在GPU上执行
- 没有相应的GPU资源(找不到指定的GPU)
- 运算输入包括对CPU计算结果的引用
这个参数默认值为False、但是为了提高代码的可移植性,在GPU环境下一般设置为True,这样可以让计算可以在不同版本的GPU,不同数量的GPU设备上运行
第二个是log_device_placement:是一个bool型参数。当其为True时,日志中会记录每个节点会被安排到哪个设备上以便调试,在生产环境中通常设置False以减少日志量
TensorFlow 运行模型--会话(Session)的更多相关文章
- Tensorflow会话Session
转载自: http://blog.csdn.net/Hanging_Gardens/article/details/72784392 https://www.cnblogs.com/hypnus-ly ...
- tensorflow+入门笔记︱基本张量tensor理解与tensorflow运行结构
Gokula Krishnan Santhanam认为,大部分深度学习框架都包含以下五个核心组件: 张量(Tensor) 基于张量的各种操作 计算图(Computation Graph) 自动微分(A ...
- 第五节,TensorFlow编程基础案例-session使用(上)
在第一节中我们已经介绍了一些TensorFlow的编程技巧;第一节,TensorFlow基本用法,但是内容过于偏少,对于TensorFlow的讲解并不多,这一节对之前的内容进行补充,并更加深入了解讲解 ...
- [tensorflow] 线性回归模型实现
在这一篇博客中大概讲一下用tensorflow如何实现一个简单的线性回归模型,其中就可能涉及到一些tensorflow的基本概念和操作,然后因为我只是入门了点tensorflow,所以我只能对部分代码 ...
- 学习笔记CB014:TensorFlow seq2seq模型步步进阶
神经网络.<Make Your Own Neural Network>,用非常通俗易懂描述讲解人工神经网络原理用代码实现,试验效果非常好. 循环神经网络和LSTM.Christopher ...
- 『TensorFlow』模型保存和载入方法汇总
『TensorFlow』第七弹_保存&载入会话_霸王回马 一.TensorFlow常规模型加载方法 保存模型 tf.train.Saver()类,.save(sess, ckpt文件目录)方法 ...
- TensorFlow 自定义模型导出:将 .ckpt 格式转化为 .pb 格式
本文承接上文 TensorFlow-slim 训练 CNN 分类模型(续),阐述通过 tf.contrib.slim 的函数 slim.learning.train 训练的模型,怎么通过人为的加入数据 ...
- 【转载】 TensorFlow函数:tf.Session()和tf.Session().as_default()的区别
原文地址: https://blog.csdn.net/Enchanted_ZhouH/article/details/77571939 ------------------------------- ...
- Python之TensorFlow的模型训练保存与加载-3
一.TensorFlow的模型保存和加载,使我们在训练和使用时的一种常用方式.我们把训练好的模型通过二次加载训练,或者独立加载模型训练.这基本上都是比较常用的方式. 二.模型的保存与加载类型有2种 1 ...
随机推荐
- [sharepoint]修改Item或者File的Author和Editor
写在前面 最近项目中调用sharepoint rest api方式获取文件或者Item列表,而用的方式是通过证书请求,在上传文件,或者新建item的时候,默认的用户是在sharepoint端注册的用户 ...
- Hive 任务优化 tips
1. 集群任务队列: 一般有 root.default, root.online, root.offline, root.spark-thiftserver Hue提交的任务一般默认在 defau ...
- Linux Shell 简介
什么是 Shell Shell 是用户和 Linux 内核之间的接口程序,当从 Shell 或其他程序向 Linux 传递命令时,内核会做出相应的反应: Shell 是一个命令语言解释器,它拥有自己内 ...
- mysql实用函数
1. group_concat(); 可以将选择的字段列数据,分组以逗号分隔成一串.实用方便.select id,group_concat(distinct name) from ttt group ...
- java.util.logging jdk日志详解
jdk自带的日志,结构并不复杂,功能也能满足绝大部分功能.日志写入位置是开放的,只要继承了handler都可以接收日志的写入.handler本身依赖于LogRecord对象,该对象代表一个日志.Han ...
- spring-AOP之通知和顾问
通知和顾问都是切面的实现形式,其中通知可以完成对目标对象方法简单的织入功能. 而顾问包装了通知,可以让我们对通知实现更加精细化的管理,让我们可以指定具体的切入点. 通知分为前置通知,环绕通知及后置通知 ...
- 解决no module named ipykernel_launcher
解决no module named ipykernel_launcher 最近开hydrogen的时候,提示no module named ipykernel_launcher. 记得以前解决过这个问 ...
- 反射与特性与Tool编写
大多数程序都是用来处理数据的,他们读,写,操作和显示数据,图形也是一种数据. 程序员为某种目的创建和使用一些类型,因此,在设计时必须理解所使用类型的特性. 有关程序及其类型的数据被称为元数据,他们保存 ...
- python入门(一):进入python的交互模式、pip的使用和数据类型
环境安装: https://www.python.org/ pycharm 社区版路径: http://www.jetbrains.com/pycharm/download/download-than ...
- (vue.js)element ui 表单重置
el-form需要接收一个model,并且需要配合el-form-item一起使用,并且在el-form-item上绑定prop属性,resetField方法才能好使. <el-form :mo ...