From 14ce6bdb5573d68b6f02f18eb7536d9d08d141f8 Mon Sep 17 00:00:00 2001 From: Talmo Pereira Date: Tue, 8 Feb 2022 17:32:59 -0800 Subject: [PATCH 1/4] Update the labels and filename used in the learning dialog every time. - Should fix #634. --- sleap/gui/app.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sleap/gui/app.py b/sleap/gui/app.py index c748b9d17..b88e070e3 100644 --- a/sleap/gui/app.py +++ b/sleap/gui/app.py @@ -1588,6 +1588,7 @@ def _show_learning_dialog(self, mode: str): return if self._child_windows.get(mode, None) is None: + # Re-use existing dialog widget. self._child_windows[mode] = LearningDialog( mode, self.state["filename"], @@ -1596,6 +1597,11 @@ def _show_learning_dialog(self, mode: str): self._child_windows[mode]._handle_learning_finished.connect( self._handle_learning_finished ) + else: + # Update data in existing dialog widget. + self._child_windows[mode].labels = self.labels + self._child_windows[mode].labels_filename = self.state["filename"] + self._child_windows[mode].skeleton = self.labels.skeleton self._child_windows[mode].update_file_lists() From e31336f34ab39dcab687865dc0ffe2fc629554d3 Mon Sep 17 00:00:00 2001 From: Talmo Pereira Date: Tue, 8 Feb 2022 20:32:03 -0800 Subject: [PATCH 2/4] Use default load_file behavior when no search paths specified --- sleap/nn/training.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sleap/nn/training.py b/sleap/nn/training.py index 84242f287..a121854d2 100644 --- a/sleap/nn/training.py +++ b/sleap/nn/training.py @@ -1568,6 +1568,9 @@ def main(): job_config.outputs.save_visualizations |= args.save_viz if args.labels_path == "": args.labels_path = None + args.video_paths = args.video_paths.split(",") + if len(args.video_paths) == 0: + args.video_paths = None logger.info("Versions:") sleap.versions() @@ -1613,7 +1616,7 @@ def main(): training_labels=args.labels_path, validation_labels=args.val_labels, test_labels=args.test_labels, - video_search_paths=args.video_paths.split(","), + video_search_paths=args.video_paths, ) trainer.train() From 2717c9b484f1240a08be45bc3d65f501b2a76e24 Mon Sep 17 00:00:00 2001 From: Talmo Pereira Date: Tue, 8 Feb 2022 20:42:25 -0800 Subject: [PATCH 3/4] Use high level load_file in inference --- sleap/nn/inference.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sleap/nn/inference.py b/sleap/nn/inference.py index 24d608a19..a27e4f5e3 100644 --- a/sleap/nn/inference.py +++ b/sleap/nn/inference.py @@ -2947,7 +2947,7 @@ def _make_provider_from_cli(args: argparse.Namespace) -> Tuple[Provider, str]: ) if data_path.endswith(".slp"): - labels = sleap.Labels.load_file(data_path) + labels = sleap.load_file(data_path) if args.only_labeled_frames: provider = LabelsReader.from_user_labeled_frames(labels) From d10c1b666223748f06ea00a37c7486ed74be5cd1 Mon Sep 17 00:00:00 2001 From: Talmo Pereira Date: Tue, 8 Feb 2022 20:45:21 -0800 Subject: [PATCH 4/4] Use sleap.load_file in more places --- sleap/nn/data/providers.py | 2 +- sleap/nn/training.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sleap/nn/data/providers.py b/sleap/nn/data/providers.py index 0dfdb2395..e8decb9e3 100644 --- a/sleap/nn/data/providers.py +++ b/sleap/nn/data/providers.py @@ -87,7 +87,7 @@ def from_filename( Returns: A `LabelsReader` instance that can create a dataset for pipelining. """ - labels = sleap.Labels.load_file(filename) + labels = sleap.load_file(filename) if user_instances: return cls.from_user_instances(labels) else: diff --git a/sleap/nn/training.py b/sleap/nn/training.py index a121854d2..2a0d8896f 100644 --- a/sleap/nn/training.py +++ b/sleap/nn/training.py @@ -157,7 +157,7 @@ def from_labels( """Create data readers from sleap.Labels datasets as data providers.""" if isinstance(training, str): logger.info(f"Loading training labels from: {training}") - training = sleap.Labels.load_file(training, video_search=video_search_paths) + training = sleap.load_file(training, video_search=video_search_paths) if labels_config is not None and labels_config.split_by_inds: # First try to split by indices if specified in config. @@ -192,7 +192,7 @@ def from_labels( # If validation is still a path, load it. logger.info(f"Loading validation labels from: {validation}") validation = sleap.Labels.load_file( - validation, video_search=video_search_paths + validation, search_paths=video_search_paths ) elif isinstance(validation, float): logger.info( @@ -217,7 +217,7 @@ def from_labels( if isinstance(test, str): # If test is still a path, load it. logger.info(f"Loading test labels from: {test}") - test = sleap.Labels.load_file(test, video_search=video_search_paths) + test = sleap.load_file(test, search_paths=video_search_paths) test_reader = None if test is not None: