Tensorflow 针对tf.data.Dataset中大量数据集的最佳数据流和处理解决方案
上下文: 我的文本输入管道目前由两个主要部分组成: I。复杂的文本预处理,并将Tensorflow 针对tf.data.Dataset中大量数据集的最佳数据流和处理解决方案,tensorflow,google-bigquery,google-cloud-dataflow,tensorflow-datasets,tensorflow-transform,Tensorflow,Google Bigquery,Google Cloud Dataflow,Tensorflow Datasets,Tensorflow Transform,上下文: 我的文本输入管道目前由两个主要部分组成: I。复杂的文本预处理,并将tf.SequenceExamples导出到tfrecords(自定义标记化、词汇创建、统计计算、规范化以及整个数据集以及每个示例的更多内容)。对于每个数据配置,都会执行一次 II。一个tf.Dataset(TFRecords)管道,在训练期间也会进行大量处理(string\u split为字符、表查找、bucketing、条件筛选等) 原始数据集存在于多个位置(BigQuery、GCS、RDS等) 问题: 问题在于,
tf.SequenceExamples
导出到tfrecords(自定义标记化、词汇创建、统计计算、规范化以及整个数据集以及每个示例的更多内容)。对于每个数据配置,都会执行一次
II。一个tf.Dataset(TFRecords)管道,在训练期间也会进行大量处理(string\u split
为字符、表查找、bucketing、条件筛选等)
原始数据集存在于多个位置(BigQuery、GCS、RDS等)
问题:
问题在于,随着生产数据集的快速增长(数TB),为每个可能的数据配置(第1部分有很多超参数)重新创建tfrecords文件是不可行的,因为每个文件都有数百TB的巨大大小。更不用说,当tf.SequenceExamples
或tfrecords的大小增加时,tf.Dataset
的读取速度会惊人地减慢
有很多可能的解决方案:
- apachebeam+云数据流+feed_dict李>
- 转化李>
- ApacheBeam+云数据流+tf.Dataset.from_生成器李>
- tensorflow/生态系统+Hadoop或Spark
- tf.contrib.cloud.BigQueryReader
tf.Dataset
,以便在第二部分中使用tf.data.Dataset
管道,最合适的选择是什么?在这种情况下,最佳做法是什么
提前谢谢 我建议使用(气流的GCP集成)协调整个用例 Airflow提供的运算符允许您使用脚本编排管道 在您的情况下,当您有足够的数据进行处理时,可以使用来启动数据流作业 要从BigQuery获取数据,可以使用
此外,您还可以使用python操作符或bash操作符来监视和预计算统计信息。Beam现在支持Py3,并与tf.Transform集成。