Awesome
训练rnn网络,自己玩俄罗斯方块
通过训练一个GRU网络,学习“一个新的形状出现到形状不能动为止”的用户键盘操作序列,让模型自己玩俄罗斯方块游戏。
基本思路
俄罗斯方块本质是一个二位数组,这个可以认为是一个单通道的“image”,用户的键盘输入则是当前 image 下的“label”。
因此可以有两种思路:
- 图像分类:输入游戏的当前数组作为一副图像,输出的分类标签就是当前的键盘操作(左,右,下,旋转...)
- rnn序列预测:从形状出现到结束,对应这一个用户键盘的操作序列,照理说,这种序列比静态的图像分类有更强的鲁棒性;
尝试一下?
生成样本:
生成训练样本, 将在 rnn_train 子目录中生成大量npz文件, 每个npz中存储了图像+按键序列.
python game.py train
生成测试样本
python game.py val
训练
python train_rnn.py
一个更好的方式是“在线训练”:
python game.py online