dataset基本原理:

40e7049c9eb8

1.写入tfrecords文件:

|图片|文字 ->格式转换->example(tf.train.Example)生成 ->write(tf.python_io.TFRecordWriter.write)

2.读取tfrecords文件:

tf.data.dataset加载文件序列 ->dataset(example迭代器) -> tf.parse_single_sample(逐个解析example)

##代码实现:

to dataset:

dataset_b = tf.data.Dataset.list_files(files).shuffle(len(files))

dataset = dataset_b.apply(tf.contrib.data.parallel_interleave(\

tf.data.TFRecordDataset, cycle_length= num_threads))

dataset = dataset.map(decode_ex, num_parallel_calls=num_threads)

shapes = dataset._output_shapes

logging.info('dataset decode shapes', shapes)

dataset = dataset.shuffle(buffer_size=buffer_size)

#pipline

dataset = dataset.prefetch(num_prefetch_batches * batch_size)

#pad

dataset = dataset.padded_batch(batch_size, padded_shapes=(shapes))

###parse sigle example:

features_dict= {'id':tf.FixedLenFeature([], tf.string),\

'classes': tf.FixedLenFeature([NUM_CLASSES], tf.float32),\

'comment': tf.VarLenFeature(tf.int64),\

'title': tf.VarLenFeature(tf.int64),\

'comment_str': tf.FixedLenFeature([], tf.string),\

'title_str': tf.FixedLenFeature([], tf.string)

}

features = tf.parse_single_example(example, features = features_dict)

id = features['id']

classes = features['classes']

comment = None

comment = features['comment']

comment = tf.sparse_tensor_to_dense(comment)

comment = comment[:500]

#parser comment

comment_str = features['comment_str']

#comment_str= comment_str[:500]

#parser title

title = None

title = features['title']

参考教程:

https://www.yanshuo.me/p/305699(part6:如何使用 TensorFlow Eager 从 TFRecords 批量读取数据)

https://www.tensorflow.org/performance/datasets_performance(dataset的官方教程)

https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/utils/data_reader.py(港科大的datareader代码)

##tensorflow并行数据抽取与预测

###1.基本知识

####cpu与gpu的分工:

layer是运行在gpu/tpu上的。也就是说,embedding_layer转化是在gpu上进行,但是prepare即word->id,是在cpu上进行的。parser_example是在cpu上;

####model训练性能比较:

TPU>GPU>CPU

TPU是google专门针对tensorflow开发的处理器,降低功耗,加大运算速率。alphago就是在TPU处理器上搭建的。

####加快cpu的预处理速度的方法

cpu做的工作有两个:1. 抽取(I/O)2.数据解析(map(parser)),故而,加快cpu预处理的速率的方法,有两个:

##1. 并行抽取;

##2.map方法并行

cpu与gpu结合的过程,还可以进行一步管道优化:也就是在batch的过程中,cpu的prepare与gpu的训练同时进行。

2.优化方法具体介绍

#一. batch流水线pipline

##原理流程图:

40e7049c9eb8

##代码实现:

dataset = dataset.batch(batch_size=FLAGS.batch_size)

dataset = dataset.prefetch(buffer_size=FLAGS.prefetch_buffer_size)

--------------------------------------------------------

##二.并行prepare(map):

##原理流程图:

40e7049c9eb8

##代码实现:

---------------------------------------------

dataset = dataset.map(map_func=parse_fn, num_parallel_calls=FLAGS.num_parallel_calls)

dataset = dataset.batch(batch_size=FLAGS.batch_size)

------------------------------------------------

#三.并行数据抽取

##原理流程图:

40e7049c9eb8

##代码实现:

------------------------

改代码:

dataset = files.interleave(tf.data.TFRecordDataset)

为:

dataset = files.apply(tf.contrib.data.parallel_interleave(

tf.data.TFRecordDataset, cycle_length=FLAGS.num_parallel_readers))

3.参考教程:

https://www.tensorflow.org/performance/datasets_performance

https://tensorflow.juejin.im/performance/datasets_performance.html

python如何读取tfrecord_tensorflow读取tfrecords格式文件相关推荐

  1. R语言技巧:读取spss的sav格式文件

    上几期介绍了R语言读取excel.csv格式,这期将介绍读取SPSS软件的数据.前面有一次介绍了2种读取方式,结合着学习下. 前面几期: 读取excel文件 对比方法 读取csv格式文件 对比方法re ...

  2. python处理文本文件实现生成指定格式文件的方法

    python处理文本文件实现生成指定格式文件的方法 关于python处理文本文件实现生成指定格式文件,很多朋友都不知道该怎么弄. 下面是具体代码,希望对大家有帮助 可以在下面复制: import os ...

  3. 使用Python对xlsx,csv, txt格式文件进行读、写并绘图

    0. 背景 最近需要用到python通过读取,写入Excel数据,并画一些图.虽然以前学过一些,但是都忘得差不多了,故翻出以前学习的资料,整理在此,常用常新,也方便自己以后复习. 1. 通过panda ...

  4. python存储数据的操作(csv格式文件,Excel表格文件)!!!

    python存储数据 存储数据的方式 两种存储数据方式的区别 csv格式文件 Excel格式文件 csv文件的写入 csv文件的读取 Excel基本概念 Excel文件的写入 Excel文件的读取 存 ...

  5. 使用Python解析MNIST数据集(IDX格式文件)

    代码参考链接 mnist数据集idx格式文件: t10k-images-idx3-ubyte.gz:测试集数据 t10k-labels-idx1-ubyte.gz:测试集标签 train-images ...

  6. 使用python 将稀疏矩阵保存为mtx格式文件

    使用scipy包 import scipy.sparse as sparse import scipy.io as sio import scipy.stats as stats import num ...

  7. 用 python 来操作 docx, xlsx 格式文件(二)(使用 docx 库操作 docx 格式文件

    docx 库 文章结构: 一.docx 基本用,创建 docx 文件并添加数据 二.深入理解文本格式(format),并设置所格式属性(attribute) 三.深入理解样式(styles),以及如何 ...

  8. python-docx库_用 python 来操作 docx, xlsx 格式文件(二)(使用 docx 库操作 docx 格式文件...

    docx 库 文章结构: 一.docx 基本用,创建 docx 文件并添加数据 二.深入理解文本格式(format),并设置所格式属性(attribute) 三.深入理解样式(styles),以及如何 ...

  9. python使用 docx 库操作 docx 格式文件

    docx 库 文章结构: 一.docx 基本用,创建 docx 文件并添加数据 二.深入理解文本格式(format),并设置所格式属性(attribute) 三.深入理解样式(styles),以及如何 ...

最新文章

  1. BWA SAM文件格式
  2. Linux Top 命令解析 比较详细--转
  3. Iris——整合go-playground/validator参数校验Demo
  4. linux mysql设置数据库utf_设置mysql数据库 utf8
  5. java学习(57):内部类
  6. java 不定长参数实现原理
  7. android modem开发(16)---MTK语音测试
  8. 如何用anaconda创建python项目_PyCharm+cmd中使用Anaconda 与 新建Python环境(Windows)
  9. Automated Feature Engineering Basics
  10. [React Native]StatusBar的使用
  11. Ext中extend
  12. 9.6 awk(上);9.7 awk(下)
  13. 红帽考试环境之RHCSA
  14. java工具类书写规范
  15. Hibernate Criteria的 Criterion,Projection,Restrictions等条件设置
  16. matlab关系矩阵布尔运算,[SketchUp]:布尔运算的运用,涨知识了
  17. FPGA设计经验之图像处理
  18. AI实战:深度学习模型压缩:模型裁剪——Pruning with Keras
  19. java低位_Java 高位低位
  20. 宝塔环境PHP网站要配置HTTPS,SSL证书如何申请

热门文章

  1. python视频教程免费 西西-Python基础教程(第2版)
  2. 今晚直播丨Oracle数据库SQL执行计划的取得和解析
  3. DBA邀请函丨数据库大咖讲坛来深圳啦!线下沙龙+线上直播,共享技术盛会!
  4. 数仓无损压缩算法:gzip算法
  5. 细说Python Lambda函数的用法,建议收藏!
  6. CSE强契约模式常见问题和应对策略
  7. 应用系统迁移华为云评估
  8. Kotlin学习笔记 第二章 类与对象 第十四 十五节 委托 委托属性
  9. Fibonacci数列整除性质的组合证明
  10. 从零开始学keras之使用 LSTM 生成文本