From 1d80815c8ef8a8c119f325cf71fb27e23449c5b4 Mon Sep 17 00:00:00 2001 From: Sander Land Date: Sun, 26 Apr 2020 23:39:24 +0200 Subject: [PATCH] stuff --- .gitignore | 1 + ai.py | 11 ++++++----- ai2gtp.py | 11 ++--------- ai_performance.pickle | Bin 88501 -> 134690 bytes engine.py | 2 +- game.py | 9 ++++++++- game_node.py | 5 +++-- gui/controls.py | 2 +- gui/kivyutils.py | 4 +++- gui/popups.py | 38 ++++++++++++++++++++++++-------------- katrain.kv | 2 +- katrain.py | 2 +- selfplay.py | 11 +---------- 13 files changed, 52 insertions(+), 46 deletions(-) diff --git a/.gitignore b/.gitignore index 40310c6..42e313b 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ log.txt *.sgf sgfout sgf_selfplay +sgf_ogs log* tmp.pickle my diff --git a/ai.py b/ai.py index 1573d20..bd35292 100644 --- a/ai.py +++ b/ai.py @@ -56,8 +56,9 @@ def ai_move(game: Game, ai_mode: str, ai_settings: Dict) -> Tuple[Move, GameNode ai_thoughts += f"Top policy move has weight > {ai_settings['pick_override']:.1%}, so overriding other strategies." elif top_5_pass or "weighted" in ai_mode: weighted_coords = [(policy_grid[y][x], policy_grid[y][x], x, y) for x in range(size[0]) for y in range(size[1]) if policy_grid[y][x] > 0] - aimove = Move(weighted_selection_without_replacement(weighted_coords, 1)[0][2:], player=cn.next_player) # just take a random move by policy w/o noise - ai_thoughts += f"Playing policy-weighted random move {aimove.gtp()}" + (" because one of them is pass." if top_5_pass else " because strategy is weighted.") + best = weighted_selection_without_replacement(weighted_coords, 1)[0] + aimove = Move(best[2:], player=cn.next_player) # just take a random move by policy w/o noise + ai_thoughts += f"Playing policy-weighted random move {aimove.gtp()} ({best[0]:.1%})" + (" because one of them is pass." if top_5_pass else " because strategy is weighted.") elif "noise" in ai_mode: noise_str = ai_settings["noise_strength"] d_noise = dirichlet_noise(len(legal_policy_moves)) @@ -69,9 +70,9 @@ def ai_move(game: Game, ai_mode: str, ai_settings: Dict) -> Tuple[Move, GameNode n_moves = int(ai_settings["pick_frac"] * len(legal_policy_moves) + ai_settings["pick_n"]) if "influence" in ai_mode or "territory" in ai_mode: if "influence" in ai_mode: - weight = lambda x, y: (1/ai_settings["line_weight"]) ** max(0, 3 - min(size[0] - 1 - x, x, y, size[1] - 1 - y)) + weight = lambda x, y: (1 / ai_settings["line_weight"]) ** max(0, 3 - min(size[0] - 1 - x, x, y, size[1] - 1 - y)) else: - weight = lambda x, y:(1/ai_settings["line_weight"]) ** max(0, min(size[0] - 1 - x, x, y, size[1] - 1 - y) - 2) + weight = lambda x, y: (1 / ai_settings["line_weight"]) ** max(0, min(size[0] - 1 - x, x, y, size[1] - 1 - y) - 2) weighted_coords = [(policy_grid[y][x] * weight(x, y), weight(x, y), x, y) for x in range(size[0]) for y in range(size[1]) if policy_grid[y][x] > 0] ai_thoughts += f"Generated weights for {ai_mode} according to weight factor {ai_settings['line_weight']} and distance from 4th line. " elif "local" in ai_mode or "tenuki" in ai_mode: @@ -120,7 +121,7 @@ def ai_move(game: Game, ai_mode: str, ai_settings: Dict) -> Tuple[Move, GameNode ai_thoughts += f"Balance strategy selected moves {sel_moves} based on target score and max points lost, and randomly chose {aimove.gtp()}." elif "jigo" in ai_mode and candidate_ai_moves[0]["move"] != "pass": sign = cn.player_sign(cn.next_player) # TODO check - jigo_move = min(candidate_ai_moves, key=lambda move: abs(sign * move["scoreLead"] - ai_settings['target_score'])) + jigo_move = min(candidate_ai_moves, key=lambda move: abs(sign * move["scoreLead"] - ai_settings["target_score"])) aimove = Move.from_gtp(jigo_move["move"], player=cn.next_player) ai_thoughts += f"Jigo strategy found candidate moves {candidate_ai_moves} moves and chose {aimove.gtp()} as closest to 0.5 point win" else: diff --git a/ai2gtp.py b/ai2gtp.py index 9b4e7df..6f4aaca 100644 --- a/ai2gtp.py +++ b/ai2gtp.py @@ -27,14 +27,7 @@ ENGINE_SETTINGS = { "enable_ownership": False, "threads": 1, } -ai_settings = { - "noise_strength": 0.8, - "pick_n": 10, - "pick_frac": 0.2, - "stddev": 10, - "line_weight": 10, - "pick_override": 0.95, -} +ai_settings = {"noise_strength": 0.8, "pick_n": 10, "pick_frac": 0.2, "stddev": 10, "line_weight": 10, "pick_override": 0.95} engine = KataGoEngine(logger, ENGINE_SETTINGS) @@ -53,7 +46,7 @@ ai_settings["pick_n"] = 5 # dropping below 7k at 5/0.33 ai_strategy = "P+Weighted" -ai_settings = {"pick_override": 0.95} +ai_settings = {"pick_override": 0.95} logger.log(f"STARTED ENGINE", OUTPUT_ERROR) diff --git a/ai_performance.pickle b/ai_performance.pickle index b8a8140e5e0caf47868446c06bc59a764ba68cd8..b6e755ffbbc367492dfc308b8c527adde2469419 100644 GIT binary patch literal 134690 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 literal 88501 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 0 + ] visits = int(engine.config["max_visits"] * self.config["sweep_visits_frac"] + 0.5) self.katrain.controls.set_status(f"Refining analysis of entire board to {visits} visits") priority = -1_000_000_000 diff --git a/game_node.py b/game_node.py index a36ee71..04bd7f0 100644 --- a/game_node.py +++ b/game_node.py @@ -43,7 +43,8 @@ class GameNode(SGFNode): def set_analysis(self, analysis_json, refine_move): if refine_move: - self.update_move_analysis(analysis_json["rootInfo"], refine_move.gtp()) + pvtail = analysis_json["moveInfos"][0]["pv"] if analysis_json["moveInfos"] else [] + self.update_move_analysis({"pv": [refine_move.gtp()] + pvtail, **analysis_json["rootInfo"]}, refine_move.gtp()) else: for move_analysis in analysis_json["moveInfos"]: self.update_move_analysis(move_analysis, move_analysis["move"]) @@ -134,7 +135,7 @@ class GameNode(SGFNode): def policy_ranking(self) -> Optional[List[Tuple[float, Move]]]: # return moves from highest policy value to lowest if self.policy: szx, szy = self.board_size - policy_grid = var_to_grid(self.policy, size=[szx, szy]) + policy_grid = var_to_grid(self.policy, size=(szx, szy)) moves = [(policy_grid[y][x], Move((x, y), player=self.next_player)) for x in range(szx) for y in range(szy)] moves.append((self.policy[-1], Move(None, player=self.next_player))) return sorted(moves, key=lambda mp: -mp[0]) diff --git a/gui/controls.py b/gui/controls.py index 19a4890..5e7f7eb 100644 --- a/gui/controls.py +++ b/gui/controls.py @@ -64,7 +64,7 @@ class Controls(BoxLayout): self.win_rate.text = current_node.format_win_rate() if move and next_player_is_human_or_both_robots: # don't immediately hide this when an ai moves comes in points_lost = current_node.points_lost - self.score_change.label = f"Points lost for {move.player}" if points_lost and points_lost > 0 else f"Points gained for {move.player}" + self.score_change.label = f"Points lost ({move.player})" if points_lost and points_lost > 0 else f"Points gained ({move.player})" self.score_change.text = f"{abs(points_lost):.1f}" if points_lost else "..." elif not current_player_is_ai_playing_human: self.score_change.label = f"Points lost" diff --git a/gui/kivyutils.py b/gui/kivyutils.py index 2596411..b2463e1 100644 --- a/gui/kivyutils.py +++ b/gui/kivyutils.py @@ -24,9 +24,11 @@ class DarkLabel(Label): class ScaledLightLabel(DarkLabel): pass + class LightHelpLabel(ScaledLightLabel): pass + class StyledButton(Button): button_color = ListProperty([]) button_color_down = ListProperty([]) @@ -79,7 +81,7 @@ class ToggleButtonContainer(GridLayout): def _size(self, _dt): if self.autosize: for tb in self.children: - tb.size_hint = (tb.texture_size[0] + 25, 1) + tb.size_hint = (tb.texture_size[0] + 10, 1) @property def value(self): diff --git a/gui/popups.py b/gui/popups.py index 265b499..3bdd27d 100644 --- a/gui/popups.py +++ b/gui/popups.py @@ -8,7 +8,17 @@ from kivy.uix.label import Label from common import OUTPUT_DEBUG, OUTPUT_ERROR from engine import KataGoEngine from game import Game, GameNode -from gui.kivyutils import LabelledCheckBox, LabelledFloatInput, LabelledIntInput, LabelledObjectInputArea, LabelledSpinner, LabelledTextInput, ScaledLightLabel, StyledButton, LightHelpLabel +from gui.kivyutils import ( + LabelledCheckBox, + LabelledFloatInput, + LabelledIntInput, + LabelledObjectInputArea, + LabelledSpinner, + LabelledTextInput, + ScaledLightLabel, + StyledButton, + LightHelpLabel, +) class InputParseError(Exception): @@ -16,7 +26,7 @@ class InputParseError(Exception): class QuickConfigGui(BoxLayout): - def __init__(self, katrain, popup, initial_values=None,**kwargs): + def __init__(self, katrain, popup, initial_values=None, **kwargs): super().__init__(**kwargs) self.katrain = katrain self.popup = popup @@ -65,7 +75,7 @@ class LoadSGFPopup(BoxLayout): class NewGamePopup(QuickConfigGui): def __init__(self, katrain, popup, properties, **kwargs): properties["RU"] = KataGoEngine.get_rules(katrain.game.root) - super().__init__(katrain, popup, properties,**kwargs) + super().__init__(katrain, popup, properties, **kwargs) self.rules_spinner.values = list(set(self.katrain.engine.RULESETS.values())) self.rules_spinner.text = properties["RU"] @@ -82,11 +92,11 @@ class NewGamePopup(QuickConfigGui): class ConfigPopup(QuickConfigGui): - def __init__(self, katrain, popup, config, ignore_cats,**kwargs): + def __init__(self, katrain, popup, config, ignore_cats, **kwargs): self.config = config self.ignore_cats = ignore_cats self.orientation = "vertical" - super().__init__(katrain, popup,**kwargs) + super().__init__(katrain, popup, **kwargs) Clock.schedule_once(self._build, 0) def _build(self, _): @@ -161,22 +171,22 @@ class ConfigPopup(QuickConfigGui): class ConfigAIPopup(QuickConfigGui): def __init__(self, katrain, popup, ai_modes, **kwargs): - super().__init__(katrain, popup, katrain.ai_settings, **kwargs) + super().__init__(katrain, popup, katrain.ai_settings, **kwargs) self.settings = self.katrain.ai_settings self.ai_modes = ai_modes Clock.schedule_once(self._build, 0) - self.orientation ='vertical' + self.orientation = "vertical" - def _build(self,_dt): + def _build(self, _dt): colbox = BoxLayout(spacing=5) for mode in self.ai_modes: mode_settings = self.settings[mode] num_rows = len(mode_settings) - 2 - column = GridLayout(cols=2, rows=max(num_rows,4) + 3,spacing=1,padding=3) + column = GridLayout(cols=2, rows=max(num_rows, 4) + 3, spacing=1, padding=3) column.add_widget(ScaledLightLabel(text=f"Settings for AI")) column.add_widget(ScaledLightLabel(text=f"{mode}", bold=True)) - column.add_widget(LightHelpLabel(size_hint=(1,3),text=mode_settings.get('_help_left',''))) - column.add_widget(LightHelpLabel(size_hint=(1,3),text=mode_settings.get('_help_right', ''))) + column.add_widget(LightHelpLabel(size_hint=(1, 3), text=mode_settings.get("_help_left", ""))) + column.add_widget(LightHelpLabel(size_hint=(1, 3), text=mode_settings.get("_help_right", ""))) for k, v in mode_settings.items(): if not k.startswith("_"): column.add_widget(ScaledLightLabel(text=f"{k}")) @@ -185,9 +195,9 @@ class ConfigAIPopup(QuickConfigGui): column.add_widget(ScaledLightLabel(text=f"")) column.add_widget(ScaledLightLabel(text=f"")) colbox.add_widget(column) - if len(self.ai_modes)==1: + if len(self.ai_modes) == 1: colbox.add_widget(ScaledLightLabel(text=f"")) - bl = BoxLayout(size_hint=(1,0.2),spacing=2) + bl = BoxLayout(size_hint=(1, 0.2), spacing=2) bl.add_widget(StyledButton(text=f"Apply", on_press=lambda _: self.update_config(False))) bl.add_widget(StyledButton(text=f"Apply and Save", on_press=lambda _: self.update_config(True))) self.add_widget(colbox) @@ -197,7 +207,7 @@ class ConfigAIPopup(QuickConfigGui): try: for k, v in self.collect_properties(self).items(): k1, k2 = k.split("/") - print(k1,k2,v,self.settings[k1][k2]) + print(k1, k2, v, self.settings[k1][k2]) if self.settings[k1][k2] != v: self.katrain.log(f"Updating setting {k} = {v}", OUTPUT_DEBUG) diff --git a/katrain.kv b/katrain.kv index 62d1e39..810b55c 100644 --- a/katrain.kv +++ b/katrain.kv @@ -36,7 +36,7 @@ : text: self.values[0] if self.values else '' - font_size: self.size[1] * 0.35 + font_size: self.size[1] * 0.33 sync_height: True background_color: [*[c*255/88 for c in BUTTON_COLOR[:3]], 1] # compensate for texture option_cls: 'StyledSpinnerOption' diff --git a/katrain.py b/katrain.py index e9f3e2d..0682196 100644 --- a/katrain.py +++ b/katrain.py @@ -193,7 +193,7 @@ class KaTrainGui(BoxLayout): def _do_config_popup(self): config_popup = Popup(title="Edit Settings", size_hint=(0.9, 0.9)) - popup_contents = ConfigPopup(self, config_popup, dict(self._config), ignore_cats=("board_ui","ai")) + popup_contents = ConfigPopup(self, config_popup, dict(self._config), ignore_cats=("board_ui", "ai")) config_popup.add_widget(popup_contents) config_popup.open() diff --git a/selfplay.py b/selfplay.py index 5851246..c96510e 100644 --- a/selfplay.py +++ b/selfplay.py @@ -143,18 +143,9 @@ test_ais = [ AI("P+Local", {"local_stddev": 5}), AI("P+Local", {"local_stddev": 1}), AI("P+Local", {"local_stddev": 1, "pick_frac": 0.0, "pick_n": 20}), + AI("P+Weighted", {"pick_override": 1.0}), ] -test_ais = [ - AI("Policy", {}), - AI("P+Weighted", {'pick_override':1.0}), - AI("P+Noise", {"noise_strength": 0.6}), - AI("P+Noise", {"noise_strength": 0.7}), - AI("P+Noise", {"noise_strength": 0.8}), - AI("P+Noise", {"noise_strength": 0.9}), -] - - # test_ais = [ # AI("Policy", {}),