【Tensorflow】Tensorflow一些数据IO、图的运行相关函数
来源:互联网 发布:淘宝客服个人简历模板 编辑:程序博客网 时间:2024/05/29 16:25
摘要:本系列主要对tf的一些常用概念与方法进行描述。本文主要针对tensorflow的数据IO、图的运行等相关函数进行讲解。为‘Tensorflow一些常用基本概念与函数’系列之三。
1、序言
本文所讲的内容主要为以下相关函数:
2、tf函数
2.1 数据IO {Data IO (Python functions)}
一个TFRecords 文件为一个字符串序列。这种格式并非随机获取,它比较适合大规模的数据流,而不太适合需要快速分区或其他非序列获取方式。
数据IO {Data IO (Python functions)}
2.2 运行图(Running Graphs)
会话管理 (Session management)
一个Session对象将操作节点op封装在一定的环境内运行,
同时tensor对象将被计算求值tf.Session.__init__(target=”, graph=None, config=None)创建一个新的会话tf.Session.run(fetches, feed_dict=None,
options=None, run_metadata=None)运行fetches中的操作节点并求其值tf.Session.close()关闭会话tf.Session.graph返回加载值该会话的图(graph)tf.Session.as_default()设置该对象为默认会话,并返回一个上下文管理器tf.Session.reset(target, containers=None, config=None)重设target的资源容器,并关闭所有连接的会话
在0.10版本该功能仅应用在分布会话中
target:为执行引擎所连接的目标,其包含有资源容器,
该资源容器分布在同一个集群的所有works上class tf.InteractiveSession使用在交互式上下文环境的tf会话,比如shell,ipythontf.InteractiveSession.close()关闭一个InteractiveSessiontf.get_default_session()返回当前线程的默认会话
tf.Session
#一个简单的tf.Session例子# 建立一个graph.a = tf.constant(5.0)b = tf.constant(6.0)c = a * b# 将graph载入到一个会话session中sess = tf.Session()# 计算tensor `c`.print(sess.run(c))
#一个会话可能会占用一些资源,比如变量、队列和读取器(reader)。释放这些不再使用的资源非常重要。#使用close()方法关闭会话,或者使用上下文管理器,释放资源。# 使用`close()`方法.sess = tf.Session()sess.run(...)sess.close()# 使用上下文管理器with tf.Session() as sess: sess.run(...)
tf.Session()的变量设置, ConfigProto protocol buffer为会话提供了不同的配置选项。比如,创建一个会话,对设备布局使用软约束条件,以及对分布
# Launch the graph in a session that allows soft device placement and# logs the placement decisions.sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True, log_device_placement=True))
tf.Session.run
a = tf.constant([10, 20]) b = tf.constant([1.0, 2.0]) # 'fetches' 可以为单个数 v = session.run(a) # v is the numpy array [10, 20] # 'fetches' 可以为一个list. v = session.run([a, b]) # v a Python list with 2 numpy arrays: the numpy array [10, 20] and the # 1-D array [1.0, 2.0] # 'fetches' 可以是 lists, tuples, namedtuple, dicts中的任意: MyData = collections.namedtuple('MyData', ['a', 'b']) v = session.run({'k1': MyData(a, b), 'k2': [b, a]}) # v 为一个dict,并有 # v['k1'] is a MyData namedtuple with 'a' the numpy array [10, 20] and # 'b' the numpy array [1.0, 2.0] # v['k2'] is a list with the numpy array [1.0, 2.0] and the numpy array # [10, 20].
tf.Session.as_default()
使用关键字with指定会话, 可以在会话中执行Operation.run()或Tensor.eval(),以得到运行的tensor结果
c = tf.constant(..)sess = tf.Session()with sess.as_default(): assert tf.get_default_session() is sess print(c.eval())
使用函数tf.get_default_session()来得到当前默认的会话
需要注意的是,退出该as_default上下文管理器时,并没有关闭该会话(session ),必须明确的关闭会话
c = tf.constant(...)sess = tf.Session()with sess.as_default(): print(c.eval())# ...with sess.as_default(): print(c.eval())#关闭会话sess.close()#使用 with tf.Session()方式可以创建并自动关闭会话
tf.InteractiveSession
sess = tf.InteractiveSession()a = tf.constant(5.0)b = tf.constant(6.0)c = a * b# 我们直接使用'c.eval()' 而没有通过'sess'print(c.eval())sess.close()
以上的例子,在非交互会话的版本中为,
a = tf.constant(5.0)b = tf.constant(6.0)c = a * bwith tf.Session(): # We can also use 'c.eval()' here. print(c.eval())
ABC
错误类 (Error classes)
有的操作如Send或Recv可能不会返回,那就要用用到node_def方法tf.OpError.node_def以NodeDef proto形式表示失败的optf.OpError.error_code描述该错误的整数错误代码tf.OpError.message返回错误信息class tf.errors.CancelledError当操作或者阶段呗取消时候报错class tf.errors.UnknownError未知错误类型class tf.errors.InvalidArgumentError在接收到非法参数时候报错class tf.errors.NotFoundError当发现不存在所请求的一个实体时候,比如文件或目录class tf.errors.AlreadyExistsError当创建的实体已经存在的时候报错class tf.errors.PermissionDeniedError没有执行权限做某操作的时候报错class tf.errors.ResourceExhaustedError资源耗尽时报错class tf.errors.FailedPreconditionError系统没有条件执行某个行为时候报错class tf.errors.AbortedError操作中止时报错,常常发生在并发情形class tf.errors.OutOfRangeError超出范围报错class tf.errors.UnimplementedError某个操作没有执行时报错class tf.errors.InternalError当系统经历了一个内部错误时报出class tf.errors.DataLossError当出现不可恢复的错误
例如在运行 tf.WholeFileReader.read()读取整个文件的同时文件被删减tf.errors.XXXXX.__init__(node_def, op, message)使用该形式方法创建以上各种错误类
相关链接:
[1] 安装Tensorflow(Linux ubuntu) http://blog.csdn.net/lenbow/article/details/51203526
[2] ubuntu下CUDA编译的GCC降级安装 http://blog.csdn.net/lenbow/article/details/51596706
[3] ubuntu手动安装最新Nvidia显卡驱动 http://blog.csdn.net/lenbow/article/details/51683783
[4] Tensorflow的CUDA升级,以及相关配置 http://blog.csdn.net/lenbow/article/details/52118116
[5] 基于gensim的Doc2Vec简析 http://blog.csdn.net/lenbow/article/details/52120230
[6] TensorFlow的分布式学习框架简介 http://blog.csdn.net/lenbow/article/details/52130565
[7] Tensorflow一些常用基本概念与函数(1) http://blog.csdn.net/lenbow/article/details/52152766
[8] Tensorflow一些常用基本概念与函数(2) http://blog.csdn.net/lenbow/article/details/52181159
- 【Tensorflow】Tensorflow一些数据IO、图的运行相关函数
- tensorflow的一些基本函数
- Tensorflow的一些常见函数
- Tensorflow 学习与复习 Epoch_1 # tensorflow的一些函数方法
- tensorflow 一些常用函数的功能
- TensorFlow一些常用的基本概念和函数
- Tensorflow中一些常见的函数
- 【Tensorflow】Tensorflow一些常用基本概念与函数
- tensorflow入门之tensorflow的运行结构
- TensorFlow的一些基本概念
- tensorflow的一些
- [ [资源贴] ]数据集、函数、python、tensorflow、caffe等相关的资源分享
- tensorflow中的一些重要函数
- tensorflow中一些重要函数
- 云端TensorFlow读取数据IO的高效方式
- 云端TensorFlow读取数据IO的高效方式
- tensorflow的数据输入
- TensorFlow的reduce_sum()函数
- 关于A*寻路在Unity3D里面的简单应用
- 构造中调用构造
- 多线程入门必备以及面试题
- Python学习【2】
- linux shell脚本查找重复行/查找非重复行/去除重复行/重复行统计
- 【Tensorflow】Tensorflow一些数据IO、图的运行相关函数
- git常用命令
- 用友nc65 uap公式开发
- echarts 显示柱状图
- Android移植使用FFmpeg(一):Ubuntu配置NDK环境
- TCP协议
- Capstone第二天培训小日记
- pandas在web开发中的使用场景:删除文章的重复评论、统计某个用户的评论数量
- protobuf-net 的应用