How to run OpenAI Gym .render() over a server

news2024/9/28 3:24:37

题意:怎样在服务器上运行 OpenAI Gym 的 .render() 方法

问题背景:

I am running a python 2.7 script on a p2.xlarge AWS server through Jupyter (Ubuntu 14.04). I would like to be able to render my simulations.

通过 Jupyter(在 Ubuntu 14.04 系统上)在 AWS 的 p2.xlarge 服务器上运行一个 Python 2.7 脚本,并希望能够在其中渲染模拟

Minimal working example        最小工作示例

import gym
env = gym.make('CartPole-v0')
env.reset()
env.render()

env.render() makes (among other things) the following errors:

env.render() 方法在调用时(除了其他可能的行为外)产生以下错误:

...
HINT: make sure you have OpenGL install. On Ubuntu, you can run 
'apt-get install python-opengl'. If you're running on a server, 
you may need a virtual frame buffer; something like this should work: 
'xvfb-run -s \"-screen 0 1400x900x24\" python <your_script.py>'")
...
NoSuchDisplayException: Cannot connect to "None"

I would like to some how be able to see the simulations. It would be ideal if I could get it inline, but any display method would be nice.

我希望能够以某种方式看到模拟结果。如果能够在内联(inline)中查看那就最理想了,但任何显示方法都会很不错。

Edit: This is only an issue with some environments, like classic control.

编辑: 这个问题只出现在某些环境中,比如经典控制(classic control)环境。

Update I

Inspired by this I tried the following, instead of the xvfb-run -s \"-screen 0 1400x900x24\" python <your_script.py> (which I couldn't get to work).

受到这个启发,我尝试了以下操作,而不是使用 xvfb-run -s "-screen 0 1400x900x24" python <your_script.py>(我无法使其正常工作)。

xvfb-run -a jupyter notebook

Running the original script I now get instead

运行原始脚本时,我现在得到的是...

GLXInfoException: pyglet requires an X server with GLX

Update II

Issue #154 seems relevant. I tried disabling the pop-up, and directly creating the RGB colors

问题 #154 似乎与之相关。我尝试禁用了弹出窗口,并直接创建了 RGB 颜色。

import gym
env = gym.make('CartPole-v0')
env.reset()

img = env.render(mode='rgb_array', close=True)  
print(type(img)) # <--- <type 'NoneType'>

img = env.render(mode='rgb_array', close=False) # <--- ERROR
print(type(img)) 

I get ImportError: cannot import name gl_info.

Python 在尝试从某个模块中导入名为 gl_info 的内容时失败了

Update III

With inspiration from @Torxed I tried creating a video file, and then rendering it (a fully satisfying solution).

受到 @Torxed 的启发,我尝试创建了一个视频文件,并成功渲染了它(这是一个完全令人满意的解决方案)。

Using the code from 'Recording and uploading results'

使用“记录和上传结果”中的代码

import gym

env = gym.make('CartPole-v0')
env.monitor.start('/tmp/cartpole-experiment-1', force=True)
observation = env.reset()
for t in range(100):
#    env.render()
    print(observation)
    action = env.action_space.sample()
    observation, reward, done, info = env.step(action)
    if done:
        print("Episode finished after {} timesteps".format(t+1))
        break

env.monitor.close()

I tried following your suggestions, but got ImportError: cannot import name gl_info from when running env.monitor.start(....

我尝试按照你的建议操作,但在运行 env.monitor.start(...) 时遇到了 ImportError: cannot import name gl_info 的错误

From my understanding the problem is that OpenAI uses pyglet, and pyglet 'needs' a screen in order to compute the RGB colors of the image that is to be rendered. It is therefore necessary to trick python to think that there is a monitor connected

据我理解,问题在于 OpenAI 使用的是 pyglet,而 pyglet 需要一个屏幕来计算将要渲染的图像的 RGB 颜色。因此,有必要欺骗 Python,让它认为有一个监视器是连接着的。

Update IV

FYI there are solutions online using bumblebee that seem to work. This should work if you have control over the server, but since AWS run in a VM I don't think you can use this.

仅供参考,网上有一些使用 Bumblebee 的解决方案,看起来是有效的。如果你对服务器有控制权,这个方法应该是可行的,但由于 AWS 运行在虚拟机上,我认为你可能无法使用它。

Update V

Just if you have this problem, and don't know what to do (like me) the state of most environments are simple enough that you can create your own rendering mechanism. Not very satisfying, but.. you know.

如果你也遇到这个问题,并且不知道该怎么办(就像我一样),那么大多数环境的状态都足够简单,以至于你可以创建自己的渲染机制。虽然不是很令人满意,但……你懂的。

问题解决:

Got a simple solution working:        找到了一个简单的解决方案:

If on a linux server, open jupyter with

如果在 Linux 服务器上,使用以下命令打开 Jupyter:

$ xvfb-run -s "-screen 0 1400x900x24" jupyter notebook

In Jupyter        在 Jupyter 中

import matplotlib.pyplot as plt
%matplotlib inline
from IPython import display

After each step        每个步骤之后

def show_state(env, step=0, info=""):
    plt.figure(3)
    plt.clf()
    plt.imshow(env.render(mode='rgb_array'))
    plt.title("%s | Step: %d %s" % (env._spec.id,step, info))
    plt.axis('off')

    display.clear_output(wait=True)
    display.display(plt.gcf())

Note: if your environment is not unwrapped, pass env.env to show_state.

注意:如果你的环境没有“展开”(即没有直接暴露所有底层属性),那么将 env.env 传递给 show_state 函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1985180.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙Navigator跳转不生效的问题

新增配置文件&#xff1a; 注意&#xff1a;该文件要在moudle中配置引用&#xff0c;非则跳转无法生效&#xff1a;

[Meachines] [Easy] Sunday Finger网络用户枚举+Wget文件覆盖权限提升

信息收集 IP AddressOpening Ports10.10.10.76TCP:79, 111, 515, 6787, 22022 $ nmap -p- 10.10.10.76 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 79/tcp open finger? | fingerprint-strings: | GenericLines: | No one logged on | GetReque…

黑马Java零基础视频教程精华部分_14_正则表达式

系列文章目录 文章目录 系列文章目录一、先爽一下正则表达式不使用正则的情况下使用正则的情况下 二、正则表达式的作用三、正则表达式具体表达1、规则2、字符类示例3、预定义字符示例首先学习转义字符 示例练习 四、基本练习1、快捷方法&#xff1a;2、验证手机号3、验证座机电…

JavaEE 第4节 线程安全问题

小贴士&#xff1a; 本节题目所述的主题其实非常的庞大&#xff0c;如果要细讲起来&#xff0c;一篇博客远远不够&#xff0c;本篇博客只会每个方面的内容做一个简要描述&#xff0c;详细的内容在后续同专栏博客中都会涉及到的&#xff0c;如果有需要可以一步到本专栏的其他博客…

Flows.network

Flows.network是什么 Flows.network 是一个 Severless 平台&#xff0c;用 Rust 和 Wasm 构建 LLM Agent 和机器人。flows.network 平台允许开发者将像 ChatGPT 和 Claude 的大模型连接到不同的 SaaS 提供商。由于模型已经具备与 OpenAI 兼容的 API&#xff0c;我们可以像在 O…

Photoneo PhoXi 3D Scanner XS

静态场景快照式3D扫描仪 PhoXi 系列是Photoneo公司专为静态场景高分辨率和高精度扫描工业场景应用设计生产的3D扫描仪&#xff0c;PhoXi 3D Scanner XS 型号专为精确地输出而设计&#xff0c;主要应用于印刷电路板、小部件的检测等。 产品特点 红色激光扫描&#xff0c;所见即…

商家转账到零钱现金营销场景申请一次通过攻略

商家转账到零钱现金营销场景是微信支付商家申请最多的场景之一&#xff0c;微信支付平台对申请材料的要求较多从而导致商家很容易被驳回&#xff0c;根据我们上万次成功申请的经验&#xff0c;申请该功能时商家要确保一次过审&#xff0c;需要遵循以下详细步骤和注意事项&#…

AR眼镜:重型机械维修保养新利器

重型机械作为工业与建设领域的重要支柱&#xff0c;其稳定运行直接影响效率与成本。然而在偏远地区&#xff0c;面临复杂故障和高昂维修成本&#xff0c;传统维修方式常显得力不从心。如今&#xff0c;安宝特的AR远程协助解决方案结合Vuzix AR眼镜&#xff0c;正悄然改变这一现…

人工智能系统测试中,A/B测试的流程、技术方法与策略

模型的迭代和优化是推动人工智能技术进步的核心动力。如何准确地评估模型更新前后的性能提升&#xff0c;是人工智能测试中的一个难点。A/B测试&#xff0c;作为一项科学且客观的测试方法&#xff0c;在此过程中发挥着至关重要的作用。本文我们继续为大家介绍人工智能系统测试方…

数据中台之数据开发,数据开发概述与数据计算能力的类型

目录 一、数据开发概述 二、数据计算能力的类型 2.1 概述 2.2 批计算 2.2.1 概述 2.2.2 批计算模型 2.2.2.1 传统数据处理方案的问题 2.2.2.2 MapReduce模型 2.2.2.3 Spark框架 2.3 流计算 2.4 批流一体 2.5 在线查询 2.6 即席分析 一、数据开发概述 数据开发是数…

做空日经指数的策略与时机

一、市场背景分析 在全球股市的剧烈波动中&#xff0c;日本股市的表现尤为引人关注。日经225指数在经历一轮暴跌后&#xff0c;又出现了大幅反弹&#xff0c;这种剧烈的波动为投资者提供了做空日经指数的机会。近期&#xff0c;日本股市受到日元汇率波动、日本央行货币政策以及…

文章复现 创新点 代码改进跑通 深度学习

文章复现 创新点 代码改进跑通 深度学习 SCI代码复现 文章复现 数据处理、数据分析、算法、数据结构data structure、机器学习machine learning、深度学习deep learning。创新改进&#xff0c;算法提升 python环境配置 &#xff0c;深度学习代码调试 、代码复现&#xff0c;py…

WebStorm格式化JSON,将一行很长的JSON展开

webstorm json格式化插件将一行很长的json展开 在WebStorm中&#xff0c;要展开很长的JSON行&#xff0c;可以使用内置的JSON格式化功能。 打开WebStorm&#xff0c;并打开包含JSON的文件。 选择JSON文件中的任意部分。 按下快捷键 CtrlAltL (Windows/Linux) 或 CmdAltL (Ma…

用4点结构标定3点结构的顺序

在行列可自由变换的条件下&#xff0c;平面上的4点结构只有16个 (A,B)---6*30*2---(0,1)(1,0) 让A分别是4a1&#xff0c;2&#xff0c;…&#xff0c;16&#xff0c;让B全是0。当收敛误差为7e-4&#xff0c;收敛199次取迭代次数平均值&#xff0c;得到 迭代次数 搜索难度 1 …

免费开源的高科技行业ERP解决方案

引言 协助高科技企业信息化转型升级&#xff0c;通过开源智造Odoo标准模块与拓展模块&#xff0c;实现精细化、数字化与智能化的管控&#xff0c;将线性供应链转变为智能供应网络&#xff0c;形成整合与集成化的管理系统&#xff0c;提高对市场的响应速度。 业务挑战 项目管控难…

PDF文档处理技巧:如何旋转 PDF 文档

你有没有遇到过一个PDF文档&#xff0c;有些页面是侧向的&#xff0c;而其他页面却显示正确&#xff1f;这可能会令人沮丧&#xff0c;尤其是在信息至关重要的情况下。好消息是&#xff0c;您可以通过旋转受影响的页面轻松解决此问题。本指南将重点介绍如何使用奇客PDF 旋转 PD…

进程无响应任务管理器关不掉解决办法

第一步&#xff1a;打开任务管理器——>详细信息 第二步&#xff1a;打开运行窗口 第三步&#xff1a;输入taskkillPID(PID在图一的位置上看)

c语言小知识点小计

c语言小知识点小计 1、运算符的优先级 运算符的优先级是和指针解引用*的优先级相同的&#xff0c;但在代码运行中执行顺序是从后往前的。因此下面代码 int a[10] {1,2,3,4}; int* arr a; printf("%d",*arr);//访问的值是2 //注意&#xff1a;printf("%d&qu…

​私有化地图离线部署详细方案

我们在《私有化地图离线部署整体解决方案》一文中&#xff0c;分享了不包含硬件的私有化部署整体解决方案。 现在&#xff0c;再为你分享一下从硬件配置、系统选型、系统部署到地图数据加载、导出和更新管理等一整套详细方案。 地图服务器与存储设备 全球私有地图离线部署对…

餐饮业的数字化突围:价格战下的转型与新生

原文链接&#xff1a;https://tecdat.cn/?p37241 餐饮业价格战升级了&#xff0c;越打越激烈。近日&#xff0c;各餐饮巨头也被迫纷纷下场。 “太二酸菜鱼客单价跌至七年前” “9.9元就可以点上海底捞的一份锅底” “必胜客推出人均20元的乐享店”…… 消费降级的时代潮水&am…