python - 如何取消引用 Python DummyVecEnv OpenAI 健身房环境向量的元素?
问题描述
我已经创建了我的矢量化环境,并为环境test_env = DummyVecEnv( [lambda: myEnv(df)] )
定义了一个自定义方法。plot_stuff()
myEnv
现在,我想做类似的事情test_env[0].plot_stuff()
,但这不起作用:
TypeError:“DummyVecEnv”对象不可下标
我也尝试过使用map( lambda x: x.plot_stuff(), test_env )
,这让我得到了这样的回应:
TypeError:“DummyVecEnv”对象不可迭代
我的猜测是,这更像是一个新手 Python 问题,而不是 OpenAI 问题,但我真的不知道要搜索什么来找到这个问题的解决方案。
独立的,(相对)最小的,足够的代码示例:
import numpy as np
import gym
from gym import spaces
from stable_baselines.common.vec_env import DummyVecEnv
class someEnv(gym.Env):
def __init__( self):
super(someEnv, self).__init__()
self.action_space = spaces.MultiDiscrete([2, 2])
self.observation_space = spaces.Box( low=0, high=1, shape=(1, 2), dtype=np.float64 )
def plot_stuff(self):
print("Hello")
test_env = DummyVecEnv( [lambda: someEnv()] )
test_env[0].plot_stuff()
解决方案
推荐阅读
- python-3.x - 无法分配给 ErrorExpression
- elasticsearch - 具有动态最大值的 Kibana 仪表
- bots - 如何使 Gushup Web 小部件全屏并默认打开
- node.js - 在机器启动时使用 grunt 启动节点 js 应用程序
- python - Tkinter 测验在达到 10 时不会结束
- javascript - ReactJS-在 axios 方法中将 JWT 令牌作为授权传递给 http 请求
- c# - MigraDoc - 获取部分的高度
- c# - 数据库不适用于android c# unity
- c++ - AES > Base64 加密/解密和 256 位模式
- c# - 在 c# .NET 项目中使用 c++ 包装器