pytorch函数笔记
DataLoader
原文链接:https://blog.csdn.net/qq_28057379/article/details/115427052
- DateLoader中的num_worker参数,这个参数的大概意思相当于创建几个工作流程,通过batch_sampler分配指定的batch,worker负责将batch加载进RAM,类似预加载?(我猜的)
- num_worker设置得大,好处是寻batch速度快,因为下一轮迭代的batch很可能在上一轮/上上一轮…迭代时已经加载好了。坏处是内存开销大,也加重了CPU负担(worker加载数据到RAM的进程是CPU复制的嘛)。num_workers的经验设置值是自己电脑/服务器的CPU核心数,如果CPU很强、RAM也很充足,就可以设置得更大些。
- 如果num_worker设为0,意味着每一轮迭代时,dataloader不再有自主加载数据到RAM这一步骤(因为没有worker了),而是在RAM中找batch,找不到时再加载相应的batch。缺点当然是速度更慢。
设置大小建议:
Dataloader的num_worker设置多少才合适,这个问题是很难有一个推荐的值。有以下几个建议:
- num_workers=0表示只有主进程去加载batch数据,这个