首页 > 解决方案 > 如何取消引用 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()

标签: pythonobjectopenai-gym

解决方案


推荐阅读