什么是 CNTK randomizationWindow 行为?
What is the CNTK randomizationWindow behavior?
我有一个关于 reader 的 randomizationWindow 参数的快速问题。它在文档中说它控制内存中有多少数据——但我有点不清楚它会对数据的随机性产生什么影响。如果训练数据文件以一种数据分布开始,以另一种完全不同的分布结束,设置小于数据大小的随机化 window 是否会导致提供给训练器的数据不是来自同质分布?我只是想仔细检查一下。
当 randomizationWindow 设置为 window 小于整个数据大小时,整个数据大小被分成 randomizationWindow 大小的块,并且块的顺序是随机的。然后在每个块中,样本被随机化。
关于randomization/IO的更多细节:
所有 corpus/data 总是分成块。块有助于提高 IO 效率,因为一个块的所有序列都是一次性读取的(通常一个块是 32/64MB)。
谈到随机化,有两个步骤:
- 所有区块都是随机的
- 给定 N 个样本的随机化 window,随机化器创建 M 个块的滚动 window,其中总共有大约 N 个样本。此 rolling window 中的所有序列都是随机的。当处理完一个块的所有序列后,随机化器可以释放它并开始异步加载下一个。
我有一个关于 reader 的 randomizationWindow 参数的快速问题。它在文档中说它控制内存中有多少数据——但我有点不清楚它会对数据的随机性产生什么影响。如果训练数据文件以一种数据分布开始,以另一种完全不同的分布结束,设置小于数据大小的随机化 window 是否会导致提供给训练器的数据不是来自同质分布?我只是想仔细检查一下。
当 randomizationWindow 设置为 window 小于整个数据大小时,整个数据大小被分成 randomizationWindow 大小的块,并且块的顺序是随机的。然后在每个块中,样本被随机化。
关于randomization/IO的更多细节:
所有 corpus/data 总是分成块。块有助于提高 IO 效率,因为一个块的所有序列都是一次性读取的(通常一个块是 32/64MB)。
谈到随机化,有两个步骤:
- 所有区块都是随机的
- 给定 N 个样本的随机化 window,随机化器创建 M 个块的滚动 window,其中总共有大约 N 个样本。此 rolling window 中的所有序列都是随机的。当处理完一个块的所有序列后,随机化器可以释放它并开始异步加载下一个。