Вот простой код, воспроизводящий проблему:
Код: Выделить всё
import gymnasium as gym
from stable_baselines3 import DQN
env = gym.make("CartPole-v1")
model = DQN("MlpPolicy", env, verbose=0, stats_window_size=100_000)
model.learn(total_timesteps=100_000)
Код: Выделить всё
print(model.ep_info_buffer[-1])
Но если я оценю модель с помощью следующего кода:
Код: Выделить всё
obs, info = env.reset()
total_reward = 0
while True:
action, _states = model.predict(obs, deterministic=True)
obs, reward, terminated, truncated, info = env.step(action)
total_reward = total_reward + reward
if terminated or truncated:
obs, info = env.reset()
break
print("total_reward {}".format(total_reward))
Я получаю другую награду, чего не ожидал .
Я ожидал получить тот же код 409, что и в model.ep_info_buffer[-1].
Почему такая разница? Это .ep_info_buffer — это другое, чем награда за эпизод?
Подробнее здесь: https://stackoverflow.com/questions/793 ... fer-vs-eva