我目前正在实施一个类似于在证券交易所买卖股票的强化学习问题。这是一个在线实现,我正在基于数据集及其定制环境创建步骤。现在,问题在于,在我的训练时间步长中,我观察到性能指标 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, {}
我该如何解决这个问题?任何帮助将不胜感激。提前致谢。