所以我试图用Python中的Sethbling重新创建Mar / IO。我正在使用OpenAI retro来做到这一点。到目前为止,我已经对游戏进行了编辑,因此每个精灵都被归类为这样。
{
'block':3,
'luigi':1
'mario':2,
'background':0,
'enemies':4
}
然后我将其缩小并传递给算法,然后根据该算法进行训练。我正在使用NEAT(增强型拓扑的神经进化),特别是整洁的python。
问题是,当我启动模型时,代理不采取任何措施。仅输入起始图像(由于没有移动),并且程序超时。在300个人口的2-3代中,这个值保持不变。算法本身没有错,正如我确定的那样。然后,我向每个帧添加了随机噪声,这导致了随机的但至少来自代理的一些动作。 我该怎么做才能使座席训练基于原始帧数据和形状为(13 x 13)的图像,而无需在帧顶部添加随机噪声以调用动作? 该模型正在发生什么,为什么会这样?输入数据是否过于静态和不变?如果需要,我可以链接我的NEAT超参数...
[[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 2 0 0 0 0 0 0 0 0 0 0]
[3 3 3 3 3 3 3 3 3 3 3 3 3]]
[[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 3 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 3 0 0 3 3 3 3]
[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 1 0 0 0 2 0 4 0 0 0]
[3 3 3 3 3 3 3 3 3 3 3 3 3]]
[[0.00227003 0. 0. 0.57885817 0. 0.57658814
0.00227003 0. 0. 0. 0.00227003 0.57658814
0. ]
[0. 0.00277295 0.70710134 0. 0. 0.
0. 0.70710134 0.00277295 0. 0. 0.
0. ]
[0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0.99999231 0.
0.00392154]
[0. 0. 0. 0. 0.4472136 0.
0. 0. 0.89442719 0. 0. 0.
0. ]
[0.99999231 0. 0. 0. 0. 0.
0. 0. 0. 0.00392154 0. 0.
0. ]
[0. 0.00226704 0.00226704 0.00453409 0.57809606 0.57809606
0. 0. 0. 0. 0.57582902 0.
0. ]
[0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0.70710678
0.70710678]
[0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 1. 0.
0. ]
[0.57735027 0. 0. 0. 0. 0.
0.57735027 0. 0. 0. 0. 0.57735027
0. ]
[0.57734287 0.00226409 0. 0. 0. 0.00226409
0.00226409 0.57734287 0.00226409 0.00226409 0. 0.57734287
0. ]
[0. 0. 0.70710678 0. 0. 0.
0. 0.70710678 0. 0. 0. 0.
0. ]
[0. 0. 0.00393682 0. 0. 0.
0. 0. 0.9999535 0.00393682 0.00787365 0.
0. ]