python如何读取tfrecord_tensorflow读取tfrecords格式文件
dataset基本原理:
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
##原理流程图:
##代码实现:
dataset = dataset.batch(batch_size=FLAGS.batch_size)
dataset = dataset.prefetch(buffer_size=FLAGS.prefetch_buffer_size)
--------------------------------------------------------
##二.并行prepare(map):
##原理流程图:
##代码实现:
---------------------------------------------
dataset = dataset.map(map_func=parse_fn, num_parallel_calls=FLAGS.num_parallel_calls)
dataset = dataset.batch(batch_size=FLAGS.batch_size)
------------------------------------------------
#三.并行数据抽取
##原理流程图:
##代码实现:
------------------------
改代码:
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格式文件相关推荐
- R语言技巧:读取spss的sav格式文件
上几期介绍了R语言读取excel.csv格式,这期将介绍读取SPSS软件的数据.前面有一次介绍了2种读取方式,结合着学习下. 前面几期: 读取excel文件 对比方法 读取csv格式文件 对比方法re ...
- python处理文本文件实现生成指定格式文件的方法
python处理文本文件实现生成指定格式文件的方法 关于python处理文本文件实现生成指定格式文件,很多朋友都不知道该怎么弄. 下面是具体代码,希望对大家有帮助 可以在下面复制: import os ...
- 使用Python对xlsx,csv, txt格式文件进行读、写并绘图
0. 背景 最近需要用到python通过读取,写入Excel数据,并画一些图.虽然以前学过一些,但是都忘得差不多了,故翻出以前学习的资料,整理在此,常用常新,也方便自己以后复习. 1. 通过panda ...
- python存储数据的操作(csv格式文件,Excel表格文件)!!!
python存储数据 存储数据的方式 两种存储数据方式的区别 csv格式文件 Excel格式文件 csv文件的写入 csv文件的读取 Excel基本概念 Excel文件的写入 Excel文件的读取 存 ...
- 使用Python解析MNIST数据集(IDX格式文件)
代码参考链接 mnist数据集idx格式文件: t10k-images-idx3-ubyte.gz:测试集数据 t10k-labels-idx1-ubyte.gz:测试集标签 train-images ...
- 使用python 将稀疏矩阵保存为mtx格式文件
使用scipy包 import scipy.sparse as sparse import scipy.io as sio import scipy.stats as stats import num ...
- 用 python 来操作 docx, xlsx 格式文件(二)(使用 docx 库操作 docx 格式文件
docx 库 文章结构: 一.docx 基本用,创建 docx 文件并添加数据 二.深入理解文本格式(format),并设置所格式属性(attribute) 三.深入理解样式(styles),以及如何 ...
- python-docx库_用 python 来操作 docx, xlsx 格式文件(二)(使用 docx 库操作 docx 格式文件...
docx 库 文章结构: 一.docx 基本用,创建 docx 文件并添加数据 二.深入理解文本格式(format),并设置所格式属性(attribute) 三.深入理解样式(styles),以及如何 ...
- python使用 docx 库操作 docx 格式文件
docx 库 文章结构: 一.docx 基本用,创建 docx 文件并添加数据 二.深入理解文本格式(format),并设置所格式属性(attribute) 三.深入理解样式(styles),以及如何 ...
最新文章
- BWA SAM文件格式
- Linux Top 命令解析 比较详细--转
- Iris——整合go-playground/validator参数校验Demo
- linux mysql设置数据库utf_设置mysql数据库 utf8
- java学习(57):内部类
- java 不定长参数实现原理
- android modem开发(16)---MTK语音测试
- 如何用anaconda创建python项目_PyCharm+cmd中使用Anaconda 与 新建Python环境(Windows)
- Automated Feature Engineering Basics
- [React Native]StatusBar的使用
- Ext中extend
- 9.6 awk(上);9.7 awk(下)
- 红帽考试环境之RHCSA
- java工具类书写规范
- Hibernate Criteria的 Criterion,Projection,Restrictions等条件设置
- matlab关系矩阵布尔运算,[SketchUp]:布尔运算的运用,涨知识了
- FPGA设计经验之图像处理
- AI实战:深度学习模型压缩:模型裁剪——Pruning with Keras
- java低位_Java 高位低位
- 宝塔环境PHP网站要配置HTTPS,SSL证书如何申请