From 8c73e356c59bbefaaaa8aa5b3c6a34e3ca7e2aa7 Mon Sep 17 00:00:00 2001 From: Tom Metcalfe Date: Mon, 1 Oct 2018 19:01:16 +0200 Subject: [PATCH 1/5] Added date to _persist_metadata() function of base policy ensemble #1104 --- rasa_core/policies/ensemble.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rasa_core/policies/ensemble.py b/rasa_core/policies/ensemble.py index 2ae421b7e1c..ffac019e992 100644 --- a/rasa_core/policies/ensemble.py +++ b/rasa_core/policies/ensemble.py @@ -8,6 +8,7 @@ import logging import os import sys +import time from collections import defaultdict import numpy as np @@ -116,6 +117,7 @@ def _persist_metadata(self, path, dump_flattened_stories=False): self.training_trackers) action_fingerprints = self._create_action_fingerprints(training_events) + date_trained = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()) metadata = { "action_fingerprints": action_fingerprints, @@ -123,7 +125,8 @@ def _persist_metadata(self, path, dump_flattened_stories=False): "python": ".".join([str(s) for s in sys.version_info[:3]]), "max_histories": self._max_histories(), "ensemble_name": self.__module__ + "." + self.__class__.__name__, - "policy_names": policy_names + "policy_names": policy_names, + "trained_at": date_trained } utils.dump_obj_as_json_to_file(domain_spec_path, metadata) From 9a8201eedef5769f027b5b92a790de0a79e980ee Mon Sep 17 00:00:00 2001 From: Tom Metcalfe Date: Mon, 1 Oct 2018 22:15:17 +0200 Subject: [PATCH 2/5] Update changelog #1104 --- CHANGELOG.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 551912cef0d..551ec831154 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -15,6 +15,7 @@ Added ----- - openapi documentation of server API - added action prediction confidence & policy to ``ActionExecuted`` event +- both the date and the time at which a model was trained are now included in the policy's metadata when it is persisted Changed ------- From 26a216040c4fe4da92dc20c42afd76a861bde74c Mon Sep 17 00:00:00 2001 From: Tom Metcalfe Date: Mon, 1 Oct 2018 23:35:02 +0200 Subject: [PATCH 3/5] Date now called after training function #1104 --- rasa_core/policies/ensemble.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rasa_core/policies/ensemble.py b/rasa_core/policies/ensemble.py index ffac019e992..223b831a13c 100644 --- a/rasa_core/policies/ensemble.py +++ b/rasa_core/policies/ensemble.py @@ -40,6 +40,7 @@ def __init__(self, policies, action_fingerprints=None): # type: (List[Policy], Optional[Dict]) -> None self.policies = policies self.training_trackers = None + self.date_trained = None if action_fingerprints: self.action_fingerprints = action_fingerprints @@ -66,6 +67,7 @@ def train(self, training_trackers, domain, **kwargs): for policy in self.policies: policy.train(training_trackers, domain, **kwargs) self.training_trackers = training_trackers + self.date_trained = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()) else: logger.info("Skipped training, because there are no " "training samples.") @@ -117,7 +119,6 @@ def _persist_metadata(self, path, dump_flattened_stories=False): self.training_trackers) action_fingerprints = self._create_action_fingerprints(training_events) - date_trained = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()) metadata = { "action_fingerprints": action_fingerprints, @@ -126,7 +127,7 @@ def _persist_metadata(self, path, dump_flattened_stories=False): "max_histories": self._max_histories(), "ensemble_name": self.__module__ + "." + self.__class__.__name__, "policy_names": policy_names, - "trained_at": date_trained + "trained_at": self.date_trained } utils.dump_obj_as_json_to_file(domain_spec_path, metadata) From 9f29f5830d1bf32c05badf9595eab5a2745f560a Mon Sep 17 00:00:00 2001 From: Tom Metcalfe Date: Tue, 2 Oct 2018 09:55:16 +0200 Subject: [PATCH 4/5] Moved timestamp back into _persist_metadata. Switched to previously used format #1108 --- rasa_core/policies/ensemble.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/rasa_core/policies/ensemble.py b/rasa_core/policies/ensemble.py index 223b831a13c..d68da633040 100644 --- a/rasa_core/policies/ensemble.py +++ b/rasa_core/policies/ensemble.py @@ -8,7 +8,7 @@ import logging import os import sys -import time +import datetime from collections import defaultdict import numpy as np @@ -40,7 +40,6 @@ def __init__(self, policies, action_fingerprints=None): # type: (List[Policy], Optional[Dict]) -> None self.policies = policies self.training_trackers = None - self.date_trained = None if action_fingerprints: self.action_fingerprints = action_fingerprints @@ -127,7 +126,7 @@ def _persist_metadata(self, path, dump_flattened_stories=False): "max_histories": self._max_histories(), "ensemble_name": self.__module__ + "." + self.__class__.__name__, "policy_names": policy_names, - "trained_at": self.date_trained + "trained_at": datetime.datetime.now().strftime('%Y%m%d-%H%M%S') } utils.dump_obj_as_json_to_file(domain_spec_path, metadata) From d100157cabe54377f7797ed9c8f842a94f9775f1 Mon Sep 17 00:00:00 2001 From: Tom Metcalfe Date: Tue, 2 Oct 2018 10:19:03 +0200 Subject: [PATCH 5/5] Moved it back into .train() #1104 --- rasa_core/policies/ensemble.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rasa_core/policies/ensemble.py b/rasa_core/policies/ensemble.py index d68da633040..8fe964c2cc5 100644 --- a/rasa_core/policies/ensemble.py +++ b/rasa_core/policies/ensemble.py @@ -40,6 +40,7 @@ def __init__(self, policies, action_fingerprints=None): # type: (List[Policy], Optional[Dict]) -> None self.policies = policies self.training_trackers = None + self.date_trained = None if action_fingerprints: self.action_fingerprints = action_fingerprints @@ -66,7 +67,7 @@ def train(self, training_trackers, domain, **kwargs): for policy in self.policies: policy.train(training_trackers, domain, **kwargs) self.training_trackers = training_trackers - self.date_trained = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()) + self.date_trained = datetime.datetime.now().strftime('%Y%m%d-%H%M%S') else: logger.info("Skipped training, because there are no " "training samples.") @@ -126,7 +127,7 @@ def _persist_metadata(self, path, dump_flattened_stories=False): "max_histories": self._max_histories(), "ensemble_name": self.__module__ + "." + self.__class__.__name__, "policy_names": policy_names, - "trained_at": datetime.datetime.now().strftime('%Y%m%d-%H%M%S') + "trained_at": self.date_trained } utils.dump_obj_as_json_to_file(domain_spec_path, metadata)