Stable Baselines3中PPO与A2C算法的默认参数查询
Stable Baselines3中PPO与A2C的默认参数及查询方法
一、核心默认参数(网络结构与学习率)
PPO算法
- 学习率:默认值为
3e-4,采用线性衰减策略,训练过程中从初始值逐步降到0。 - 网络结构:默认使用共享主干的MLP(多层感知机)结构,策略网络(pi)和价值网络(vf)各包含两层64神经元的全连接层,对应参数配置为
policy_kwargs={"net_arch": [dict(pi=[64, 64], vf=[64, 64])]}。针对离散/连续动作空间,输出层会自动适配动作类型。
A2C算法
- 学习率:默认值为
7e-4,采用固定学习率,训练全程保持该值不变。 - 网络结构:与PPO默认配置一致,同样是共享主干的MLP,策略和价值网络各为两层64神经元的全连接层,参数配置同上述PPO的
net_arch。
二、参数查询途径
- 查看源码:直接查看Stable Baselines3源码中对应算法的实现文件(如
ppo.py、a2c.py),在类的__init__方法里可以找到所有参数的默认定义。 - 代码内打印验证:实例化算法时不传入自定义参数,通过访问实例属性查看默认值,示例代码:
from stable_baselines3 import PPO, A2C # 查看PPO默认参数 ppo_model = PPO("MlpPolicy", "CartPole-v1") print("PPO默认学习率:", ppo_model.learning_rate) print("PPO默认网络结构参数:", ppo_model.policy_kwargs) # 查看A2C默认参数 a2c_model = A2C("MlpPolicy", "CartPole-v1") print("A2C默认学习率:", a2c_model.learning_rate) - 阅读源码文档字符串:每个算法的
__init__方法都附带详细的参数注释,包含默认值和参数作用说明,可在IDE中直接查看。
内容的提问来源于stack exchange,提问作者Samuel
相关产品推荐
相关产品推荐

