首頁 > 後端開發 > Python教學 > 為什麼我無法在 Ubuntu 上分配大型 NumPy 數組,如何修復它?

為什麼我無法在 Ubuntu 上分配大型 NumPy 數組,如何修復它?

Linda Hamilton
發布: 2024-11-23 21:34:14
原創
393 人瀏覽過

Why Can't I Allocate Large NumPy Arrays on Ubuntu, and How Can I Fix It?

Numpy 中大型數組的記憶體分配限制

在Ubuntu 18 上嘗試分配大型numpy 數組時遇到錯誤,「無法分配具有形狀和資料類型的數組”,在MacOS 上不會遇到此問題。造成這種差異的原因在於系統的過度使用處理模式。

過量使用處理和記憶體分配

過量使用處理模式決定了系統如何管理記憶體分配請求。在預設模式 (0) 下,核心檢查是否有足夠的實體記憶體來提交分配請求。如果不是,則拒絕分配。在過度使用模式 1 下,無論可用實體記憶體為何,核心始終允許分配。

解決方案

要在Ubuntu 上解決此問題,您需要啟用過度使用模式1. 以root 身分執行以下命令:

$ echo 1 > /proc/sys/vm/overcommit_memory
登入後複製

這會將過度使用處理模式變更為1,允許分配大型numpy陣列。

稀疏數組和虛擬記憶體

過度使用模式1對於稀疏數組很有用,其中只有一小部分實際使用了分配的記憶體。這是因為系統只將實體記憶體提交給明確寫入的頁面,從而節省實體記憶體。

警告

需要注意的是,在過度使用模式下1 允許大量分配,如果分配的內存超過可用物理內存,可能會導致潛在的系統不穩定。謹慎使用過度使用模式 1,並密切監視系統的記憶體使用。

以上是為什麼我無法在 Ubuntu 上分配大型 NumPy 數組,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板