0

我目前正在实施一个类似于在证券交易所买卖股票的强化学习问题。这是一个在线实现,我正在基于数据集及其定制环境创建步骤。现在,问题在于,在我的训练时间步长中,我观察到性能指标 ep_rewmean 和 eplenmean 之一的值始终为 nan,如下所示,

在此处输入图像描述

我的环境是

env = DummyVecEnv([lambda: ETradingEnv(df)])
model = PPO2('MlpPolicy', env, verbose=1)  
model.learn(total_timesteps=200) 

我的步骤功能是,

def step(self, action): 
    # Execute one time step within the environment
    amount=self._take_action(action)  
    self.amount += amount

    self.current_step += 1
    if self.current_step > len(self.df.loc[:, 'current_l'].values) - 6:
      self.current_step = 0
    delay_modifier = (self.current_step / MAX_STEPS)  

    # Reward 1
    r1 = -1 * self.delta * amount* self.current_price 

    # Reward 2
    d=self.df.loc[self.current_step, 'd']         
    if del == 1:                                            
      r2= -1 * (self.s-MAX_S)**2
    else:
      r2=0
    reward = r1 + r2
    # reward=100
    done = d == 1
    obs = self._next_observation()
    print(f'reward: {reward}')
    return obs, reward, done, {}

我该如何解决这个问题?任何帮助将不胜感激。提前致谢。

4

0 回答 0