Python 中的記憶體錯誤
當計算機系統用完 RAM 隨機存取儲存器
或記憶體來執行程式碼時,程式語言會引發記憶體錯誤。
如果它無法執行 Python 指令碼,Python 直譯器將為 Python 程式設計顯示 MemoryError
異常。本文將討論 Python 中的 MemoryError
。
Python 中的 MemoryError
當 Python 指令碼填滿計算機系統中的所有可用記憶體時,會引發記憶體錯誤。解決此問題的最明顯方法之一是增加機器的 RAM
。
但購買新的 RAM 棒並不是這種情況的唯一解決方案。讓我們看看這個問題的其他一些可能的解決方案。
切換到 64 位
安裝 Python
通常,使用 32 位
安裝時會發生 MemoryError
異常。32 位
Python 安裝只能訪問大約等於 4 GB
的 RAM。
如果計算機系統也是 32 位
,可用記憶體就更少了。在大多數情況下,甚至 4 GB
的記憶體就足夠了。儘管如此,Python 程式設計仍然是一種多用途語言。
它被用於機器學習、資料科學、Web 開發、應用程式開發、GUI 圖形使用者介面
和人工智慧等重要領域。
不應因此閾值而受到限制。要解決此問題,你所要做的就是安裝 Python 程式語言的 64 位
版本。
64 位
計算機系統可以訪問 2⁶⁴
不同的記憶體地址或 18-Quintillion 位元組的 RAM。如果你有一個 64 位
計算機系統,你必須使用 64 位
版本的 Python 來發揮它的全部潛力。
Python 中的生成器函式
在從事機器學習和資料科學專案時,必須處理大量資料集。將如此龐大的資料集直接載入到記憶體中,對其執行操作並儲存修改會很快填滿系統的 RAM。
這種異常可能會導致應用程式出現嚴重的效能問題。解決此問題的一種方法是使用生成器。生成器即時或在需要時生成資料。
TensorFlow 和 Keras 等 Python 庫提供了高效建立生成器的實用程式。還可以使用任何使用純 Python 的庫構建生成器。
要徹底瞭解 Python 生成器,請參閱本文。
在 Python 中優化你的程式碼
可以通過優化 Python 程式碼來解決 MemoryError
異常。優化包括以下任務:
-
通過釋放或釋放新的或分配的記憶體來擺脫垃圾和未使用的資料。
-
將更少的資料儲存到記憶體中,並改為使用
generators
。 -
使用批處理技術
將海量資料集分解成更小的資料塊
來計算更小的資料塊以獲得最終結果。這種技術通常用於訓練巨大的機器學習模型,例如影象
分類器
、聊天機器人
、無監督學習
和深度學習
。 -
要解決問題,請使用最先進的演算法和強大而先進的資料結構,例如圖形、樹、字典或地圖。
-
使用
動態規劃
保留預先計算的結果。 -
使用 Numpy、Keras、PyTorch 和 Tensorflow 等功能強大且高效的庫來處理資料。
請注意,這些技術適用於所有程式語言,例如 Java、JavaScript、C 和 C++。
此外,優化提高了 Python 指令碼的時間複雜度,大大提高了效能。