我注意到基类Env
(来自gym)包含一个名为metadata
的类字段。该字段似乎用于指定如何渲染环境。例如,在 FrozenLake 环境中,metadata
定义为
metadata = {'render.modes': ['human', 'ansi']}
但是,该文件中从未使用过此属性/字段元数据
。例如,在同一示例中,render
method有一个参数,您可以在其中指定渲染模式(并且 render
方法甚至不检查传递给此参数的值是否在 metadata
类字段中),所以我我不确定为什么我们需要这个元数据
字段。
那么,为什么我们需要字段metadata
?除了指定环境的渲染“模式”之外,它还用于其他用途吗?如果是,在哪里?
最佳答案
我会尽量做到基本。
我已经进行了一些试验,据我了解,渲染有 2 种模式, human
和 ansi
,它们处理控制台上的输出。(附上我的控制台的屏幕截图)。在人类模式下(默认),输出将为 SFFF、FHFH,带有当前观察的颜色标签(人类友好)...等,在 ansi 模式下,您将输出类似字节 不执行编码、解码或换行符转换的对象,例如\nSFFF\n\x1b[41mF\x1b[0mHFH]。
关于reinforcement-learning - 我们需要gym环境的 "metadata"字段做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64680088/