相关疑难解决方法(0)

Jupyter Notebook 内存管理

我目前正在 kaggle 中开发 jupyter notebook。在我的 numpy 数组上执行所需的转换后,我对其进行了腌制,以便将其存储在磁盘上。我这样做的原因是我可以释放大数组消耗的内存。

酸洗阵列后消耗的内存约为 8.7 GB。

我决定运行此代码通过@扬GLX代码段中提供在这里,找出变量占用我的记忆:

import sys

def sizeof_fmt(num, suffix='B'):
    ''' by Fred Cirera,  /sf/answers/76645341/, modified'''
    for unit in ['','Ki','Mi','Gi','Ti','Pi','Ei','Zi']:
        if abs(num) < 1024.0:
            return "%3.1f %s%s" % (num, unit, suffix)
        num /= 1024.0
    return "%.1f %s%s" % (num, 'Yi', suffix)

for name, size in sorted(((name, sys.getsizeof(value)) for name, value in locals().items()),
                         key= lambda x: -x[1])[:10]:
    print("{:>30}: {:>8}".format(name, sizeof_fmt(size)))
Run Code Online (Sandbox Code Playgroud)

执行此步骤后,我注意到数组的大小为 3.3 gb,所有其他变量的大小加在一起约为 0.1 gb。

我决定通过执行以下操作来删除数组并查看是否可以解决问题:

del my_array
gc.collect()
Run Code Online (Sandbox Code Playgroud)

这样做之后,内存消耗从 8.7 GB 减少到 …

python numpy ipython jupyter jupyter-notebook

8
推荐指数
1
解决办法
1262
查看次数

标签 统计

ipython ×1

jupyter ×1

jupyter-notebook ×1

numpy ×1

python ×1