當前位置:
首頁 > 知識 > 數據太大爆內存怎麼辦?七條解決思路

數據太大爆內存怎麼辦?七條解決思路

AI 研習社按:本文作者 Jason Brownlee 為澳大利亞知名機器學習專家、教育者,對時間序列預測尤有心得。原文發佈於其博客。

Jason Brownlee

在研究、應用機器學習演算法的經歷中,相信大伙兒經常遇到數據集太大、內存不夠用的情況。

這引出一系列問題:

怎麼載入十幾、幾十 GB 的數據文件?

運行數據集的時候演算法崩潰了,怎麼辦?

怎麼處理內存不足導致的錯誤?

本文將討論一些常用的解決辦法,供大家參考。

處理大型 ML 數據文件的七種思路1. 分配更多內存

有的機器學習工具/庫有默認內存設置,比如 Weka。這便是一個限制因素。

你需要檢查一下:是否能重新設置該工具/庫,分配更多內存。

對於 Weka,你可以在打開應用時,把內存當作一個參數進行調整。

2. 用更小的樣本

你真的需要用到全部數據嗎?

可以採集一個數據的隨機樣本,比如前 1,000 或 100,000 行。在全部數據上訓練最終模型之前(使用漸進式的數據載入技巧),先試著用這個小樣本解決問題。

總的來說,對演算法做快速地抽查、看到結果在前後的變化,在機器學習領域是一個很好的習慣。

你還可以考慮:相對於模型技巧,做一個數據大小的敏感性分析。或許,對於你的隨機小樣本,有一個天然的邊際效應遞減分水嶺。越過這個關口,繼續增加的數據規模帶來的好處微乎其微。

3. 更多內存

你必須要用 PC 嗎?

你可以考慮內存、性能高一個量級的計算設備。比如,租用 AWS 這樣的雲服務。租用雲端有數十 GB 內存的機器,最低價格每小時不到一美元。我個人覺得這是非常實際的選擇。

4. 轉換數據格式

你是否把數據存為原始的 ASCII 文本,比如 CSV 文件?

或許,使用其它格式能加速數據載入並且降低內存佔用。好的選擇包括像 GRIB、NetCDF、HDF 這樣的二進位格式。

有很多命令行工具能幫你轉換數據格式,而且不需要把整個數據集載入內存里。

換一種格式,可能幫助你以更緊湊的形式存儲數據,節省內存空間;比如 2-byte 整數,或者 4-byte 浮點。

5. 流式處理數據,或漸進式的數據載入

你的所有數據,需要同時出現在內存里嗎?

或許,你可以用代碼或庫,隨時把需要的數據做流式處理或漸進式載入,導入內存里訓練模型。

這可能需要演算法使用優化技術迭代學習,比如使用隨機梯度下降。那些需要內存里有所有數據、以進行矩陣運算的演算法,比如某些對線性回歸和邏輯回歸的實現,就不適用了。

比如,Keras 深度學習 API 就提供了漸進式載入圖像文件的功能,名為 flow_from_directory

另一個例子式 Pandas 庫,可批量載入大型 CSV 文件。

6. 使用關係資料庫(Relational database)

關係資料庫為存儲、訪問大型數據集提供了標準化的方法。

在內部,數據存在硬碟中,能漸進式地 in batch 批量載入,並使用標準檢索語言 SQL 檢索。

像 MySQL、Postgres 這樣的開源資料庫工具,支持絕大多數的(全部?)編程語言。許多機器學習工具,都能直接與關係資料庫連通。你也可以用 SQLite 這樣更輕量的方法。

我發現,這種方法對大型表格式數據集非常有效率。

再次提醒,你需要用能迭代學習的演算法。

7. 使用大數據平台

有的情況下,你可能必須要使用大數據平台,即為處理超大型數據集而開發的平台。它們能讓你進行數據轉換,並在其上開發機器學習演算法。

兩個很好的例子是 Hadoop 與機器學習庫 Mahout,以及 Spark 與 MLLib 庫。

我認為,這是用盡上述辦法仍無法解決的情況下,才需要採用的最後手段。單純是這為你的機器學習項目所帶來的額外硬體、軟體複雜情況,就會消耗許多精力。

即便如此,有的任務確實數據太過龐大,前面的選項都無法奏效。

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 唯物 的精彩文章:

開發者自述:我是怎樣理解支持向量機與神經網路的
榨出聊天機器人的價值!用 Tensorflow 搭建能理解語境的客服小二!
一篇文章教你用TensorFlow寫名著
如何在微服務架構下構建高效的運維管理平台?

TAG:唯物 |

您可能感興趣

你被大數據「殺熟」過嗎?怎麼解決的?
大數據的「攔路虎」,信息孤島能否解決?
車內異味怎麼破?四個大招教你解決!
閃腰岔氣怎麼辦?三種常見中藥解決問題!
褲子太長太大了怎麼辦?一招教你解決
如何設置虛擬內存?虛擬內存太低怎麼辦?解決虛擬內存不足問題
閉經了怎麼辦?掌握這些輕鬆解決!
經常掉頭髮怎麼辦?教你幾招解決煩惱!
掉頭髮怎麼辦?只需三招,解決脫髮難題
如果忘記手機解鎖密碼怎麼辦?解決辦法!
大姨媽來了肚子痛怎麼辦 一個招數教你解決痛經問題
六爻納甲占卜中報數起卦只能局限於一爻動的解決思路
有眼角紋怎麼辦?一招解決
牆面做防水貼磚不牢怎麼辦?解決辦法看這裡!
你被大數據「殺熟」過嗎?怎麼解決的?丨Q言Q語
宇宙第一大難題解決辦法——婆媳關係
小米電視內存不足是什麼原因?有什麼辦法解決
三大肝臟隱患殺手,只要中一條就不得了!另附解決密招!
做菜調味品放錯了怎麼辦?一招就能解決!
花卉萎焉不知道怎麼辦?一篇文章教你完美解決