HDF5資料格式不適合深度學習 - KDnuggets
在本文中,我們將討論 HDF5 是最流行和最可靠的非表格數字資料格式之一。但是這種格式並未針對深度學習工作進行優化。本文建議應該採用什麼樣的 ML 原生資料格式才能真正滿足現代資料科學家的需求。
HDF5是最流行和最可靠的非表格數字資料格式之一。我給你舉個例子。NASA 的地球觀測系統衛星每天以 HDF5 格式收集大約 16 TB 的資料。
命名資料集、分層組織的組、使用者定義的後設資料和屬性、壓縮過濾器、延遲載入2和跨不同軸的類陣列切片等功能使其適用於許多資料處理任務。
儘管 HDF 是在 20 多年前建立的,但通過像h5py這樣維護良好的開源庫,HDF 在 PyData 社群中仍然很受歡迎。
HDF5 未針對深度學習進行優化
在 HDF5 中,大型資料集通常儲存為“塊”;即,陣列的常規分割槽。雖然這一設計決策意味著 HDF 可以儲存千萬億級的非結構化數值資料,如影像和視訊,但它是在雲物件儲存或深度學習之前建立的。因此,DL 工作負載存在許多缺點:
- HDF 檔案的佈局使它們難以在雲端儲存系統(如 Amazon 的 S3 )上進行有效查詢,其中儲存了越來越多的 ML 資料集。您不能直接從儲存為 S3 物件的 HDF5 檔案中讀取 HDF5 庫。在實踐中,整個檔案(通常大小為 GB)應該被複制到本地儲存,然後只能讀取第一個位元組。
- 很難以並行方式對資料應用轉換。轉換,無論是計算機視覺的資料增強還是 NLP 的標記化,都是任何深度學習實驗的核心。
- HDF5(Python 實現)基本上是單執行緒的。這意味著在給定時間只有一個核心可以讀取或寫入資料集。它不容易被併發讀取訪問,這限制了 HDF5 資料支援多個 worker 的能力。
- 它沒有與 Keras 和 PyTorch 等現代框架整合,這意味著研究人員通常需要編寫自定義 DataLoader。隨著 DataLoader 承擔更多職責,例如為並行訓練分片資料集,它們變得更加難以定義。
- 由於 HDF 後設資料散佈在整個檔案中,因此很難訪問隨機的資料塊。事實上,它需要進行許多小的讀取,以收集提取大量資料所需的後設資料。
由於這些挑戰,大多數使用者在可以執行單個 epoch 之前將資料轉換為另一種格式(例如 csv 或 TFRecords)。
ML 社群需要一種新的資料儲存格式
- 雲原生。它應該在不犧牲 GPU 利用率的情況下與雲物件儲存系統(例如 S3 和 GCS)一起使用。
- 可並行化。由於大多數 ML 資料集是一次寫入、多次讀取,因此它應該支援多個 worker 的併發讀取。
- 隨機訪問。由於研究人員很少需要預先獲得整個資料集,因此應以隨機方式訪問以這種格式儲存的資料。
- 轉型。它應該能夠在執行時以最少的程式碼開銷對資料應用任意轉換。這是因為下載 TB 的資料通常是不切實際的:大多數使用者無法訪問大資料叢集,以便在下載後根據需要對資料進行切片和切塊。
- 整合。它應該與流行的深度學習框架(如 Keras 和 PyTorch)以及其他 PyData 庫(如 Numpy 和 Pandas)整合。理想情況下,研究人員應該能夠使用他們為本地儲存的較小資料集開發的相同指令碼訪問這些巨大的雲資料集。
相關文章
- Python適合不適合零基礎學習呢?Python
- 深度學習(一)深度學習學習資料深度學習
- 0基礎該不該學習Python?適合學習嗎?Python
- 深度學習資料深度學習
- 不適合大資料的10件事情大資料
- (資料科學學習手札63)利用pandas讀寫HDF5檔案資料科學
- 深度學習資料集深度學習
- 我適不適合學習新媒體運營?要清楚這幾點!
- 學習Python開發難不難?哪些人適合學習Python?Python
- 女生真的不適合做IT行業嗎?Linux運維適合女生學習嗎?行業Linux運維
- java初學者(零基礎如何入門),我適不適合學習JAVA?Java
- 拯救深度學習:標註資料不足下的深度學習方法深度學習
- TensorFlow與PyTorch之爭,哪個框架最適合深度學習PyTorch框架深度學習
- MapReduce中對大資料處理最合適的資料格式是什麼?大資料
- 深度學習--資料預處理深度學習
- 如何成為資料科學家? - kdnuggets資料科學
- 重磅福利!!機器學習和深度學習學習資料合集機器學習深度學習
- 最適合中國開發者的深度學習框架:走向成熟的PaddlePaddle 1.0深度學習框架
- pyhton好學麼,適合哪些朋友學習?
- 究竟你適不適合買Mac?Mac
- 資料的採集,清洗,資料機器自動標註及轉化為深度學習格式深度學習
- 誰說.NET不適合搞大資料,機器學習、人工智慧大資料機器學習人工智慧
- Hadoop不適合處理實時資料的原因剖析Hadoop
- 強化學習入門 -KDnuggets強化學習
- 深度學習——資料預處理篇深度學習
- 序列資料和文字的深度學習深度學習
- 深度學習煉丹-資料標準化深度學習
- 大資料與深度學習區別大資料深度學習
- 機器學習,深度學習必備資料集機器學習深度學習
- 理解Transformer [資料探勘深度學習]ORM深度學習
- 你適合學習python嗎?python學習人群Python
- 現在還適合學習excel嗎Excel
- Python適合初學者學習嗎?Python
- 女生適合學習UI設計嗎?UI
- 什麼樣的人適合學習UIUI
- 【深度學習】深度解讀:深度學習在IoT大資料和流分析中的應用深度學習大資料
- 傳統的 Linux 軟體包格式不適合現代應用Linux
- KDNuggets:資料科學家使用工具調查資料科學