从远程ssh登录运行mlagents_envs UnityEnvironment



我有一个脚本,我在其中构建了一个mlagents_envs.environments.UnityEnvironment,当我从ubuntu机器(有GUI(上启动的终端会话运行脚本时,它会成功启动并工作。如果我ssh到机器中,我可以从最初在机器上本地创建的tmux会话中运行这些脚本。但是,如果我尝试从通过远程ssh连接创建的终端会话运行脚本,那么在尝试创建UnityEnvironment时,脚本将挂起。它只是说:

Found path: <path_to_unity_executable>

并最终超时。

我试着用虚拟显示器运行这个脚本,但它仍然不起作用。具体来说,我已经尝试过:

$ xvfb-run --auto-servernum --server-args='-screen 1 640x480x24:64' python3 python_script.py -batchmode
$ xvfb-run --auto-servernum --server-args='-screen 1 640x480x24:64' python3 python_script.py

我试过这里的说明:https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Training-on-Amazon-Web-Service.md

有人遇到过这个问题吗?你有什么建议吗?

解决方案最终相当简单。我只需要在运行脚本之前指定正确的DEVICE。

$ DEVICE=:1 python3 python_script.py

如果其他人遇到这种情况,您可能还需要在服务器和客户端的ssh设置中启用X11转发。我不能百分之百肯定。