微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何并行运行多个开放式AI体育馆环境

如何解决如何并行运行多个开放式AI体育馆环境

我正在尝试运行10个并行的开放式AI体育馆环境,每个环境都在其自己的线程上。问题是我想在环境中保存每个步骤的转换,并在所有线程完成后访问它。但是,我无法弄清楚如何为每个列表创建一个单独的实例,然后从主线程访问它们。

任何帮助将不胜感激。

def run_episode(scale,modification_network,expert_network):
    with lock:
        rollouts_obs = []
        rollouts_action = []
        rollouts_reward = []
        rollouts_done = []
        env = BipedalWalker()
        env.update_scale(scale)
        # reset the environment to collect the first observation
        done = False
        obs = env.reset()
        while not done:
            action = env.action_space.sample()
            obs,reward,done,info = env.step(action)

            rollouts_obs.append(obs)
            rollouts_action.append(action)
            rollouts_reward.append(reward)
            rollouts_done.append(done)

jobs = []
for i in range(10):
    thread = threading.Thread(target=run_episode,args=(scale[i],agent,expert_net))
    jobs.append(thread)
    
for j in jobs:
    j.start()

for j in jobs:
    j.join()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。