def load_default_model(): engine.model.Network.FILTERS = 128 engine.model.Network.BLOCK_COUNT = 12 engine.setup_evaluator(use_rpc=False) engine.initialize_model("/tmp/model-156.npy")
if args.visits == None: move = eng.genmove(ms * 1e-3, use_weighted_exponent=5.0) else: # This is safe, because of the visit limit we set above. move = eng.genmove(1000000.0, use_weighted_exponent=5.0) print "bestmove %s" % (uai_encode_move(move), ) elif line == "showboard": print board print "boardok" sys.stdout.flush() if __name__ == "__main__": import argparse parser = argparse.ArgumentParser() parser.add_argument("--network-path", metavar="NETWORK", type=str, help="Name of the model to load.") parser.add_argument("--visits", metavar="VISITS", default=None, type=int, help="Number of visits during MCTS.") args = parser.parse_args() print >> sys.stderr, args engine.setup_evaluator(use_rpc=False) engine.initialize_model(args.network_path) main(args)
def generate_game(args): config = chomp_rules.ChompGameConfig(16, 16) board = chomp_rules.ChompState.empty_board(config) e = engine.MCTSEngine() while True: print board selected_move = e.genmove(1.0, early_out=False, use_weighted_exponent=5.0) board.apply_move(selected_move) e.set_state(board.copy()) if board.winner != None: break raw_input(">") if __name__ == "__main__": import argparse parser = argparse.ArgumentParser() parser.add_argument("--network", metavar="PATH", required=True, help="Path of the model to load.") args = parser.parse_args() engine.setup_evaluator(use_rpc=False) engine.initialize_model(args.network) generate_game(args)
self.accumulated_features.append(array) self.accumulated_slots.append(result_slot) except gevent.queue.Empty: self.process() if len(self.accumulated_features) >= self.MARSHALL_COUNT: # print "Processing due to full batch." self.process() class NetworkServer(RPCServer): def network(self, feature_string): result_slot = gevent.event.AsyncResult() submit_queue.put((feature_string, result_slot)) return result_slot.get() if len(sys.argv) != 3: print("Usage: %s model_path port-to-host-on" % (sys.argv[0], )) exit(1) #model_path = train.model_path(sys.argv[1]) engine.initialize_model(sys.argv[1]) port = int(sys.argv[2]) print() print("Launching on port:", port) gevent.spawn(Processor) server = gevent.server.StreamServer(("127.0.0.1", port), NetworkServer) server.serve_forever()
metavar="N", default=100, type=int, help="Number of milliseconds per move for supervised generation.") args = parser.parse_args() network_path = args.network network_name = os.path.splitext(os.path.basename(args.network)) if args.random_play: print("Doing random play! Loading no model, and not using RPC.") elif args.use_rpc: engine.setup_evaluator(use_rpc=True, temperature=LOGIT_TEMPERATURE) else: engine.setup_evaluator(use_rpc=False, temperature=LOGIT_TEMPERATURE) engine.initialize_model(network_path) if args.supervised != None: args.uai_player = uai_ringmaster.UAIPlayer(args.supervised) if args.output_games == None: output_directory = os.path.join("games", network_name) if not os.path.exists(output_directory): os.mkdir(output_directory) output_path = os.path.join(output_directory, os.urandom(8).encode("hex") + ".json") else: output_path = args.output_games if args.no_write: output_path = "/dev/null" print("[%3i] Writing to: %s" % (args.group_index, output_path))