自定义体育馆环境中的学习代理与 stable_baseline3 改变这个环境

问题描述 投票:0回答:1

我定制了一个体育馆环境并使用 stable_baseline3 对其进行训练。但学习过程改变了我的环境。

>>>print(env.step(2))
(510, -0.1, False, False, {})
>>>model.learn(total_timesteps=10000)
>>>print(env.step(2))
(104, -0.1, False, False, {'TimeLimit.truncated': False})

同样的动作=2,学习后的环境给了我另一个观察。 有谁知道为什么?谢谢!

reinforcement-learning
1个回答
0
投票

这取决于很多因素,所以我不能说它是什么。但是,根据您当前的设置,如果您想从某个步骤产生相同的结果,您可能需要重置您的环境(并且可能使用相同的种子):

# Initialize your environment
env = gym.make(...) # Or via some class

# Reset your environment
state = env.reset(seed = 42)
env.step(2)
>> (510, -0.1, False, False, {})

# Learn
model.learn(total_timesteps=10000)

# Reset your environment again
state = env.reset(seed = 42)
env.step(2)
>> (510, -0.1, False, False, {})

在强化学习术语中,如果存在初始状态分布,即有多个状态可以作为起始状态,如果您想在第一步之后重现完全相同的结果,则必须使用种子。如果没有,您不必使用种子。

© www.soinside.com 2019 - 2024. All rights reserved.