- 限制经验重播缓冲区的大小:体验重播缓冲培训期间可以消耗大量的内存。可以减少通过调整其大小BufferSize参数在创建rlDQNAgent或rlDDPGAgent对象。较小的缓冲区大小,需要更少的内存,但可能会影响学习成绩。
- 减少培训批大小:批量大小决定了有多少经验在每个训练迭代处理。小批量大小将减少内存占用但可能放慢训练。你可以调整MiniBatchSize参数在创建代理减少批量大小。
- 较低的分辨率观察:如果在您的环境中观察高分辨率,考虑减少他们的决议。这可以通过将采样和压缩观测之前给他们代理。低分辨率观测需要更少的内存。
- 定期重启MATLAB:正如你提到的,重启MATLAB释放内存消耗在训练。如果它是可行的工作流程,你可以定期重启MATLAB一定数量的训练迭代或集后回收内存。您可以使用退出优雅地终止MATLAB函数。
强化学习培训代理时,C驱动完全占领
19日视图(30天)
显示旧的评论
接受的答案
Shaik
2023年5月14日16:47
嗨Yunyi,
当使用强化学习培训强化学习代理在MATLAB工具箱,重要的是管理内存使用,以避免填充C驱动器。这里有几个方法你可以试着减轻培训期间增加磁盘空间使用情况:
改变临时目录:MATLAB使用一个临时目录来存储中间数据在训练。默认情况下,这个目录设置为系统的临时文件夹,这通常是位于C:驱动器。你可以改变临时目录到另一个位置,如不同的驱动器和更多的可用空间。使用
tempdir
在MATLAB函数来设置不同的临时目录。
newTempDir =“D: \ Temp”;%替代与所需的临时目录
matlab.internal.getAndSetTemporaryDirectory (newTempDir);
这些方法应有助于减轻培训期间增加磁盘空间使用情况。之间找到合适的平衡是很重要的内存使用和培训您的特定应用程序的性能。