Pytorch训练深度强化学习时CPU内存占用一直在快速增加

这篇具有很好参考价值的文章主要介绍了Pytorch训练深度强化学习时CPU内存占用一直在快速增加。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近在用MATD3算法解决多机器人任务,但是在训练过程中,CPU内存一直在增加(注意,不是GPU显存)。我很头疼,以为是算法代码出了问题,导致了内存泄漏,折腾了1天也没解决。后来用memory_profiler对代码分析,才发现是这个函数占用的内存一直在增加:

 def store_transition()

说白了,就是经验池的存储函数,也就是因为一直往经验池里加数据导致内存增加。那为啥以前我没感觉到内存明显增加呢?想了想,可能是因为我最近修改了算法输入,把图像作为状态输入的一部分了,此外换了配置更好的电脑,程序运行速度也提升了。二者综合作用下,内存才会有明显增加,从而被我发现!(我真是脑子抽了,这么简单的问题一直没想到。。。。)

解决方法:终极方法就是换大内存。。。。一些小技巧的话也有,来看看ChatGPT是怎么说的:

  1. 降低图像分辨率

    减小输入图像的分辨率。较低分辨率的图像需要更少的内存。您可以在图像输入被神经网络处理之前使用图像缩放技术来减小图像尺寸。但要小心,不要将分辨率降低到丢失重要细节的程度,因为这可能会对学习产生负面影响。
  2. 使用灰度图像

    考虑将彩色图像转换为灰度图像。灰度图像比彩色图像需要的内存明显少。
  3. 限制重放缓冲区大小

    减小经验重放缓冲区的大小。这种方法将限制存储在内存中的数据量,但也可能影响代理的学习质量。您需要在缓冲区大小和训练稳定性之间取得平衡。
  4. 实施有限经验重放

    有限经验重放(PER)是一种技术,根据学习进展为经验分配不同的优先级。您可以使用PER来更有效地分配内存,将更高的优先级分配给对学习更有信息价值的经验。
  5. 使用状态预处理器

    实施状态预处理器,用于在将图像输入馈送到神经网络之前处理图像以提取相关信息并减小输入数据的维度。这可以帮助减小内存占用。
  6. 批处理

    不要一次处理重放缓冲区中的所有经验,而是执行批处理。这包括在每个训练迭代中抽样一个较小的经验批次。虽然这不会直接减小内存使用,但可以更有效地管理内存。
  7. 分布式计算

    如果可行,考虑使用具有多台计算机或GPU的分布式计算环境。分布式训练可以将内存使用分散到不同的资源中。
  8. 优化代码

    确保您的代码具有高效的内存使用。审查数据加载、处理和模型训练流程,以最小化内存消耗。避免不必要的内存复制,并使用生成器或数据流水线来实时加载和处理数据。
  9. 监控内存使用

    使用内存分析工具监控训练过程的内存使用情况。这有助于识别特定的内存热点或内存泄漏。
  10. 批量图像压缩

    如果可能,在将图像数据存储到重放缓冲区之前对图像数据进行压缩。压缩可以显着减小图像数据的内存占用。
  11. 增量训练

    而不是训练一定数量的剧集,考虑增量训练。将代理分成较小的块进行训练,并定期保存和清除经验重放缓冲区。这样,您可以更有效地控制内存使用。

 PS:前3点我觉得挺好用的,有其他好的手段也欢迎大家补充!文章来源地址https://www.toymoban.com/news/detail-722893.html

到了这里,关于Pytorch训练深度强化学习时CPU内存占用一直在快速增加的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深度强化学习】(8) iPPO 模型解析,附Pytorch完整代码

    大家好,今天和各位分享一下多智能体深度强化学习算法 ippo,并基于 gym 环境完成一个小案例。完整代码可以从我的 GitHub 中获得:https://github.com/LiSir-HIT/Reinforcement-Learning/tree/main/Model 多智能体的情形相比于单智能体更加复杂,因为 每个智能体在和环境交互的同时也在和其他

    2024年02月03日
    浏览(36)
  • 【深度强化学习】(2) Double DQN 模型解析,附Pytorch完整代码

    大家好,今天和大家分享一个深度强化学习算法 DQN 的改进版 Double DQN,并基于 OpenAI 的 gym 环境库完成一个小游戏,完整代码可以从我的 GitHub 中获得: https://github.com/LiSir-HIT/Reinforcement-Learning/tree/main/Model DQN 算法的原理是指导机器人不断与环境交互,理解最佳的行为方式,最

    2024年02月03日
    浏览(31)
  • Pytorch深度强化学习:Gym安装与环境搭建教程(附基本指令表)

    本专栏重点介绍强化学习技术的数学原理,并且 采用Pytorch框架对常见的强化学习算法、案例进行实现 ,帮助读者理解并快速上手开发。同时,辅以各种机器学习、数据处理技术,扩充人工智能的底层知识。 🚀详情:《Pytorch深度强化学习》 强化学习是在潜在的不确定复杂环

    2024年02月05日
    浏览(83)
  • 【深度强化学习】(4) Actor-Critic 模型解析,附Pytorch完整代码

    大家好,今天和各位分享一下深度强化学习中的 Actor-Critic 演员评论家算法, Actor-Critic 算法是一种综合了策略迭代和价值迭代的集成算法 。我将使用该模型结合 OpenAI 中的 Gym 环境完成一个小游戏,完整代码可以从我的 GitHub 中获得: https://github.com/LiSir-HIT/Reinforcement-Learning

    2024年02月03日
    浏览(33)
  • Pytorch深度强化学习案例:基于Q-Learning的机器人走迷宫

    本专栏重点介绍强化学习技术的数学原理,并且 采用Pytorch框架对常见的强化学习算法、案例进行实现 ,帮助读者理解并快速上手开发。同时,辅以各种机器学习、数据处理技术,扩充人工智能的底层知识。 🚀详情:

    2024年02月04日
    浏览(46)
  • Pytorch深度强化学习(3):详解K摇臂赌博机模型和ϵ-贪心算法

    本专栏重点介绍强化学习技术的数学原理,并且 采用Pytorch框架对常见的强化学习算法、案例进行实现 ,帮助读者理解并快速上手开发。同时,辅以各种机器学习、数据处理技术,扩充人工智能的底层知识。 🚀详情:

    2024年02月11日
    浏览(27)
  • Pytorch深度强化学习1-2:详解K摇臂赌博机模型和ϵ-贪心算法

    本专栏重点介绍强化学习技术的数学原理,并且 采用Pytorch框架对常见的强化学习算法、案例进行实现 ,帮助读者理解并快速上手开发。同时,辅以各种机器学习、数据处理技术,扩充人工智能的底层知识。 🚀详情:

    2024年02月11日
    浏览(34)
  • Anaconda+PyCharm+PyTorch+Gym深度强化学习环境搭建 送新手直接送进炼丹炉

    需要下载的软件和包: Anaconda Pycharm Python PyTorch gym pygame 直接从官网下载: https://www.anaconda.com https://www.anaconda.com/ 点击Download下载即可。 下载好后,打开安装包,自己选一个安装路径,默认路径也行,放其他盘也行,我安装在D盘下的Anaconda文件夹下。 安装向导一路下一步即可

    2024年02月06日
    浏览(41)
  • 如何看内存占用情况,vue反复刷新标签页导致面内存一直在涨,系统反应越来越慢,内存占用4个g。

    内存泄漏(Memory Leak): 不再用到的内存,没有及时释放; 内存溢出(Out Of Memory): 应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于能提供的最大内存。 js 写法(闭包、全局变量等)、 dom 事件监听、循环定时器等这些造成的泄漏; 组件

    2024年02月11日
    浏览(27)
  • 深度学习环境完整安装(Python+Pycharm+Pytorch cpu版)

            在这里,我们将引导您逐步完成深度学习环境的完整安装,助您踏上从Python到PyTorch的探索之旅。通过本博客,您将轻松掌握如何设置Python环境、使用Pycharm进行开发以及安装Pytorch,成为一名具备完整深度学习环境的实践者。让我们一起开始吧! 文章目录(如果有会的

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包