17.1_内存管理
17.1 内存管理
Python会自动从内存中删除不再需要的对象。这个功能非常好,有效减少了用户自行管理内存的情况。不需要的对象会被Python解释器(在幕后)释放出来,这样我们就可以专注于更重要的编程任务了。但是,如果代码写得不好,就可能出现内存泄漏或内存不足等情况,特别是神经网络经常处理大量数据,更容易碰到这些情况。因此,如果内存管理做得不好,就很可能因内存耗尽而花费大量运行时间(如果在GPU上运行,会导致内存不足,程序无法继续运行)。
下面简单了解一下Python是如何管理内存的。Python(准确来说是
CPython)使用两种方式管理内存:一种是引用计数,另一种是分代垃圾回收。这里我们把后者称为GC(Garbage Collection,垃圾回收)。首先来看引用计数的相关内容。

有些资料也将引用计数方式的内存管理称为垃圾回收(GC)。本书把这种方式的内存管理称为“引用计数”,不将其纳入GC的范畴。