라즈파이 keras 3

개요



라즈파이에서 keras 사용하여 gym의 Pong-v0하고 있지만 전혀 학습이 진행되지 않는다.
난수에서는 이길 수 없기 때문에 이긴 데이터가 쌓이지 않는다.
쉽지 않기 때문에 스스로 해보면 진지하게 이길 수 없었던 이야기.

사진



직접 키 입력하는 샘플 코드 a 키 아래 d 키 위 import gym import pygame from pygame.locals import HWSURFACE, DOUBLEBUF, RESIZABLE, VIDEORESIZE def display_arr(screen, arr, video_size, transpose): arr_min, arr_max = arr.min(), arr.max() arr = 255.0 * (arr - arr_min) / (arr_max - arr_min) pyg_img = pygame.surfarray.make_surface(arr.swapaxes(0, 1) if transpose else arr) pyg_img = pygame.transform.scale (pyg_img, video_size) screen.blit(pyg_img, (0, 0)) def play(env, transpose = True, fps = 30, zoom = None, callback = None, keys_to_action = None): obs_s=env.observation_space keys_to_action = env.unwrapped.get_keys_to_action() relevant_keys = set(sum(map(list, keys_to_action.keys()), [])) video_size = env.observation_space.shape[1], env.observation_space.shape[0] pressed_keys=[] running = True env_done = True screen = pygame.display.set_mode(video_size) clock = pygame.time.Clock() while running: if env_done: env_done = False obs = env.reset() else: action = keys_to_action[tuple(sorted(pressed_keys))] prev_obs=obs obs, rew, env_done, info = env.step(action) if obs is not None: display_arr(screen, obs, transpose = transpose, video_size = video_size) for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key in relevant_keys: pressed_keys.append(event.key) elif event.key == 27: running = False elif event.type == pygame.KEYUP: if event.key in relevant_keys: pressed_keys.remove(event.key) elif event.type == pygame.QUIT: running = False pygame.display.flip() clock.tick(fps) pygame.quit() if __name__ == '__main__': env = gym.make("Pong-v0") play(env, zoom = 1, fps = 10) 이상.

좋은 웹페이지 즐겨찾기