【蘑菇书EasyRL】强化学习,笔记整理
- 1.笔记整理
- 1.1 学习和决策代码框架
- 2. 遇到的bug
- gym 环境,新版本python无法使用
- env_specs = envs.registry.all() 报错
蘑菇书的教程地址:
https://datawhalechina.github.io/easy-rl/#/chapter1/chapter1?id=_171-gym
强化学习像是一朵昙花,在20年到22年曾经出现过,被认为可能是未来的主流,随着大模型的出现,大部分人的精力都随之而去。
很多代码库都随着python以及软件版本的更新,有了很多的修改,本人近期学习蘑菇书,在这记录学习中遇到的问题等
1.笔记整理
1.1 学习和决策代码框架
SimpleAgent 类的 decide()方法用于决策,learn() 方法用于学习,该智能体不是强化学习智能体,不能学习,只能根据给定的数学表达式进行决策。
class SimpleAgent:def __init__(self, env):passdef decide(self, observation): # 决策position, velocity = observationlb = min(-0.09 * (position + 0.25) ** 2 + 0.03,0.3 * (position + 0.9) ** 4 - 0.008)ub = -0.07 * (position + 0.38) ** 2 + 0.07if lb < velocity < ub:action = 2else:action = 0return action # 返回动作def learn(self, *args): # 学习passagent = SimpleAgent(env)
2. 遇到的bug
gym 环境,新版本python无法使用
gym 环境一开始是openAI开发了制作强化学习的环境,还有之前非常有名的马里奥,但是这个已经被抛弃,使用了一个全新的名字gymnasium。所以如果你需要使用新版本的python的话,可以尝试这个包。
PS:有机会自己搭建一个fc游戏的环境,现有的环境大部分都已经年久失修,很多代码无法使用。
env_specs = envs.registry.all() 报错
是因为all是比较老的方式,会出现:的报错。所以需要修改成values
from gymnasium import envs
env_specs = envs.registry.values()
envs_ids = [env_spec.id for env_spec in env_specs]
print(envs_ids)