減少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文檔。還有哪些其他數據集可用?
自己查咯