小编Dan*_*mir的帖子

为什么稳定基线 3 中的多处理速度较慢?

我以 Stable Baselines 3 的多处理示例为例,一切都很好。 https://colab.research.google.com/github/Stable-Baselines-Team/rl-colab-notebooks/blob/sb3/multiprocessing_rl.ipynb#scrollTo=pUWGZp3i9wyf

多处理训练比 num_cpu=4 的单处理训练花费的时间大约少 3.6 倍。

但是,当我尝试使用 PPO 代替 A3C,使用 BipedalWalker-v3 代替 CartPole-v1 时,我发现多处理模式下的性能更差。我的问题是:我做错了什么?为什么速度比较慢?

我的代码是:

import gym
import time

from stable_baselines3 import PPO
from stable_baselines3 import A2C
from stable_baselines3.common.env_util import make_vec_env
from stable_baselines3.common.evaluation import evaluate_policy

env_name = "BipedalWalker-v3"
num_cpu = 4
n_timesteps = 10000

env = make_vec_env(env_name, n_envs=num_cpu)

model = PPO('MlpPolicy', env, verbose=0)

start_time = time.time()
model.learn(n_timesteps)
total_time_multi = time.time() - start_time
print(f"Took {total_time_multi:.2f}s for multiprocessed version - {n_timesteps / total_time_multi:.2f} FPS")


single_process_model = PPO('MlpPolicy', …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing reinforcement-learning openai-gym stable-baselines

6
推荐指数
1
解决办法
2319
查看次数