没有合适的资源?快使用搜索试试~ 我知道了~
TFRecord文件查看包含的所有Features代码
2 下载量 72 浏览量
2020-12-20
12:19:21
上传
评论
收藏 68KB PDF 举报
温馨提示
试读
3页
TFRecord作为tensorflow中广泛使用的数据格式,它跨平台,省空间,效率高。因为 Tensorflow开发者众多,统一训练时数据的文件格式是一件很有意义的事情,也有助于降低学习成本和迁移成本。 但是TFRecord数据是二进制格式,没法直接查看。因此,如何能够方便的查看TFRecord格式和数据,就显得尤为重要了。 为什么需要查看TFReocrd数据?首先我们先看下常规的写入和读取TFRecord数据的关键过程。 # 1. 写入过程 # 一张图片,我写入了其内容,label,长和宽几个信息 tf_example = tf.train.Example( features=t
资源详情
资源评论
资源推荐
TFRecord文件查看包含的所有文件查看包含的所有Features代码代码
TFRecord作为tensorflow中广泛使用的数据格式,它跨平台,省空间,效率高。因为 Tensorflow开发者众多,统一训练时数
据的文件格式是一件很有意义的事情,也有助于降低学习成本和迁移成本。
但是TFRecord数据是二进制格式,没法直接查看。因此,如何能够方便的查看TFRecord格式和数据,就显得尤为重要了。
为什么需要查看TFReocrd数据?首先我们先看下常规的写入和读取TFRecord数据的关键过程。
# 1. 写入过程
# 一张图片,我写入了其内容,label,长和宽几个信息
tf_example = tf.train.Example(
features=tf.train.Features(feature={
'encoded': bytes_feature(encoded_jpg),
'label': int64_feature(label),
'height': int64_feature(height),
'width': int64_feature(width)}))
# 2. 读取过程
# 定义解析的TFRecord数据格式
def _parse_image(example_proto):
features = {'encoded':tf.FixedLenFeature((),tf.string),
'label': tf.FixedLenFeature((), tf.int64),
'height': tf.FixedLenFeature((), tf.int64),
'width': tf.FixedLenFeature((), tf.int64)
}
return tf.parse_single_example(example_proto, features)
# TFRecord数据按照Feature解析出对应的真实数据
ds = ds.map(lambda x : _parse_image(x), num_parallel_calls=4)
上面是一个标准的TFRecord数据的写入和读取部分过程,大家应该发现了,读取TFRecord数据的时候,得知道TFRecord数
据保存的属性名和类型,任何一项不匹配,都会导致无法获取数据。
如果数据的写入和读取都是自己一个人完成,那就没问题。但是如果写入和读取是跨团队合作时候,如果每次读取数据都得让
对方给完整的属性名和属性类型,那效率就太低了。毕竟TFRecord数据已经包含了一切,自己动手丰衣足食。
那么怎么查看TFRecord数据呢?使用python tf.train.Example.FromString(serialized_example)方法,方法的入参是TFRecord
包含的数据字符串。
然后,我直接将上诉查看的过程写成了一个py脚本,需要自取。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import tensorflow as tf
# 用法:python trackTFRecord.py True file1 file2
# trackTFRecord.py 就是当前这个py文件
# True 表示是否输出具体的数据
# file1 file2 表示的是需要查看的TFRecord文件的绝对路径
# 输出说明:tf.float32对应TFRecord的FloatList,tf.int64对应Int64List,tf.string对应BytesList
def main():
print('TFRecord文件个数为{0}个'.format(len(sys.argv)-2))
for i in range(2, len(sys.argv)):
filepath = sys.argv[i] with tf.Session() as sess:
filenames = [filepath] # 加载TFRecord数据
ds = tf.data.TFRecordDataset(filenames)
ds = ds.batch(10)
ds = ds.prefetch(buffer_size=tf.contrib.data.AUTOTUNE)
iterator = ds.make_one_shot_iterator()
# 为了加快速度,仅仅简单拿一组数据看下结构
batch_data = iterator.get_next()
res = sess.run(batch_data)
serialized_example = res[0] example_proto = tf.train.Example.FromString(serialized_example)
features = example_proto.features
print('{0} 信息如下:'.format(filepath))
for key in features.feature:
feature = features.feature[key] ftype = None
fvalue = None
weixin_38624746
- 粉丝: 3
- 资源: 946
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 数据分析实战3-豆瓣top250数据分析和可视化
- tomcat安装及配置教程.md
- tomcat安装及配置教程.md
- 51单片机贴片心形灯原理图PCB程序 亚克力外壳.dwg资料
- 户型为单家独院式图纸编号D068-三层-20.60&13.40米-施工图.dwg
- 农村小别墅图纸编号D067-三层-10.00&11.50米- 施工图.dwg
- 三层独栋别墅图纸编号D066-三层-12.00&12.00米- 施工图.dwg
- 农村小别墅图纸编号D065-三层-14.40&18.55米-施工图.dwg
- 基于YOLOv8检测高铁吊弦缺陷实现的系统的Python源码+文档说明+训练源文件+模型.zip
- 三层农村小别墅图纸编号D064-三层-13.80&22.20米-施工图.dwg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0