设为首页
收藏本站
切换到宽版
登录
立即注册
找回密码
搜索
搜索
本版
帖子
用户
快捷导航
论坛
BBS
VIP用户组
官网群
无名商城论坛
»
论坛
›
资源分享区
›
学习资源专区
›
【LSP】17 TFrec文件的创建与读
返回列表
发帖
查看:
212
|
回复:
0
[其他技术]
【LSP】17 TFrec文件的创建与读
[复制链接]
无名
无名
当前离线
积分
32464
1万
主题
1万
帖子
3万
积分
管理员
积分
32464
发消息
发表于 2022-5-8 17:01:57
|
显示全部楼层
|
阅读模式
第一次接触到TFrec文件,我也是比较蒙蔽的其实:
可以看到文件是.tfrec后缀的,而且先记住这个文件是186.72MB大小的。
1 为什么用tfrec文件
正常情况下我们用于训练的文件夹内部往往会存着成千上万的图片或文本等文件,这些文件通常被散列存放。这种存储方式有一些缺点:
占用磁盘空间;
一个一个读取文件消耗时间
而tfrec格式的文件存储形式会很合理的帮我们存储数据,核心就是tfrec内部使用Protocol Buffer的二进制数据编码方案,这个方案可以极大的压缩存储空间。
之前我们知道一个tfrec文件100多M,这是因为这个tfrec文件内存储了很多的图片,类似于压缩,对tfrec解压缩后可以获取到一部分的数据集,当我们把全部的rfrec文件都解压缩后,可以获取到全部的数据集。
值得一提的是,rfrec文件内除了可以存储图片,还可以存储其他的数据,比方说图片的label。字符串,float类型等都可以转换成二进制的方法,所以什么数据类型基本上都可以存储到rfrec文件内,从而简化读取数据的过程。
2 tfrec文件的内部结构
tfrec文件时tensorflow的数据集存储格式,tensorflow可以高效的读取和处理这些数据集,因此我见过有的数据集因为是tfrec文件,所以用TF读取数据集,然后用pytorch训练模型。
之前提到了tfrec文件里面是有多个样本的,所以tfrec可以为是多个tf.train.Example文件组成的序列(每一个example是一个样本),然后每一个tf.train.Example又是由若干个tf.train.Features字典组成。这个Features可以理解为这个样本的一些信息,如果是图片样本,那么肯定有一个Features是图片像素值数据,一个Features是图片的标签值;如果是预测任务,那么这个Feature可能就是一些字符串类型的特征
3 制作tfrec文件
代码中我们需要注意的地方是:
先读取图片,然后构建一个字典来作为这个example的格式;
上面代码中,字典中有四个属性,首先是image图片本身的像素值,然后有一个标签,标签是int类型,然后有一个float浮点类型,name是一个字符串类型,这个string类型的需要转换成byte字节类型的才能进行存储,所以这里使用str.encode来把字符串转换成字节;
然后这个features再经过Example的封装,再然后把这个example写进这个tfrec文件中。
这一段代码建议保存下来,方便以后的直接参考和复制。构建tfrec文件对于tensorflow处理图片来说,应该是绕不过的一个步骤。
文件
,
TFrec
,
一个
,
数据
,
这个
相关帖子
•
【LUR】添加网站本地背景音乐各种播放模式
•
【FUT】iapp上传文件获取直链
•
【LUR】非常实用!使用BootStrap实现布局~
•
【解忧】最全的JAVA知识汇总(附讲解和思维导图)
•
【LUR】 Amoli私有云 简约而不简单的私有云网盘搭建程序源
•
【DMT】教你们修改器如何播放音乐教程
•
【源码分享】【D.M.T】超简约在线留言板,无需登陆直接留言!
•
SMTP邮件群发软件,支持163邮箱,谷歌邮箱,126邮箱等等...,QQ邮箱,
•
去除重复数据,去除重复软件,去除重复邮箱或者是手机数据软件
回复
使用道具
举报
返回列表
发帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表