From f15a707f029df2f324552f37b1ad4326d6a754f2 Mon Sep 17 00:00:00 2001 From: Dominik Roth Date: Sat, 16 Apr 2022 15:11:59 +0200 Subject: [PATCH] New and improved stuff --- brains/uttt.pth | Bin 15175 -> 15175 bytes vacuumDecay.py | 35 ++++++++++++++++++++++------------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/brains/uttt.pth b/brains/uttt.pth index 6ca002ea75f7da7aece33a46c53e742cde420b07..7140e33cdf801bbf34bdb455790aff99ed09ca11 100644 GIT binary patch delta 7395 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 delta 7395 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 10: - ind = 0 + if firstNRandom: + firstNRandom-=1 + ind = int(random.random()*len(opts)) else: - ind = int(pow(random.random(),exacity)*(len(opts)-1)) + opts.sort(key=lambda x: x[1]) + if exacity >= 10: + ind = 0 + else: + ind = int(pow(random.random(),exacity)*(len(opts)-1)) head = opts[ind][0] + self.killWorker() if verbose: print(head) - print(' => '+['O','X','No one '][self.head.getWinner()] + ' won!') + print(' => '+['O','X','No one'][head.getWinner()] + ' won!') return head def timelineIter(self, term): @@ -525,16 +533,19 @@ class Trainer(Runtime): self.rootNode.universe.clearPQ() self.rootNode.universe.activateEdge(self.rootNode) self.spawnWorker() - time.sleep(secs) + for s in range(secs): + time.sleep(1) + print('.', end='', flush=True) self.rootNode.universe.clearPQ() self.killWorker() + print('') def trainModel(self, model, lr=0.00005, cut=0.01, calcDepth=4, exacity=5, term=None): loss_func = nn.MSELoss() optimizer = optim.Adam(model.parameters(), lr) if term==None: term = self.buildDatasetFromModel(model, depth=calcDepth, exacity=exacity) - print('[*] Conditioning Brain...') + print('[*] Conditioning Brain') for r in range(64): loss_sum = 0 lLoss = 0 @@ -542,10 +553,8 @@ class Trainer(Runtime): for i, node in enumerate(self.timelineIter(term)): for p in range(self.rootNode.playersNum): inp = node.state.getTensor(player=p) - gol = torch.tensor(node.getStrongFor(p), dtype=torch.float) + gol = torch.tensor([node.getStrongFor(p)], dtype=torch.float) out = model(inp) - if not out: - continue loss = loss_func(out, gol) optimizer.zero_grad() loss.backward()