首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >遍历tf.data.Dataset的高效方法

遍历tf.data.Dataset的高效方法
EN

Stack Overflow用户
提问于 2021-08-01 17:22:57
回答 1查看 183关注 0票数 3

我想知道在TensorFlow 2.4中遍历tf.data.Dataset最有效的方法是什么。

我使用了典型的:

代码语言:javascript
复制
for example in dataset:
    code

但是,我测量了墙时间,因为我的数据集很大,所以计算循环需要太多时间。有没有其他方法可以减少计算时间?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-01 17:52:29

您可以使用.map(map_func)函数,这是对数据集中的每个样本应用一些预处理的有效方法。它对数据集的每个样本并行运行map_func。您甚至可以通过num_parallel_calls参数设置并行调用的数量。[Reference]

以下是来自tensorflow网站的一个示例:

代码语言:javascript
复制
dataset = tf.data.Dataset.range(1, 6)  # ==> [ 1, 2, 3, 4, 5 ]
dataset = dataset.map(lambda x: x + 1) # instead of adding 1 to each sample in a for loop
list(dataset.as_numpy_iterator())      # ==> [ 2, 3, 4, 5, 6 ]

您也可以传递函数:

代码语言:javascript
复制
def my_map(x): # if dataset has y, it should be like "def my_map(x,y)" and "return x,y"
  return x+1  
                                                  
dataset = tf.data.Dataset.range(1, 6)  # ==> [ 1, 2, 3, 4, 5 ]
dataset = dataset.map(my_map)          # instead of adding 1 to each sample in a for loop
list(dataset.as_numpy_iterator())      # ==> [ 2, 3, 4, 5, 6 ]
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68612779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档