def create_random_generation(num_population, action_list): generation = [] for pop_index in range(num_population): brain = Brain() brain.action_list = action_list brain.create_random_brain([30, 32]) brain.index = pop_index generation.append(brain) return generation
from acions import NEW_COMPLEX_MOVEMENT from Brain import Brain import sys import os import cv2 movements = [ NEW_COMPLEX_MOVEMENT, COMPLEX_MOVEMENT, SIMPLE_MOVEMENT, RIGHT_ONLY ] movement = movements[3] num_movement = len(movement) load = False brain = Brain() brain.action_list = movement if not load: brain.create_brain_q((60, 64)) else: brain.load_model( 'model_fitness_4208_generation_99_population_index_99.sav', os.getcwd() + "/models/") brain.generation_num = 99 brain.index = 99 fitness_list = [] environments_mario = [ "SuperMarioBros-v0", "SuperMarioBros-v1", "SuperMarioBros-v2", "SuperMarioBros-v3", "SuperMarioBrosNoFrameskip-v0", "SuperMarioBrosNoFrameskip-v1", "SuperMarioBrosNoFrameskip-v2", "SuperMarioBrosNoFrameskip-v3", "SuperMarioBros2-v0", "SuperMarioBros2-v1",
import numpy as np from nes_py.wrappers import BinarySpaceToDiscreteSpaceEnv import gym_super_mario_bros from gym_super_mario_bros.actions import COMPLEX_MOVEMENT from gym_super_mario_bros.actions import SIMPLE_MOVEMENT from gym_super_mario_bros.actions import RIGHT_ONLY from keras.utils import plot_model import sys from Brain import Brain brain = Brain() brain.action_list = SIMPLE_MOVEMENT brain.create_random_brain((240, 256)) # TODO ADD in configuration variables here environments_mario = [ "SuperMarioBros-v0", "SuperMarioBros-v1", "SuperMarioBros-v2", "SuperMarioBros-v3", "SuperMarioBrosNoFrameskip-v0", "SuperMarioBrosNoFrameskip-v1", "SuperMarioBrosNoFrameskip-v2", "SuperMarioBrosNoFrameskip-v3", "SuperMarioBros2-v0", "SuperMarioBros2-v1", "SuperMarioBros2NoFrameskip-v0", "SuperMarioBros2NoFrameskip-v1" ] movements = [COMPLEX_MOVEMENT, SIMPLE_MOVEMENT, RIGHT_ONLY] movement = movements[1] def eps_greedy_q_learning_with_table(env, num_episodes=5):