Tensorboard上的PPO模型性能与现实



我为股票交易创建了多个环境。它们非常简单,我已经使用了11个步骤的集。观察结果如下:

[[price_tminus2,price_diff_tminus3_&_tminus2],[price_tminus1,price_diff_tminus2_&_tminus1],
[price_t,price_diff_tminus1_&_t]]

在制作env.reset((时,我用对[action,volume]创建了一个可能的操作列表(我首先将这个env制作为离散的,稍后将其转换为连续的(。模型将从该列表中选择一个索引,该索引将对应于它在环境中的操作。我的问题是:尽管在tensorboard上,当我尝试直接对每一步使用model.product((来检查一集的性能时,平均集奖励会收敛到该集的最大值,但它显示出非常次优的性能,这是一个完全不同的奖励。这怎么可能?我这样播放这一集:

eval_env = gym.make('stockbuyselln-v0',df = df_sin, frame_bound=(5,16), window_size=3, initCash = 1)
obs = np.array(eval_env.reset())
while True: 
obs = eval_env.get_observation()
action, _states = PPO_model.predict(obs)
obs, rewards, done, truncated, info = eval_env.step(action)
if done:
#print("info", info)
break
plt.figure(figsize=(15,6))
eval_env.render_all()
plt.show()

解决了这个问题,它必须像在训练中那样用dummyvecenv对eval_env进行矢量化。查看稳定基线3的evaluate_policy代码以获得更深入的理解。

相关内容

  • 没有找到相关文章

最新更新