问题描述
我正在尝试运行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 (将#修改为@)