【gym】env.render三种mode

2023-05-16

最近使用gym提供的小游戏做强化学习DQN算法的研究,首先就是要获取游戏截图,并且对截图做一些预处理。

screen = env.render(mode='rgb_array')

上述代码是将游戏截图转换为一个rgb的数组(numpy.ndarray),由变量screen保存。其中mode一共有三种模式:human, rgb_array和ansi。在gym.core中找到官方说明,如下所示:

    def render(self, mode="human"):
        """Renders the environment.

        The set of supported modes varies per environment. (And some
        environments do not support rendering at all.) By convention,
        if mode is:

        - human: render to the current display or terminal and
          return nothing. Usually for human consumption.
        - rgb_array: Return an numpy.ndarray with shape (x, y, 3),
          representing RGB values for an x-by-y pixel image, suitable
          for turning into a video.
        - ansi: Return a string (str) or StringIO.StringIO containing a
          terminal-style text representation. The text can include newlines
          and ANSI escape sequences (e.g. for colors).

        Note:
            Make sure that your class's metadata 'render.modes' key includes
              the list of supported modes. It's recommended to call super()
              in implementations to use the functionality of this method.

        Args:
            mode (str): the mode to render with

        Example:

        class MyEnv(Env):
            metadata = {'render.modes': ['human', 'rgb_array']}

            def render(self, mode='human'):
                if mode == 'rgb_array':
                    return np.array(...) # return RGB frame suitable for video
                elif mode == 'human':
                    ... # pop up a window and render
                else:
                    super(MyEnv, self).render(mode=mode) # just raise an exception
        """
        raise NotImplementedError

一般用的比较多的就是rgb_array,可以对图像进行修改。human会返回一个bool变量,主要是用来在屏幕上显示当前的游戏图像。ansi目前还不太了解相关具体的应用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【gym】env.render三种mode 的相关文章

  • 将 NA 替换为基于 ID 属性的模式

    我有一个数据集dt我想更换NA值与mode基于 id 的每个属性如下 Before id att 1 v 1 v 1 NA 1 c 2 c 2 v 2 NA 2 c 我正在寻找的结果是 id att 1 v 1 v 1 v 1 c 2 c
  • 情节 onClick 事件导致 React 中无限渲染循环

    运行使用事件属性的 onClick 处理程序会导致反应中的无限循环 import React useState useEffect from react import Plot from react plotly js import Rea
  • GLES20Canvas.nDrawDisplayList 很慢

    我有一个正在尝试显示的自定义视图 但是我看到它上面有一堆抖动 一切都滚动缓慢 并且响应速度不及应有的水平 我使用了traceview并看到了 GLES20Canvas nDrawDisplayList 似乎要花很多时间来执行 有什么帮助吗
  • 获取数组中出现次数最多的元素

    我正在寻找一种优雅的方法来确定哪个元素出现次数最多 mode http en wikipedia org wiki Mode 28statistics 29 在 JavaScript 数组中 例如 在 pear apple orange a
  • 在 Dockerfile 中覆盖 FROM 镜像的 ENV

    从下图可以看出 https registry hub docker com u cloudesire activemq dockerfile https registry hub docker com u cloudesire active
  • Rails 3 渲染视图没有动作

    我定义了特定操作的路线并创建了一个链接 我也创建了相应的视图 但没有代码定义控制器操作方法 单击链接后仍然会呈现视图 也就是说 视图是在实际不存在动作的情况下呈现的 有什么解释吗 是的 即使不存在相应的操作 视图也会被渲染 它会像为其定义的
  • 用Java编写一个mode方法来查找数组中出现次数最多的元素

    问题是 编写一个名为 mode 的方法 该方法返回整数数组中最常出现的元素 假设数组至少有一个元素 并且数组中的每个元素的值都在 0 到 100 之间 含 0 和 100 通过选择较低的值来打破平局 例如 如果传递的数组包含值 27 15
  • 渲染 JList 时更改光标

    我已经实现了我想要做的事情 但我忍不住认为有一种更有效的方法 请允许我来说明 简而言之 我要问的问题是是否有一种方法可以确定组件何时完成其初始渲染 我有一个 JList 它连接到 DefaultListModel 并由扩展了 Default
  • git 如何处理文件夹权限?

    我正在使用 git 版本 1 5 6 3 并且 git 似乎没有注意到文件夹模式的更改 create a test repository with a folder with 777 mode mkdir p test folder tou
  • 使用 javascript 渲染瓦片地图

    我正在寻找对获取瓷砖地图的示例实现想法的逻辑理解 如下所示 http thorsummoner github io old html tabletop test pallete tilesets fullmap scbw tiles png
  • 从也是渲染目标的纹理中采样

    我知道这在技术上不受支持 据我所知 这是未定义的行为 但是从也被写入的纹理中采样真的是一件非常可怕的事情吗 我问这个问题是因为我需要从深度纹理中读取数据 我也需要写入该深度纹理 如果我不能这样做 这意味着我将不得不复制深度纹理 如果这没什么
  • 将 HTML 内容渲染到 Google 电子表格

    我的单元格 A1 中有一个 HTML 内容 我想渲染该 HTML 内容并将渲染的 HTML 内容添加到单元格 B1 中 例如如果我在 A1 中有这个 HTML
  • React SetState 不调用 render

    我将我的函数发送到子组件callBack 在父级中 我有一个函数setState method onInputUpdated id var array let char id slice 1 console log this state s
  • 在查看器窗格中打开 R Markdown

    我正在使用 rmarkdown 包的渲染函数渲染带有参数的 R Markdown rmarkdown render file Rmd params ask 它会打开我的默认浏览器 Chrome 要求输入参数 我希望它不是在默认浏览器中打开
  • Grails 从服务中渲染视图?

    我刚刚开始在 Grails 中使用服务 在尝试从服务内部渲染页面时遇到问题 我尝试了如下所示的几种方法 但没有成功 服务电话 1 GroupCheckService isEnabled userObjects group notenable
  • 将数据从节点传递到jade?

    问题是我渲染视图并发送一些数据 console log products shows an array res render seller sell shop id req user shop id products products 我将
  • Qt Webengine 渲染到打印

    有没有办法使用 QtWebEngine 将 HTML SVG 渲染到打印机 PDF 和光栅图像 我们想从WebKit切换到WebEngine 因此使用WebKit的QWebView不再是一个选择 宣布 Qt Web Engine 将支持打印
  • Mandrill:渲染模板时条件合并标签不起作用

    我尝试过条件合并标签 即类似 如果 MY NUM 0 发送电子邮件时它按预期工作 但是 当我尝试渲染模板时 给定相同的 global merge vars 和 merge vars IF 合并标记块中的所有内容都保持空白 我得到了渲染的 h
  • glBlitFramebuffer 渲染缓冲区和渲染全屏纹理哪个更快?

    哪个更快更高效 使用 OpenGL 纹理作为 CUDA 表面并在四边形上渲染 新样式 使用渲染缓冲区作为 CUDA 表面并使用 glBlitFramebuffer 进行渲染 None
  • 哎呀,看起来像出事了。拉拉维尔 5.1

    我有这样的路线 http localhost inspection show id 当我尝试同时加载路线时 在不同的选项卡中 有时其中一些选项卡会出现错误 哎呀 看起来出了问题 在不同选项卡中加载速度如此之快 http localhost

随机推荐