#python #reinforcement-learning #chainer
#python #обучение с подкреплением #цепочка
Вопрос:
Я хочу расширить класс агента PPO в ChainerRL. Я сделал следующее:
class exPPO(chainerrl.agents.PPO):
def act_and_train(self, obs, reward):
action = chainerrl.agents.PPO(self, obs, reward)
print("this is my exPPO act and train")
return action
Я пытался с помощью cartpole env из gym, но при выполнении
obs, reward = env.step(action)
он просто вылетает со следующим выводом
this is my exPPO act and train
Traceback (most recent call last):
File "C:personal_ifextendPPO.py", line 184, in <module>
obs, reward, done, _ = env.step(action)
File "C:UsersPareekHiAppDataLocalProgramsPythonPython37libsite-packagesgymwrapperstime_limit.py", line 16, in step
observation, reward, done, info = self.env.step(action)
File "C:UsersPareekHiAppDataLocalProgramsPythonPython37libsite-packagesgymenvsclassic_controlcartpole.py", line 104, in step
assert self.action_space.contains(action), err_msg
AssertionError: <chainerrl.agents.ppo.PPO object at 0x000002A986D2F508> (<class 'chainerrl.agents.ppo.PPO'>) invalid
Пожалуйста, помогите, как я могу расширить класс PPO здесь.
Ответ №1:
action = super().act_and_train(obs, reward)