释放一点 RAM 空间

数据挖掘 Python 强化学习 火炬 dqn
2022-02-15 06:04:29

这是Colab 笔记本

如果 1500 集后batch_size=256,RAM 崩溃。使用 Colab,我拥有相当于 25.5 GB 的 RAM。正常吗?还是我没有足够的内存?我想在某个时候,RAM 必须释放一些空间。我该如何解决?

2个回答

如果 RAM 内存在训练期间出现问题,并且您已经运行了 1500 集,那么建议您在每集中保存一些信息(例如附加到 a list)。随着时间的推移,这将慢慢增加并导致崩溃。

快速查看您的代码后,它看起来像每个循环都在scores增长ep_history您可以考虑将该信息写入磁盘,例如写入json文件或pickle对象,使用类似这样的内容

import pickle

if episode % 1000 == 0:
    with open(f"./results_dir/scores_{episode}.pkl", "wb") as file_handle:
        pickle.dump(scores, file_handle)

您当然应该保留您的陈述所需的历史记录量,print()并随着时间的推移计算平均分数。


您很少需要担心自己释放一些 RAM,因为 Python(然后是操作系统本身)将开始允许内存被覆盖。结果是一样的,它们基本上被删除了。

批处理大小是决定 RAM 利用率的关键因素之一,因为反向传播仅在批处理之后发生。在此之前,所有临时状态都必须保存。

检查这个答案

此外,我们通常不需要批量大小 = 256。