johnjim0816
johnjim0816
> 十分感谢作者的分享,我有一个疑惑就是按理在更新中,每一个episode都只会输出一个损失函数,但实际上每次都会出来很多个损失函数,画图的看的话回合数只有200,但是损失函数甚至上万个,这是什么原因? 接着这层楼说一下,笔者最近忙于出强化学习的书回复和修正要晚点(
> 可以新增PPO continuous 版本么 看了好多版本==但是都晕晕乎乎的,从你的tutorial开始学的RL代码,所以还是想看看你咋写的T.T 嗯呢,稍微,秋天比较忙qaq,会更新的
> 您好,在PPO的task0_train.py的103行可能有个小错误, cfg.train_eps 是不是应该为 cfg.eval_eps? 感谢,已更正
1. example“复用”的部分也就是改一下数据类型 2. 设定的model不同,理论上是可以同时处理的,比如state只会对接你的model,你的对应model是CNN的自然也没有什么问题 3. 我说的可能不是很清楚,我说的是每个算法包含agent和model,agent主要包含predict和learn方法,model则是一些基本模型 4. 据我所知,agent的learn数据模式是固定的,就算是数据处理也不会是转换一个tensor这样子的
这些我都知道,“你指的是model和agent也放到parl内部?然后移除algorithm的抽象?”,这个我还没有仔细考究,应该不需要移动吧,一个套件包含algos(集成的算法),models(常见的模型,如果用户需要别的可以自定义),envs(自己做的模型)。其他的你说的都对。因为我看了源码写的跟我写的架构有些神似,目前来看我觉得这种转换tensor的数据接口再集成一些更好些,因为这个是应用模块而不是教学tutorials,傻瓜式对用户更友好些。
可以的,我也是因为一些需要才想讨论一下。
> 十分感谢作者的分享,我有一个疑惑就是按理在更新中,每一个episode都只会输出一个损失函数,但实际上每次都会出来很多个损失函数,画图的看的话回合数只有200,但是损失函数甚至上万个,这是什么原因? 我理解你指的应该是损失计算,是这样的,每次从replaybuffer里面提取一个批量的样本就需要计算一次损失做梯度更新,跟回合数关系其实不大
同学,暂时用task0和task1,现在有用了,代码近期在大迭代,所以可能误传了(
> 书还没看,跑了跑代码,dqn代码里,task1-task5都跑不通 你好,已经解决~
目前开发版已经增加了conda的yaml和pip的requirements.txt,但是鉴于之前牵一发而动全身改动DQN一部分容易造成PPO的bug等等,还要再等一段时间更新到该仓库