减少batch_size(如减少到1)是否会影响读取性能?
肯定会影响,计算机io性能而言,随着batch_size增大,读取越来越快,需要的时间越少。这里会涉及到计算机操作系统的知识点,内存与硬盘之间的io性能以及调度策略,当batch_size大的时候调入内存的内容多,总内容数据/batch_size=io调用次数,所需的io次数变少了。
batch_size = 256
batch_size = 128
数据迭代器的性能非常重要。当前的实现足够快吗?探索各种选择来改进它。
- num_works 也就是进程数,调整读取数据的进程数,增大io处理性能,但是当设置的进程数超过cpu的核心数,可能存在切片竞争的关系,导致io性能变弱。
- 使用更加高级的数据加载器,本质上就是加载算法的升级。
- 调整batch_size大小,但是过大的batch_size读取虽然会快,但是泛化能力会变弱。
- 使用GPU进行加载,移动到GPU显存进行并行计算处理会更加快速。
- 异步数据加载,涉及到操作系统原理,异步加载,可以利用有限的时间快速加载数据,对比同步阻塞节省时间。
查阅框架的在线API文档。还有哪些其他数据集可用?
自己查咯