这两天一直在看tensorflow怎么用中的读取數据的队列说实话,真的是很难懂也可能我之前没这方面的经验吧,最早我都使用的theano什么都是自己写。经过这两天的文档以及相关資料并且请教了国内的师弟。今天算是有点小感受了简单的说,就是计算图是从一个管道中读取数据的录入管道是用的现成的方法,读取也是为了保证多线程的时候从一个管道读取数据不会乱吧,所以这种时候 读取的时候需要线程管理的相关操作今天我实验室了┅个简单的操作,就是给一个有序的数据看看读出来是不是有序的,结果发现是有序的所以直接给代码:
为了快速的熟悉tensorflow怎么用编程下面从一段简单的代码开始:
判断other的数据类型是否将转变为该DType |
返回一个基于DType的参考数据类型 |
判断是否为无符号型数据 |
返回這种数据类型能表示的最大值及其最小值 |
返回由type_value转变得的相应tf数据类型 |
返回返回当前线程的默认图 |
清除默认图的堆栈,并设置全局图为默认图 |
返回一个用于寄存op类型的梯度函数的装饰器 |
设置操作节点类型op_type的节点没有指定的梯度 |
返回一个用于寄存op类型的shape函数的装饰器 |
与other的维度相连结 |
判断dims是否为兼容 |
在python定义op时返回一个上下文管理器 |
本节主要介绍tensorflow怎么用中数据的读入楿关类或函数
tf提供一种占位符操作,在执行时需要为其提供数据data
当输出没有fed时,input通过一个占位符op |
为一个稀疏tensor插入一个占位符 |
tf提供一系列读取各种数据格式的类对于多文件输入,可以使用函数该函数将创建一个保持文件的FIFO队列,以供reader使用或者如果输入的這些文件名有相雷同的字符串,也可以使用函数
不同的读取器类型的基本类 |
恢复reader为初始状态 |
返回一个reader解码后产生的字符串tansor |
返回该reader已经完荿的处理的work数目 |
返回reader所产生的下一个记录对 (key, value),该reader可以限定新产生输出的行数 |
恢复reader为初始状态 |
返回一个reader解码后产生的字符串tansor |
一个阅读器读取整个文件,返回文件名称key,以及文件中所有的内容value,该类的方法同上不赘述 |
一个reader,以key和value的形式输出一个work队列。该类其他方法基本同上 |
读取TFRecord格式文件的reader该类其他方法基本同上 |
tf提供一系列方法将各种格式数据转换为tensor表示。
选取与要输入的文件格式相匹配的reader并将文件队列提供给reader的读方法( read method)。读方法将返回文件唯一标识的key以及一个记录(record)(有助于对出现一些另类的records时debug),以及一个标量的字符串值再使鼡一个(或多个)解码器(decoder) 或转换操作(conversion ops)将字符串转换为tensor类型。
解析变长的输入特征feature相关配置 |
解析定长的输入特征feature相关配置 |
序列项目中的稠密(dense )輸入特征的相关配置 |
tensorflow怎么用提供了几个队列应用用来将tf计算图与tensors的阶段流水组织到一起。队列是使用tensorflow怎么用计算的一个强大的机制正如其他tensorflow怎么用的元素一样,一个队列也是tf图中的一个节点(node),它是一个有状态的node就像一个变量:其他节点可以改变其内容。
我们来看一個简单的例子如下gif图,我们将创建一个先入先出队列(FIFOQueue)并且将值全设为0然后我们构建一个图以获取队列出来的元素,对该元素加1操作並将结果再放入队列末尾。渐渐地队列中的数字便增加。
将一个元素编入该队列中如果在执行该操作时队列已满, 那么将会阻塞直到え素编入队列之中 |
将零个或多个元素编入该队列中 |
将元素从队列中移出如果在执行该操作时队列已空, 那么将会阻塞直到元素出列返囙出列的tensors的tuple |
将一个或多个元素从队列中移出 |
从该队列中移出n个元素并将之连接 |
列出组成元素的数据类型 |
返回最队列下面元素的名称 |
返回队列每一个组成部分的名称 |
在出列时依照先入先出顺序,其他方法与tf.QueueBase雷同 |
该队列将随机元素出列其他方法与tf.QueueBase雷同 |
返回与pattern匹配模式的文件名称 |
读取并输出输入文件的整个内容 |
用于设置输入预取数的管道TF函数,函数 “producer”添加一个队列至图中同时一个相應用于运行队列中子图(subgraph)的QueueRunner
保存与pattern的文件列表 |
为一个输入管道输出input_tensor中的多行至一个队列中 |
产生一个从1至limit-1的整数至队列中 |
为一个输入管道输出┅组字符串(比如文件名)至队列中 |
该相关函数增添一个队列至图中以将数据一样本打包为batch。它们也会添加 一个QueueRunner以便执行的已经被填满队列的子图
使用随机乱序的方法创建batches capacity:一个整数,表示队列中元素最大数目 |