tf.data.dataset从avro文件

2024-06-06 06:45:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用tf.data.DatasetTFRecordDataset来并行化我的输入管道。在

files = tf.data.Dataset.list_files("./data/*.avro")
dataset = tf.data.TFRecordDataset(files, num_parallel_reads=16)
dataset = dataset.apply(tf.contrib.data.map_and_batch(
    preprocess_fn, 512, num_parallel_batches=16) )

如果输入是AVRO文件(类似于JSON),我不确定如何编写preprocess_fn。在


目前,我正在使用tf.data.Dataset.from_generator并将pyavroc或类似avro读取器解析的avro记录提供给它。但我不确定如何将其并行化,因为from_generator方法没有num_parallel_reads选项。在

^{pr2}$

逐个文件读取文件显然是一个瓶颈,我看到所有内核在耗尽前一批数据后都在等待数据。在

如何优化这两种方法?在


Tags: 文件fromdataparalleltffilesgeneratordataset