Python 中的記憶體錯誤

Vaibhav Vaibhav 2022年5月17日
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 指令碼的時間複雜度,大大提高了效能。

作者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

相關文章 - Python Error