aijunzhao
aijunzhao
> 现在我大概明白为什么作者要一个AI的指令持续6帧然后才输出奖惩值。这个是因为在游戏中,做出一个动作并不会马上打到对手并得分,要大概几个Frame的时间才能看到效果。如果我们把每一帧都丢给AI,当AI做对一个动作,并在几帧(step)后得到一个奖励,这个做对的动作实际得到的discounted return (刚刚学到的术语)就会相当小, 反而离奖励近的无效动作得到的discounted return多,这样并不利于AI训练。 > > 所以我有个想法,既要用作者的这个方法,也要让AI会发波,升龙。 > > > 另外我感觉这个所谓的AI动作都很随机,很多动作都是乱来。例如离敌人还很远就在乱出招。能赢最后的boss也有点盲拳打死老师傅的感觉,一对真人就没戏了。我感觉用这种方法训练的AI真的很不聪明。 > > > > > > 别这样,作者虽然技术菜了点,但最少开源了LOL > > 我可没说作者技术菜!作者的目的的是打赢最终boss,他这个AI可是做到了。特别是第一局, 有100%的胜率,这是因为他是用第一局来训练的。可是第一局的boss是有固定套路的,所以AI也是用固定套路来赢的。所以这个AI根本无法对决其他电脑控制角色,更不论和人对决。 所以我尝试修改程序,从第一关打起来训练,每次训练直到AI被败为止。所以AI可以学习如何对战不同的对手。可是训练结果很差,根本不收敛。所以说,我才是那个菜鸟。我也是第一次接触RL,多谢Linyi作者给我带来兴趣和入门方法。我现在也有一些想法,看看能不能提高AI的水平。 我录了第一集对阵春莉的state,然后打两局输了如何继续,代码怎么写
> 可以的,项目库里面列的第二篇参考文章里面就是用的 M.U.G.E.N 老大,可以出一个添加mugen的教程嘛,正好有在玩mugen
注 2:如果想要录制智能代理的对战视频,还需要安装 [ffmpeg](https://ffmpeg.org/)。 conda install ffmpeg 已经安装,怎么录制呢?完全代码小白,该怎么录制
搞定了,游戏不能用zip,要用本体
> sound_game_over 不会影响我们训练模型,可以注释掉self.sound_game_over.play()再添加pass,等玩test时再打开  可以了,感谢兄弟
> 可参考 #[linyiLYi/street-fighter-ai#16](https://github.com/linyiLYi/street-fighter-ai/issues/16) > >  > > ```python > keys = ['high', 'low', 'bounded_above', 'bounded_below'] > setattr(env.observation_space, '_shape', (3,84,84)) > for k in keys: > new_attr = getattr(env.observation_space, k).reshape(3,84,84)...
这是改成24*24的报错。 (SnakeAI) E:\snake-ai-master\main>python test_cnn.py Using seed = 591160627 for testing. =================== Episode 1 ================== Traceback (most recent call last): File "test_cnn.py", line 45, in action, _ = model.predict(obs, action_masks=env.get_action_mask()) File...
好像还是有的,新版本减少了很多,但是依然出现
只要遇到时间用完了,对手不死,player也不死,就不能reset game,好几次都这样