PyTorch - 33 - PyTorch DataLoader Num_workers - 深度学习速度限制增加
Speeding Up The Training Process
为了加快培训过程,我们将使用DataLoader类的num_workers可选属性。
num_workers属性告诉数据加载器实例要用于数据加载的子进程数。 默认情况下,num_workers值设置为零,零值告诉加载程序在主进程内部加载数据。
这意味着培训过程将在主要过程中按顺序进行。 在训练过程中使用了一批并且需要另一批之后,我们从磁盘读取了批数据。
现在,如果我们有一个工作进程,我们就可以利用我们的机器具有多个内核的事实。 这意味着在主流程准备好另一个批次时,已经可以加载下一个批次并准备好运行。 这就是速度的来源。 批处理使用其他工作进程加载,并在内存中排队。
Optimal Value For The num_workers Attribute
随之而来的自然问题是,我们应该添加多少个工人流程? 这里有很多因素会影响最佳数量,因此找出答案的最佳方法是进行测试。
Testing Values For The num_workers Attribute
要设置此测试,我们将创建一个num_workers值列表以进行尝试。 我们将尝试以下值:
- 0(默认)
- 1
- 2
- 4
- 8
- 16
对于这些值中的每一个,我们将通过尝试以下值来更改批量大小ÿ