关于tf.TFRecordReader()函数的用法解析

读取tfrecord数据

从TFRecords文件中读取数据, 首先需要用tf.train.string_input_producer生成一个解析队列。之后调用tf.TFRecordReader的tf.parse_single_example解析器。

如下图:

解析器首先读取解析队列,返回serialized_example对象,之后调用tf.parse_single_example操作将Example协议缓冲区(protocol buffer)解析为张量。

简单来说,一旦生成了TFRecords文件,接下来就可以使用队列(queue)读取数据了。

def read_and_decode(filename):
  #根据文件名生成一个队列
  filename_queue = tf.train.string_input_producer([filename])

  reader = tf.TFRecordReader()
  _, serialized_example = reader.read(filename_queue)  #返回文件名和文件
  features = tf.parse_single_example(serialized_example,
                    features={
                      'label': tf.FixedLenFeature([], tf.int64),
                      'img_raw' : tf.FixedLenFeature([], tf.string),
                    })

  img = tf.decode_raw(features['img_raw'], tf.uint8)
  img = tf.reshape(img, [224, 224, 3])
  img = tf.cast(img, tf.float32) * (1. / 255) - 0.5
  label = tf.cast(features['label'], tf.int32)

  return img, label

举例:

下面代码是我的程序中利用TFRecord读取格式时的代码:

这部分只要使用对应的代码就可以,主要是知道咋回事。

以上这篇关于tf.TFRecordReader()函数的用法解析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • tensorflow将图片保存为tfrecord和tfrecord的读取方式

    tensorflow官方提供了3种方法来读取数据: 预加载数据(preloaded data):在TensorFlow图中定义常量或变量来保存所有的数据,适用于数据量不太大的情况.填充数据(feeding):通过Python产生数据,然后再把数据填充到后端. 从文件读取数据(reading from file):从文件中直接读取,然后通过队列管理器从文件中读取数据. 本文主要介绍第三种方法,通过tfrecord文件来保存和读取数据,对于前两种读取数据的方式也会进行一个简单的介绍. 项目下载git

  • 从多个tfrecord文件中无限读取文件的例子

    原来在一本书上看到过,从多个tfrecord文件中读取数据的方法,今天想用在网上找了一下,现在记录一下,免得自己以后忘记了又不好找, tfrecord_file_path = '/train/*.tfrecords'#train是存放tfrecord的文件夹 filename_queue = tf.train.string_input_producer( tf.train.match_filenames_once(tfrecord_file_path), shuffle=True, num_ep

  • TFRecord文件查看包含的所有Features代码

    TFRecord作为tensorflow中广泛使用的数据格式,它跨平台,省空间,效率高.因为 Tensorflow开发者众多,统一训练时数据的文件格式是一件很有意义的事情,也有助于降低学习成本和迁移成本. 但是TFRecord数据是二进制格式,没法直接查看.因此,如何能够方便的查看TFRecord格式和数据,就显得尤为重要了. 为什么需要查看TFReocrd数据?首先我们先看下常规的写入和读取TFRecord数据的关键过程. # 1. 写入过程 # 一张图片,我写入了其内容,label,长和宽几

  • 关于tf.TFRecordReader()函数的用法解析

    读取tfrecord数据 从TFRecords文件中读取数据, 首先需要用tf.train.string_input_producer生成一个解析队列.之后调用tf.TFRecordReader的tf.parse_single_example解析器. 如下图: 解析器首先读取解析队列,返回serialized_example对象,之后调用tf.parse_single_example操作将Example协议缓冲区(protocol buffer)解析为张量. 简单来说,一旦生成了TFRecord

  • JavaScript回调函数callback用法解析

    这篇文章主要介绍了JavaScript回调函数callback用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JavaScript回调函数的使用是很常见的,引用官方回调函数的定义: A callback is a function that is passed as an argument to another function and is executed after its parent function has complete

  • python中namedtuple函数的用法解析

    源码解释: def namedtuple(typename, field_names, *, rename=False, defaults=None, module=None): """Returns a new subclass of tuple with named fields. >>> Point = namedtuple('Point', ['x', 'y']) >>> Point.__doc__ # docstring for

  • snprintf函数的用法解析

    int snprintf(char *restrict buf, size_t n, const char * restrict  format, ...);函数说明:最多从源串中拷贝n-1个字符到目标串中,然后再在后面加一个0.所以如果目标串的大小为n 的话,将不会溢出.函数返回值:若成功则返回欲写入的字符串长度,若出错则返回负值.Result1(推荐的用法) 复制代码 代码如下: #include <stdio.h>#include <stdlib.h> int main(){

  • 关于tensorflow softmax函数用法解析

    如下所示: def softmax(logits, axis=None, name=None, dim=None): """Computes softmax activations. This function performs the equivalent of softmax = tf.exp(logits) / tf.reduce_sum(tf.exp(logits), axis) Args: logits: A non-empty `Tensor`. Must be

  • Sql Server中Substring函数的用法实例解析

    SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分.这个函数的名称在不同的资料库中不完全一样: MySQL: SUBSTR( ), SUBSTRING( ) Oracle: SUBSTR( ) SQL Server: SUBSTRING( ) SQL 中的 substring 函数是用来截取一个栏位资料中的其中一部分. 例如,我们需要将字符串'abdcsef'中的'abd'给提取出来,则可用substring 来实现: select substring('abdcsef'

  • Python partial函数原理及用法解析

    这篇文章主要介绍了Python partial函数原理及用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 介绍 partial其实是Python模块functools中定义的一个函数,当我们需要经常调用某个函数时,但是其中某些参数是已知的固定值,这样可能会让代码显得冗余,这个时候就可以考虑使用partial函数. 使用 假设我们要做二进制转十进制 int('1000000', base=2) # 64 int('1010101', bas

  • python重要函数eval多种用法解析

    这篇文章主要介绍了python重要函数eval多种用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.参数会作为一个 Python 表达式(从技术上说是一个条件列表)被解析并求值 >>> x = 1 >>> eval('x+1') 2 2.去除字符串两边的引号 >>> a='"srting"' >>> print(a) "srting"

  • Java字符串替换函数replace()用法解析

    这篇文章主要介绍了Java字符串替换函数replace()用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 replace(char oldChar, char newChar)返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的 代码如下 import java.util.*; public class Main{ public static void main(String[] args)

  • Pytorch深度学习addmm()和addmm_()函数用法解析

    目录 一.函数解释 二.代码范例 三.代码运行结果 一.函数解释 在torch/_C/_VariableFunctions.py的有该定义,意义就是实现一下公式: 换句话说,就是需要传入5个参数,mat里的每个元素乘以beta,mat1和mat2进行矩阵乘法(左行乘右列)后再乘以alpha,最后将这2个结果加在一起.但是这样说可能没啥概念,接下来博主为大家写上一段代码,大家就明白了~ def addmm(self, beta=1, mat, alpha=1, mat1, mat2, out=No

随机推荐