From 0eae537da0830ac4e0baf2fa5de0e2e563d8ca7b Mon Sep 17 00:00:00 2001 From: liangyongxiong Date: Sun, 24 May 2020 18:47:57 +0800 Subject: [PATCH] fix bugs of cache mechanism --- mindinsight/datavisual/data_transform/data_loader.py | 2 +- .../datavisual/data_transform/data_manager.py | 8 ++++++-- .../datavisual/processors/train_task_manager.py | 12 +++++++++++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/mindinsight/datavisual/data_transform/data_loader.py b/mindinsight/datavisual/data_transform/data_loader.py index 736067c..84dfcd5 100644 --- a/mindinsight/datavisual/data_transform/data_loader.py +++ b/mindinsight/datavisual/data_transform/data_loader.py @@ -55,7 +55,7 @@ class DataLoader: Get events data from log file. Returns: - Optional[EventsData], None or events data. + EventsData, indiciates events data. """ return self._loader.get_events_data() diff --git a/mindinsight/datavisual/data_transform/data_manager.py b/mindinsight/datavisual/data_transform/data_manager.py index e90c789..1ec86bf 100644 --- a/mindinsight/datavisual/data_transform/data_manager.py +++ b/mindinsight/datavisual/data_transform/data_manager.py @@ -618,7 +618,7 @@ class _DetailCacheManager(_BaseCacheManager): tag (str): The tag name. Returns: - NamedTuple, the tuple format is `collections.namedtuple('_Tensor', ['wall_time', 'event_step', 'value'])`. + list, the NameTuple format is `collections.namedtuple('_Tensor', ['wall_time', 'event_step', 'value'])`. the value will contain the given tag data. """ @@ -627,13 +627,17 @@ class _DetailCacheManager(_BaseCacheManager): raise TrainJobNotExistError("Can not find the given train job in cache.") data_loader = loader_pool[train_id].data_loader - events_data = data_loader.get_events_data() + tensors = [] try: + events_data = data_loader.get_events_data() tensors = events_data.tensors(tag) except KeyError: error_msg = "Can not find any data in this train job by given tag." raise ParamValueError(error_msg) + except AttributeError: + logger.debug("Train job %r has been deleted or it has not loaded data, " + "and set tags to empty list.", train_id) return tensors diff --git a/mindinsight/datavisual/processors/train_task_manager.py b/mindinsight/datavisual/processors/train_task_manager.py index 35f1fd8..03cf16f 100644 --- a/mindinsight/datavisual/processors/train_task_manager.py +++ b/mindinsight/datavisual/processors/train_task_manager.py @@ -116,7 +116,17 @@ class TrainTaskManager(BaseProcessor): profiler_dir=basic_info.profiler_dir, cache_status=train_job.cache_status.value, ) - plugins = self.get_plugins(train_id) + + if train_job.cache_status == CacheStatus.CACHED: + plugins = self.get_plugins(train_id) + else: + plugins = dict(plugins={ + 'graph': [], + 'scalar': [], + 'image': [], + 'histogram': [], + }) + train_job_item.update(plugins) train_jobs.append(train_job_item) -- GitLab