日本在线看黄a美女久草|日本动漫亚洲在线一区|日韩人妻无码免费视频|A√有码中文字幕|日韩一级片视频热久久久|一区二区三区四区精品无码在线|亚洲AV成人无码一二三app|亚洲综合图片绯色|91极品人妻在线网站|国产成人精品一区二三区四区五区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開發(fā)者 正文
發(fā)私信給三川
發(fā)送

0

數(shù)據(jù)太大爆內(nèi)存怎么辦?七條解決思路 | 機(jī)器學(xué)習(xí)開發(fā)手冊

本文作者: 三川 2017-05-30 14:15
導(dǎo)語:使用大數(shù)據(jù)平臺(tái)只是不得不為之的最后手段。

數(shù)據(jù)太大爆內(nèi)存怎么辦?七條解決思路 | 機(jī)器學(xué)習(xí)開發(fā)手冊

雷鋒網(wǎng)按:本文作者 Jason Brownlee 為澳大利亞知名機(jī)器學(xué)習(xí)專家、教育者,對時(shí)間序列預(yù)測尤有心得。原文發(fā)布于其博客。雷鋒網(wǎng)編譯。

數(shù)據(jù)太大爆內(nèi)存怎么辦?七條解決思路 | 機(jī)器學(xué)習(xí)開發(fā)手冊

Jason Brownlee 

在研究、應(yīng)用機(jī)器學(xué)習(xí)算法的經(jīng)歷中,相信大伙兒經(jīng)常遇到數(shù)據(jù)集太大、內(nèi)存不夠用的情況。

這引出一系列問題:

  • 怎么加載十幾、幾十 GB 的數(shù)據(jù)文件?

  • 運(yùn)行數(shù)據(jù)集的時(shí)候算法崩潰了,怎么辦?

  • 怎么處理內(nèi)存不足導(dǎo)致的錯(cuò)誤?

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

處理大型 ML 數(shù)據(jù)文件的七種思路

1. 分配更多內(nèi)存

有的機(jī)器學(xué)習(xí)工具/庫有默認(rèn)內(nèi)存設(shè)置,比如 Weka。這便是一個(gè)限制因素。

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

對于 Weka,你可以在打開應(yīng)用時(shí),把內(nèi)存當(dāng)作一個(gè)參數(shù)進(jìn)行調(diào)整。

2. 用更小的樣本

你真的需要用到全部數(shù)據(jù)嗎?

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

總的來說,對算法做快速地抽查、看到結(jié)果在前后的變化,在機(jī)器學(xué)習(xí)領(lǐng)域是一個(gè)很好的習(xí)慣。

你還可以考慮:相對于模型技巧,做一個(gè)數(shù)據(jù)大小的敏感性分析?;蛟S,對于你的隨機(jī)小樣本,有一個(gè)天然的邊際效應(yīng)遞減分水嶺。越過這個(gè)關(guān)口,繼續(xù)增加的數(shù)據(jù)規(guī)模帶來的好處微乎其微。

3. 更多內(nèi)存

你必須要用 PC 嗎?

你可以考慮內(nèi)存、性能高一個(gè)量級的計(jì)算設(shè)備。比如,租用 AWS 這樣的云服務(wù)。租用云端有數(shù)十 GB 內(nèi)存的機(jī)器,最低價(jià)格每小時(shí)不到一美元。我個(gè)人覺得這是非常實(shí)際的選擇。

4. 轉(zhuǎn)換數(shù)據(jù)格式

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

或許,使用其它格式能加速數(shù)據(jù)載入并且降低內(nèi)存占用。好的選擇包括像 GRIB、NetCDF、HDF 這樣的二進(jìn)制格式。

有很多命令行工具能幫你轉(zhuǎn)換數(shù)據(jù)格式,而且不需要把整個(gè)數(shù)據(jù)集載入內(nèi)存里。

換一種格式,可能幫助你以更緊湊的形式存儲(chǔ)數(shù)據(jù),節(jié)省內(nèi)存空間;比如 2-byte 整數(shù),或者 4-byte 浮點(diǎn)。

5. 流式處理數(shù)據(jù),或漸進(jìn)式的數(shù)據(jù)加載

你的所有數(shù)據(jù),需要同時(shí)出現(xiàn)在內(nèi)存里嗎?

或許,你可以用代碼或庫,隨時(shí)把需要的數(shù)據(jù)做流式處理或漸進(jìn)式加載,導(dǎo)入內(nèi)存里訓(xùn)練模型。

這可能需要算法使用優(yōu)化技術(shù)迭代學(xué)習(xí),比如使用隨機(jī)梯度下降。那些需要內(nèi)存里有所有數(shù)據(jù)、以進(jìn)行矩陣運(yùn)算的算法,比如某些對線性回歸和邏輯回歸的實(shí)現(xiàn),就不適用了。

比如,Keras 深度學(xué)習(xí) API 就提供了漸進(jìn)式加載圖像文件的功能,名為 flow_from_directory

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

6. 使用關(guān)系數(shù)據(jù)庫(Relational database)

關(guān)系數(shù)據(jù)庫為存儲(chǔ)、訪問大型數(shù)據(jù)集提供了標(biāo)準(zhǔn)化的方法。

在內(nèi)部,數(shù)據(jù)存在硬盤中,能漸進(jìn)式地 in batch 批量加載,并使用標(biāo)準(zhǔn)檢索語言 SQL 檢索。

像 MySQL、Postgres 這樣的開源數(shù)據(jù)庫工具,支持絕大多數(shù)的(全部?)編程語言。許多機(jī)器學(xué)習(xí)工具,都能直接與關(guān)系數(shù)據(jù)庫連通。你也可以用 SQLite 這樣更輕量的方法。

我發(fā)現(xiàn),這種方法對大型表格式數(shù)據(jù)集非常有效率。

雷鋒網(wǎng)提醒,你需要用能迭代學(xué)習(xí)的算法。

7. 使用大數(shù)據(jù)平臺(tái)

有的情況下,你可能必須要使用大數(shù)據(jù)平臺(tái),即為處理超大型數(shù)據(jù)集而開發(fā)的平臺(tái)。它們能讓你進(jìn)行數(shù)據(jù)轉(zhuǎn)換,并在其上開發(fā)機(jī)器學(xué)習(xí)算法。

兩個(gè)很好的例子是 Hadoop 與機(jī)器學(xué)習(xí)庫 Mahout,以及 Spark 與 MLLib 庫。

我認(rèn)為,這是用盡上述辦法仍無法解決的情況下,才需要采用的最后手段。單純是這為你的機(jī)器學(xué)習(xí)項(xiàng)目所帶來的額外硬件、軟件復(fù)雜情況,就會(huì)消耗許多精力。

即便如此,有的任務(wù)確實(shí)數(shù)據(jù)太過龐大,前面的選項(xiàng)都無法奏效。

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知

數(shù)據(jù)太大爆內(nèi)存怎么辦?七條解決思路 | 機(jī)器學(xué)習(xí)開發(fā)手冊

分享:
相關(guān)文章

用愛救世界
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個(gè)人簡介
為了您的賬戶安全,請驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說