最近一直在用Pytorch来训练深度强化学习模型,但是速度一直很慢,Gpu利用率也很低。

一、起初开始在训练参数 batch_size = 200, graph_size = 40, epoch_size=100000, 训练速度一个epoch要4h,人麻了…

二、经过网上查找资料后,对batch_size 和训练数据DataLoaderpin_memory,num_workers参数进行了修改调试,结果还是不行,虽然GPU利用率有提高一点,但是速度还是没改进。
三、之后才发现是强化学习的问题环境代码有问题。

问题1.在问题环境中用了两个 双重for循环来对解决数据,源代码如下:

for i in range(arrive_time.shape[0]):if arrive_time[i] > tw[rng, a, 1][i]:delay_time[i] = arrive_time[i] - tw[rng, a, 1][i]else:delay_time[i] = 0

主要是 利用for循环来判断符合一些条件的值并进行处理,虽然类型都是Tensor,调试时也没感觉耗费很多时间,但是把这部分代码去掉后,该做Tensor的函数进行操作后模型训练时间有了提高。
修改后的代码:利用where()函数来进行判断并处理

delay_time_temp = arrive_time - tw[rng, a, 1]
zero2 = torch.zeros_like(delay_time_temp)
delay_time = torch.where(delay_time_temp < 0, zero2, delay_time_temp)

问题2. 有冗余的无意义代码存在
在调试代码的过程中自己有写很多没用的tensor变量和其他一些代码,之后忘记注释掉。这部分也浪费时间。在注释之后时间又有了一部分提高。在相同参数下一个epoch 时间到了十几分钟。

发愁了好几天,记录一下,在训练模型时要避免使用过多的for 语句或者一些冗余的代码,对于tensor 还是要用相关函数来进行处理。具体原因还不太懂,但是速度个人还是不满意,提高graph_size 后速度还是会到30分钟左右,希望还能在优化。

Pytorch 深度强化学习模型训练速度慢相关推荐

  1. 2:pytorch深度强化学习落地:以打乒乓小游戏为例

    Pytorch落地实践 2:pytorch深度强化学习落地:以打乒乓小游戏为例 一.需求分析 二.动作空间设计 三.状态空间设计 四.回报函数设计 五.算法选择 六.训练调试 总结 2:pytorch ...

  2. 系统回顾深度强化学习预训练,在线、离线等研究这一篇就够了

    关注公众号,发现CV技术之美 本文转载自机器之心. 本文中,来自上海交通大学和腾讯的研究者系统地回顾了现有深度强化学习预训练研究,并提供了这些方法的分类,同时对每个子领域进行了探讨. 近年来,强化学习 ...

  3. 深度强化学习DRL训练指南和现存问题(D3QN(Dueling Double DQN))

    目录 参数 iteration episode epoch Batch_Size Experimence Replay Buffer经验回放缓存 Reward discount factor或gamm ...

  4. 图像处理深度学习模型训练速度的硬件影响因素

    深度学习训练速度的影响因素 1 数据流通路径 2影响速率的因素 2.1硬盘读取速度 2.2PCle传输速度 2.3内存读写速度 2.4cpu频率 2.5 GPU 其他名词 以图象训练任务为例,从CPU ...

  5. 加快深度学习模型训练速度@tf.function

    TensorFlow 2 默认的即时执行模式(Eager Execution)为我们带来了灵活及易调试的特性,但为了追求更快的速度与更高的性能,我们依然希望使用 TensorFlow 1.X 中默认的 ...

  6. 【PyTorch深度强化学习】带基线的蒙特卡洛策略梯度法(REINFOECE)在短走廊和CartPole环境下的实战(超详细 附源码)

    需要源码请点赞关注收藏后评论区留言留下QQ~~~ 一.带基线的REINFORCE REINFORCE的优势在于只需要很小的更新步长就能收敛到局部最优,并保证了每次更新都是有利的,但是假设每个动作的奖赏 ...

  7. 目前最好用的大规模强化学习算法训练库是什么?

    点击蓝字  关注我们 本文整理自知乎问答,仅用于学术分享,著作权归作者所有.如有侵权,请联系后台作删文处理. 本文精选知乎问题"目前最好用的大规模强化学习算法训练库是什么?"评论区 ...

  8. 【深度学习基础知识 - 21】加快模型训练速度的方法

    在深度学习任务中,虽然可以通过堆叠参数.设计更复杂的结构来提高模型的表征能力,但这也会导致模型的计算量增加,训练时间延长,大大降低模型的产出效率.这篇文章根据博主的经验简单介绍一些加快模型训练速度的方 ...

  9. 深度强化学习(资源篇)(更新于2020.11.22)

    理论 1种策略就能控制多类模型,华人大二学生提出RL泛化方法,LeCun认可转发 | ICML 2020 AlphaGo原来是这样运行的,一文详解多智能体强化学习的基础和应用 [DeepMind总结] ...

最新文章

  1. js获取页面url中的各项值
  2. 关于登录linux时,/etc/profile、~/.bash_profile等几个文件的执行过程
  3. CSS3 background-image背景图片相关介绍
  4. Mahout的推荐系统
  5. EasyUI中Accordion折叠面板的简单使用
  6. 转 :Vim文件编码识别与乱码处理
  7. 怎么看mysql有没有安装成功_MySQL 安装看这一篇就够了
  8. 【读书笔记】泛型接口 和 泛型方法
  9. Spring 基于注解的配置
  10. ××× L2TP over IPSec 配置
  11. property_自己编写一个读取Property文件的Util类
  12. Verilog写一个对数计算模块Log2(x)
  13. linux设置默认mbr,将默认 EC2 CentOS MBR 转换为 GPT 以绕过 2TiB 限制
  14. 数字涂色 疫情过后希望小学终于又重新开学了
  15. CSS实现导航条图片的翻转菜单
  16. java数组位置_java数组中如何查找元素的位置?
  17. 秋天到了,有哪些秋季必备的育儿小常识?
  18. 计算机模拟多孔碳,华南农业大学刘应亮教授课题组:废弃板栗壳制备多孔碳材料,用于用于储能设备...
  19. 关于毕业设计的总结与思考
  20. qq2007登陆协议分析

热门文章

  1. python连接不上数据库_python连接各种数据库
  2. word2vec模型原理(附python实现代码)
  3. (压位)高精度乘法,高精度加法,高精度减法,高精度除法
  4. 网络处理中TLV形式的不固定格式匹配
  5. 读论文-基于循环gan特征增强的夜间车辆检测 Feature Enhancement Based on CycleGAN forNighttime Vehicle Detection
  6. 全程无坑手撸k8s集群
  7. 初学者的长角牛的攻击和防御实验
  8. 软件工程导论—软件与软件工程
  9. DHT11温湿度传感器(基于树莓派)
  10. Field baseMapper in xxxxx required a bean of type 'xxxxxx' that could not be found 问题