Tensorflow dataloader 相關調研;數據讀取是訓練的開始,是非常關鍵的一步;下面是調研時搜集到的一些相關鏈接:
- 十圖詳解tensorflow數據讀取機制 https://zhuanlan.zhihu.com/p/27238630
- TensorFlow全新的數據讀取方式:Dataset API入門教程 https://zhuanlan.zhihu.com/p/30751039
- tensorflow tf.data: https://tensorflow.google.cn/guide/data
- https://github.com/tensorflow/docs/blob/r1.13/site/en/guide/datasets.md (tf1.13 關於dataset的介紹)
- https://blog.csdn.net/weixin_44402973/article/details/95009945 :關於TFRecora的簡介
- 數據讀取類_data.Dataset:https://www.cnblogs.com/hellcat/p/8569651.html
- https://github.com/madalinabuzau/tensorflow-eager-tutorials tensorflow Eager 模式教學
閱讀摘要:
- Tensorflow 讀取數據的機制:
- 直接從硬盤上讀文件:tf 直接從硬盤上讀取數據,並將內存放入內存中,並完成之后的運算;此過程出現大量IO操作,造成了大量的浪費;訓練時間較長;
- 在內存中開辟讀寫隊列,來讀取數據:首先將文件讀到內存中,計算任務再從內存中讀取數據,彼此之間不會發生阻塞,提高了資源的利用率,也一定程度上加快了網絡的訓練的速度;
- 基於文件隊列和內存隊列結合的形式讀取數據:對於磁盤上的數據,文件名存放在文件名隊列中,內存隊列從文件名隊列中進行數據的讀取,計算設備之間從內存中讀取運算所需的數據。通過文件隊列,可以完成對epoch的更好的管理;
- TFRecord 數據格式:
- tensorflow支持的一種數據格式,內部使用了google自家的Protocol Buffer 二進制數據編碼方案,方便我們模型訓練,驗證,測試數據集的輸入;通過protocal buffer能對現有的數據集進行一定程度上的聚合,減少磁盤IO;所以一定程度上能夠加速,tensorflow數據處理階段的過程;(這么一看,針對文件系統或者存儲系統的研究生生涯學習一定程度上加深了我對磁盤,文件以及系統的理解,還是很不錯的)
資源摘錄自網絡,保持更新,更多內容請關注:cnblogs.com/xuyaowen;