라즈파이 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)
이상.
Reference
이 문제에 관하여(라즈파이 keras 3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ohisama@github/items/0ce4d64c593dd40ad4fc
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
직접 키 입력하는 샘플 코드 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) 이상.
Reference
이 문제에 관하여(라즈파이 keras 3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ohisama@github/items/0ce4d64c593dd40ad4fc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)