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】欢迎添加关注!文章转载请注明出处。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分