From f528b17102c08a7e5eb3227887ed5313f2e0f17d Mon Sep 17 00:00:00 2001 From: Jeroen Oudshoorn Date: Sun, 17 Sep 2023 22:14:09 +0200 Subject: [PATCH] v2.4.1 Signed-off-by: Jeroen Oudshoorn --- pwnagotchi/ai/train.py | 20 ++++++++++---------- pwnagotchi/plugins/default/fix_services.py | 2 ++ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/pwnagotchi/ai/train.py b/pwnagotchi/ai/train.py index c007230f..58758d6f 100644 --- a/pwnagotchi/ai/train.py +++ b/pwnagotchi/ai/train.py @@ -54,7 +54,7 @@ class Stats(object): def load(self): with self._lock: if os.path.exists(self.path) and os.path.getsize(self.path) > 0: - logging.info("[ai] loading %s" % self.path) + logging.info("[AI] loading %s" % self.path) with open(self.path, 'rt') as fp: obj = json.load(fp) @@ -64,7 +64,7 @@ class Stats(object): def save(self): with self._lock: - logging.info("[ai] saving %s" % self.path) + logging.info("[AI] saving %s" % self.path) data = json.dumps({ 'born_at': self.born_at, @@ -114,7 +114,7 @@ class AsyncTrainer(object): _thread.start_new_thread(self._ai_worker, ()) def _save_ai(self): - logging.info("[ai] saving model to %s ..." % self._nn_path) + logging.info("[AI] saving model to %s ..." % self._nn_path) temp = "%s.tmp" % self._nn_path self._model.save(temp) os.replace(temp, self._nn_path) @@ -133,15 +133,15 @@ class AsyncTrainer(object): def on_ai_policy(self, new_params): plugins.on('ai_policy', self, new_params) - logging.info("[ai] setting new policy:") + logging.info("[AI] setting new policy:") for name, value in new_params.items(): if name in self._config['personality']: curr_value = self._config['personality'][name] if curr_value != value: - logging.info("[ai] ! %s: %s -> %s" % (name, curr_value, value)) + logging.info("[AI] ! %s: %s -> %s" % (name, curr_value, value)) self._config['personality'][name] = value else: - logging.error("[ai] param %s not in personality configuration!" % name) + logging.error("[AI] param %s not in personality configuration!" % name) self.run('set wifi.ap.ttl %d' % self._config['personality']['ap_ttl']) self.run('set wifi.sta.ttl %d' % self._config['personality']['sta_ttl']) @@ -152,12 +152,12 @@ class AsyncTrainer(object): plugins.on('ai_ready', self) def on_ai_best_reward(self, r): - logging.info("[ai] best reward so far: %s" % r) + logging.info("[AI] best reward so far: %s" % r) self._view.on_motivated(r) plugins.on('ai_best_reward', self, r) def on_ai_worst_reward(self, r): - logging.info("[ai] worst reward so far: %s" % r) + logging.info("[AI] worst reward so far: %s" % r) self._view.on_demotivated(r) plugins.on('ai_worst_reward', self, r) @@ -174,7 +174,7 @@ class AsyncTrainer(object): self._model.env.render() # enter in training mode? if random.random() > self._config['ai']['laziness']: - logging.info("[ai] learning for %d epochs ..." % epochs_per_episode) + logging.info("[AI] learning for %d epochs ..." % epochs_per_episode) try: self.set_training(True, epochs_per_episode) # back up brain file before starting new training set @@ -184,7 +184,7 @@ class AsyncTrainer(object): self._view.set("mode", " AI") self._model.learn(total_timesteps=epochs_per_episode, callback=self.on_ai_training_step) except Exception as e: - logging.exception("[ai] error while training (%s)", e) + logging.exception("[AI] error while training (%s)", e) finally: self.set_training(False) obs = self._model.env.reset() diff --git a/pwnagotchi/plugins/default/fix_services.py b/pwnagotchi/plugins/default/fix_services.py index c7886697..ed06d3d2 100644 --- a/pwnagotchi/plugins/default/fix_services.py +++ b/pwnagotchi/plugins/default/fix_services.py @@ -348,6 +348,8 @@ class FixServices(plugins.Plugin): logging.info("[Fix_Services] wlan0mon didn't make it. trying again") if not display: print(" wlan0mon didn't make it. trying again") + else: + pwnagotchi.reboot() # exited the loop, so hopefully it loaded if tries < 3: