[错误] 使用 gym.vector.AsyncVectorEnv() 方法调用 step 方法时出现 EOF 错误。
作者: jng164创建于 2024年7月8日更新于 2025年4月11日
** 描述错误** 12M训练步骤后,在使用`步骤 ' 方法时,密码突然出现EOF错误。
** 守则实例** 我使用 QQgym.vector. AsyncVectorEnv () 。 我使用 QQMake env``` 来创建我的环境 。
def make env(gym id,种子,idx,捕获 video,运行 名称,qubits,深度) :
f tunk (): (中文(简体) ).
env=twitter.make (gym id,qubits=qubits,深度=深度,env id=idx) (中文(简体) ).
env = troom. wrappers. Record Episode Statistics (env) (中文(简体) ).
如果抓取 video 和 idx = 0:
env = troom.wrappers. RecordVideo(env, f"videos/{run name}").
返回内存
回击代码的主要部分如下:
如果... 名字... "... main...":
mp. set start 方法('sspawn')
设备 = 火炬.device ("cuda" 如果火炬.cuda.is 可使用 () and args.cuda else "cpu")
envs = 体育馆. vector. AsyncVectorEnv(中文(简体) ).
[make env(args.gym id, args.seed +一, args.capture video, run name, qubits, 深度)为i在范围(args.num envs)],
共享 memory=虚假)
代理 = AgentGNN(envs, device).to(device)#Graph 神经网络
用于更新范围( 1, num updates + 1) :
在范围(args.num steps)中的步数:
global step * 1 * 参数.num envs
已做 [步骤] = 下个已做
尝试 :
使用火炬.no grad():
动作, logprob, , 值, logits, action ids =代理. get action and value( ext obs graph, 设备=device)
值 [step] =值.平面 ()
动作[步骤]=动作
logprobs[步骤]=logprob
下一个 obs, 奖励, 完成, 贬值, 信息=envs. step( action ids.cpu (. numpy ())
除类型错误为 e:
打印(f"错误:{e}")
奖励[步骤] = hill.tensor (reward).to (device).view (-1).
下一个 done = 火炬。 tensor(done).to(设备)就我理解错误而言,这个代码会产生尽可能多的线程,就像我想要的环境一样. 在一个特定线条中,代理人会断开`env.step ()'。 如你所见,我试图用一个尝试来解决这个问题,但这行不通。 我认为这可能是因为线条一直被搁置到断裂时,但我不确定。
** 追踪**
回溯( 最近最后一次通话) :
文件 "/home/jriu/Copt-cquere/rl-zx/ppo.py", 第204行,以<module>
下一个 obs, 奖励, 完成, 贬值, 信息=envs. step( action ids.cpu (. numpy ())
file "/home/jriu/anaconda3/envs/cquere/lib/python3.10/ site-packages/gym/vector/vector env.py",137行,步入.
返回自定义。 step wait ()
File "/home/jriu/anaconda3/envs/cquere/lib/python3.10/ site-packages/gym/vector/async vector env.py", 第320行, 在阶下等.
结果, 成功 = pype.recv()
文件"/home/jriu/anaconda3/envs/cquere/lib/python3.10/多处理/接通.py",250行,收录于rev.
buf=自. recv 字节()
file "/home/jriu/anaconda3/envs/cquere/lib/python3.10/多处理/接通.py", 第414行,以 recv 字节表示.
buf=自译自审(4).
文件
. . . . . . .内容来源: openai/gym