建立工程,導入相關工具包
import tensorflow as tf
import cv2
import sys
sys.path.append("game/")
import dummy_game
import tetris_fun as game
import random
import numpy as np
from collections import deque
主要修改導入的游戲程序:import tetris_fun as game
設置超參數(shù)
GAME = 'tetris' # 設置游戲名稱
ACTIONS = 5 # 設置游戲動作數(shù)目
GAMMA = 0.99 # 設置增強學習更新公式中的累計折扣因子
OBSERVE = 10000. # 觀察期
EXPLORE = 200000. # 探索期
FINAL_EPSILON = 0.0001 # 設置epsilon的最終最小值
INITIAL_EPSILON = 0.1 # 設置epsilon貪心策略中的設置epsilon貪心策略中的初始值
REPLAY_MEMORY = 50000 # 設置Replay Memory的容量
BATCH = 32 # 設置每次網絡參數(shù)更新時用的樣本數(shù)目
FRAME_PER_ACTION = 1 # 設置幾幀圖像進行一次動作
俄羅斯方塊動作有:上下左右旋轉五種操作,所以設置ACTIONS = 5
其余設置與flappy_bird基本相似.
解決程序未響應的問題
問題描述
訓練環(huán)境:Mac OS Python3.5.2
進行訓練時游戲畫面空白,進程顯示未響應.
在討論區(qū)看到的解決方法:
在frame_step(self,input)
函數(shù)中加入一句代碼pygame.event.pump()
訓練結果
總共進行了兩次訓練,設置epsilon的最終最小值FINAL_EPSILON = 0.01 和 FINAL_EPSILON = 0.0001,迭代次數(shù)分別為700000次和560000次.
結果并不是很理想,還是不停的在Game Over