如何实现tf.data.Dataset的并行化加速训练?
- 内容介绍
- 文章标签
- 相关推荐
本文共计804个文字,预计阅读时间需要4分钟。
在处理大规模数据时,数据无法一次性全部加载进内存。我们通常采用以下两个选项:
1. 使用tfrecords
2.使用tf.data.Dataset.from_generator()
这两者都是并行化处理tfrecords的有效方法。前文已详细介绍,此处不再赘述。若不想使用生,请直接跳过。
在处理大规模数据时,数据无法全部载入内存,我们通常用两个选项
- 使用
tfrecords - 使用
tf.data.Dataset.from_generator()
tfrecords的并行化使用前文已经有过介绍,这里不再赘述。如果我们不想生成tfrecord中间文件,那么生成器就是你所需要的。
本文主要记录针对 from_generator()的并行化方法,在 tf.data 中,并行化主要通过 map和 num_parallel_calls 实现,但是对一些场景,我们的generator()中有一些处理逻辑,是无法直接并行化的,最简单的方法就是将generator()中的逻辑抽出来,使用map实现。
本文共计804个文字,预计阅读时间需要4分钟。
在处理大规模数据时,数据无法一次性全部加载进内存。我们通常采用以下两个选项:
1. 使用tfrecords
2.使用tf.data.Dataset.from_generator()
这两者都是并行化处理tfrecords的有效方法。前文已详细介绍,此处不再赘述。若不想使用生,请直接跳过。
在处理大规模数据时,数据无法全部载入内存,我们通常用两个选项
- 使用
tfrecords - 使用
tf.data.Dataset.from_generator()
tfrecords的并行化使用前文已经有过介绍,这里不再赘述。如果我们不想生成tfrecord中间文件,那么生成器就是你所需要的。
本文主要记录针对 from_generator()的并行化方法,在 tf.data 中,并行化主要通过 map和 num_parallel_calls 实现,但是对一些场景,我们的generator()中有一些处理逻辑,是无法直接并行化的,最简单的方法就是将generator()中的逻辑抽出来,使用map实现。

