前置き
Pygameを用いてゲームを作成し、強化学習を用いてそのゲームのAIを作成しております。
学習の際に、ゲーム画面の画像を取得し、画像データからニューラルネットワークを用いて、最良の行動を選択するようなものを目指しております。(DQNのようなもの)
プログラムの実装などは完了したのですが、学習の際に、処理速度を上げるためお力添えお願い致します。
目標
pygameを用いて、画面を取得する際に現在は次のようにしております。
Python
1import pygame 2from pygame.locals import * 3 4BOARDWIDTH = 640 5BOARDHEIGHT = 480 6 7... 8 9# 画面の設定 10pygame.init() 11DISPLAYSURF = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT)) 12 13... 14 15# 画面画像データの取得 16image = pygame.surfarray.array3d(pygame.display.get_surface()) 17 18... 19
このようにして、学習を行う際には、ゲーム画面をウィンドウに出力しながら学習を進めています。
しかし、学習の際に画面を出力しながら行うと、画面の更新処理、描画処理などで時間がかかってしまい、学習の所要時間が長くなってしまうと思っています。
そのため、画面を生成せずに、画面の画像データを取得する方法を探しております。
pygameに詳しい方や知見がある方などいましたらよろしくお願い致します。
version
Python 3.6.4 :: Anaconda
Pygame 1.9.3
あなたの回答
tips
プレビュー