def testing(template=None): global bestcount global best if (template == None): models1 = [evModel(9, 9, [16, 16, 9]) for k in range(200)] models2 = [evModel(9, 9, [16, 16, 9]) for k in range(200)] else: models1 = [evModel(9, 9, [16, 16, 9], template[0]) for k in range(100)] models2 = [evModel(9, 9, [16, 16, 9], template[1]) for k in range(100)] models = zip(models1, models2) bestmods1 = [] bestmods2 = [] for m1, m2 in models: m1.mutate(3, 2) m2.mutate(3, 2) best = ticktactoe(m1, m2) bestmods1.append([best[0], m1]) bestmods2.append([best[1], m2]) bestmods1 = sorted(bestmods1, key=itemgetter(0)) bestmods2 = sorted(bestmods2, key=itemgetter(0)) print bestmods1 return [ bestmods1[0][1].structure, generateAverages([M[1] for M in bestmods2[len(bestmods2) / 4:]]) ]
def ticktactoe(player1=None, player2=None): global lastwinner global streak if (player1 == None): player1 = evModel(9, 9, [16, 16, 9]) player2 = evModel(9, 9, [16, 16, 9]) player1.mutate(2, 2) player2.mutate(2, 2) game = [0] * 9 turns = 0 end = False winner = player1 c = 0 while not end: p1move = player1.run(game) p1move = p1move.index(max(p1move)) if (game[p1move] != 0): print "player failed" return [c, 10 + c] else: print "move played" game[p1move] = 1 if gameover(1, game): if (lastwinner == 1): streak += 1 else: streak = 1 lastwinner = 1 print "WINNER 1" return [1000 + (-100 * c), (c)] p2move = player2.run(game) p2move = p2move.index(max(p2move)) if (game[p2move] != 0): print "player failed" return [10 + c, c] else: print "move played" game[p2move] = -1 if gameover(-1, game): if (lastwinner == -1): streak += 1 else: streak = 1 lastwinner = -1 print "WINNER 2" return [(c), 1000 + (-100 * c)] if (sum(game) == 7): print "TIE" return [200, 200] print game c += 1
def testing(template=None): global images global labels global bestcount global best if (template == None): models = [evModel(378, 10, 5, activation=1) for k in range(25)] for model in models: model.mutate(2, 4) else: models = [ evModel(378, 10, 5, template[k], activation=1) for k in range(len(template)) ] bestmods = [] outset = [] for model in models: model.mutate(.5, 4) c = 0 k = 0 seed = [random.randint(0, 125) for z in range(100)] tests = [images[seed[z]] for z in range(8)] answers = [labels[seed[z]] for z in range(8)] outs = [] for test, answer in zip(tests, answers): print c out = model.run(test) aindex, value = max(enumerate(out), key=operator.itemgetter(1)) print str(aindex) + "|" + str(answer) outs.append(aindex) k += (out[answer]) * 10 del out[answer] k -= 1 - sum(out) print k c += 1 bestmods.append((k, model)) if k > bestcount: bestcount = k best = model if (len(set(outset)) == 1): print "genocide" crazyMod = evModel(378, 10, 5, activation=1) crazyMod.mutate(.05, 50) return generateAverages([crazyMod]) bestmods = sorted(bestmods, key=itemgetter(0)) print bestmods return generateAverages([M[1] for M in bestmods[len(bestmods) / 2:]])
def playticktactoe(player1=None, ): if (player1 == None): player1 = evModel(9, 9, [16, 16, 9]) player2 = evModel(9, 9, [16, 16, 9]) player1.mutate(5, 10) player2.mutate(5, 10) game = [0] * 9 turns = 0 end = False winner = player1 c = 0 while not end: p1move = player1.run(game) p1move = p1move.index(max(p1move)) if (game[p1move] != 0): print "player failed" return [-100 + c, 10 + c] else: print "move played" game[p1move] = 1 if gameover(1, game): print "WINNER 1" return [1000 + (-100 * c), -c * 2] p2move = int(raw_input("play")) if (game[p2move] != 0): print "player failed" return [10 + c, -100 + c] else: print "move played" game[p2move] = -1 if gameover(-1, game): print "WINNER 2" return [c * 2, 1000 + (-100 * c)] if (sum(game) == 7): print "TIE" return [200, 200] print game c += 1
from evolution import evModel from evolution import generateAverages model = evModel(3, 2, [2, 2]) print model.structure model.mutate(1, 2) print model.run([0, 1, 0]) model1 = evModel(3, 2, [2, 2]) model1.mutate(1, 2) print generateAverages([model, model1])
import numpy as np import random from sklearn.datasets import load_digits from operator import itemgetter from mnist import MNIST from evolution import evModel from evolution import generateAverages import math best = evModel(6, 3, 6, activation=1) bestcount = 0 import operator mndata = MNIST('MNIST') images, labels = mndata.load_training() newimages = [] for image in images[:200]: temp = [] c = 0 while c < 729: if (c > 27 and c % 27 == 0): c += 27 if (c + 27 < 729): temp.append( max([ np.tanh(image[c] * 1.0), np.tanh(image[c + 1] * 1.0), np.tanh(image[c + 27] * 1.0), np.tanh(image[c + 28] * 1.0) ])) c += 1
if (game[p1move] != 0): print "player failed" return [-100 + c, 10 + c] else: print "move played" game[p1move] = 1 if gameover(1, game): print "WINNER 1" return [1000 + (-100 * c), -c * 2] p2move = int(raw_input("play")) if (game[p2move] != 0): print "player failed" return [10 + c, -100 + c] else: print "move played" game[p2move] = -1 if gameover(-1, game): print "WINNER 2" return [c * 2, 1000 + (-100 * c)] if (sum(game) == 7): print "TIE" return [200, 200] print game c += 1 last = testing() for k in range(1000): last = testing(last) playticktactoe(evModel(9, 9, [16, 16, 9], last[0]))