TFRecorder已开源

在训练计算机视觉机器学习模型时,数据加载是一种常见的性能瓶颈,可能导致 gpu 或 tpu 资源在等待数据加载到模型时得不到充分利用。以高效 tensorflow record (tfrecord)格式存储数据集是解决这些问题的好方法,只不过,创建 tfrecords 往往需要大量的复杂代码。
tensorflow record
https://tensorflow.google.cn/tutorials/load_data/tfrecord
我们上周开源了 tensorflow recorder 项目(也就是 tfrecorder),如此一来,数据科学家、数据工程师或 ai/ml 工程师只需几行代码即可创建基于图像的 tfrecords。使用 tfrecords 对于创建高效 tensorflow ml 流水线非常重要,而过去的创建方法非常繁琐。在 tfrecorder 之前,要大规模创建 tfrecords,必须编写一个数据流水线来解析结构化数据,从存储中加载图像并将结果序列化为 tfrecord 格式。tfrecorder 允许您直接从 pandas dataframe 或 csv 写入 tfrecords,无需编写任何复杂的代码。
tensorflow recorder
https://github.com/google/tensorflow-recorder
以下是 tfrecoder 的示例,但我们先谈谈 tfrecords 的一些特定优势。
tfrecords 如何提供帮助
tfrecord 文件格式可以将数据存储在文件集中,每个文件都包含序列化为二进制记录的 protocol buffers 序列,可以非常高效地读取,有助于减少上述数据加载瓶颈。
protocol buffers
https://developers.google.com/protocol-buffers/
在使用 tfrecord 格式的同时实现预提取和并行交错,可以进一步提高数据加载性能。当模型在当前步骤上执行训练时,使用 prefetch 可以提前获取下一个训练步骤的数据,从而缩短每个模型训练步骤的时间,parallel interleave 允许您读取多个 tfrecords 分片(tfrecord 文件的一部分),并对这些交错的数据流进行预处理。这能够减少读取训练批次所需的延迟,特别适用于从网络读取数据。
预提取和并行交错
https://tensorflow.google.cn/guide/data_performance
使用 tensorflow recorder
使用 tfrecorder 只需几行代码即可创建 tfrecord。工作原理如下。
import pandas as pd import tfrecorder df = pd.read_csv(...) df.tensorflow.to_tfrecord(output_dir=gs://my/bucket)
tfrecorder 目前预期数据与 google automl vision 格式相同。
automl vision
https://cloud.google.com/vision/automl/docs/prepare
这种格式与 pandas dataframe 或 csv 格式类似:
split image_uri label
train gs://my/bucket/image1.jpg cat
其中:
split 可以取值 train、validation 和 test
image_uri 指定图像文件的本地或 google cloud storage 位置。
label 可以是将被整数化的基于文本的标签,也可以是一个整数
将来,我们希望进一步扩展 tensorflow recorder,支持所有格式的数据。
这个示例虽然能够将上千个图像顺利转换成 tfrecords,但扩展到百万计的图像可能就难以处理。为了扩展到庞大的数据集,tensorflow recorder 提供了与 google cloud dataflow 的连接,后者是一款无服务器 apache beam 流水线运行器。扩展到 dataflow 仅需要多一点配置。
google cloud dataflow
https://cloud.google.com/dataflow
apache beam
https://beam.apache.org/
df.tensorflow.to_tfrecord( output_dir=gs://my/bucket, runner=dataflowrunner, project=my-project, region=us-central1)
未来计划
我们希望您愿意尝试 tensorflow recorder。您可以从 github 获取,或者直接 pip 安装 tfrecorder。
tensorflow recorder 刚刚面世,我们非常期待您的反馈、建议和 pull requests。
原文标题:创建 tfrecords 的救星 — tensorflow recorder 现已开源!
文章出处:【微信公众号:tensorflow】欢迎添加关注!文章转载请注明出处。

诺托分享选购全自动智能锁的技巧
AI如何帮助医院全面提升运营效率
后补贴时代 新能源汽车将高速增长
骁龙835旗舰大对决:小米6、三星S8、索尼Xperia XZ Premium、HTCU11价格差距大,你更喜欢谁?
瓦楞纸印刷开槽模切机组运用欧姆龙整体的解决方案
TFRecorder已开源
I2S接口概述和与DSP的连接方法
小米MIUI9最新消息:MIUI9开始内测,小米6首发小米大脑!华为OPPO看呆了!
应用笔记 | TSMaster如何使用同星标定模块
【门禁新方案】Wi-Fi 智能门控门禁方案抢先看
【节能学院】安科瑞电能管理系统在青海藏汉语数字高清广播电视编播中心的设计与应用
日本政府推动AI筛选婚配对象,助力相亲
比特币交易所Mt.Gox的发展介绍
MAX98500组成的升压型扬声器放大器电路
Supermicro发布全闪存系统 可1U内实现高达1PB的快速低延迟NVMe存储
便携式风向风速仪是什么,它的功能特点有哪些
2018款斯巴鲁力狮2.5i上手体验评测
PCB板层设计与电磁兼容性竟然有这么大关系!
苹果正与多家供应商洽谈激光传感器合作事宜
携住全场景智能,高光闪耀上海智能家居展