Я создал свою векторизованную среду с 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' не повторяется
Я предполагаю, что это скорее новый вопрос ie 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()