如何解决了解稳定基线中的自定义政策3
我试图从这个 doc page 中了解 stable-baselines3 中的策略网络。
-
如 this 示例中所述,要指定自定义 CNN 特征提取器,我们扩展
BaseFeaturesExtractor
类并在policy_kwarg.features_extractor_class
中使用第一个参数指定它CnnPolicy
:model = PPO("CnnPolicy","BreakoutNoFrameskip-v4",policy_kwargs=policy_kwargs)
-
如 this 示例中所述,要指定自定义 MLP 特征提取器,我们扩展
ActorCriticPolicy
类和 override_build_mlp_extractor()
和将其作为第一个参数传递:class CustomActorCriticPolicy(ActorCriticPolicy): ... model = PPO(CustomActorCriticPolicy,"CartPole-v1",verbose=1)
-
我觉得我们可以使用 CNN 提取器或 MLP 提取器。因此,将
MlpPolicy
作为第一个参数传递给模型,然后在policy_kwarg.features_extractor_class
中指定 CNN 特征提取器是没有意义的,如 this 示例。这导致以下政策(包含features_extractor
和mlp_extractor
),我认为这是不正确的:ActorCriticPolicy( (features_extractor): Net( (conv1): Conv2d(1,32,kernel_size=(3,3),stride=(1,1)) (conv2): Conv2d(32,64,1)) (fc3): Linear(in_features=384,out_features=512,bias=True) ) (mlp_extractor): MlpExtractor( (shared_net): Sequential( (0): Linear(in_features=512,out_features=64,bias=True) (1): ReLU() ) (policy_net): Sequential( (0): Linear(in_features=64,out_features=32,bias=True) (1): ReLU() (2): Linear(in_features=32,out_features=16,bias=True) (3): ReLU() ) (value_net): Sequential( (0): Linear(in_features=64,bias=True) (3): ReLU() ) ) (action_net): Linear(in_features=16,out_features=7,bias=True) (value_net): Linear(in_features=16,out_features=1,bias=True) )
Q3.我的这种理解是否正确?如果是,那么是否忽略了 MLP 或 CNN 特征提取器之一?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。