Browse Source

!810 Limit the float value precision.

Merge pull request !810 from YuhanShi/ExplainJob_v1.1
tags/v1.1.0
mindspore-ci-bot Gitee 5 years ago
parent
commit
eb4de70ab4
3 changed files with 19 additions and 16 deletions
  1. +5
    -4
      mindinsight/explainer/manager/event_parse.py
  2. +4
    -1
      mindinsight/explainer/manager/explain_job.py
  3. +10
    -11
      mindinsight/explainer/manager/explain_manager.py

+ 5
- 4
mindinsight/explainer/manager/event_parse.py View File

@@ -27,6 +27,8 @@ _IMAGE_DATA_TAGS = {
'explanation': PluginNameEnum.EXPLANATION.value
}

_NUM_DIGIT = 7


class EventParser:
"""Parser for event data."""
@@ -57,7 +59,7 @@ class EventParser:

explainer_score_dict[explainer].append({
'metric': metric,
'score': metric_score})
'score': round(metric_score, _NUM_DIGIT)})
new_label_score_dict = EventParser._score_event_to_dict(label_score_event, metric)
for label, label_scores in new_label_score_dict.items():
label_score_dict[explainer][label] = label_score_dict[explainer].get(label, []) + label_scores
@@ -81,8 +83,7 @@ class EventParser:
else:
self._parse_sample_info(sample, sample_id, tag)
except UnknownError as ex:
logger.warning("Parse %s data failed within image related data,"
" detail: %r", tag, str(ex))
logger.warning("Parse %s data failed within image related data, detail: %r", tag, str(ex))
continue

if EventParser._is_ready_for_display(self._sample_pool[sample_id]):
@@ -133,7 +134,7 @@ class EventParser:
for label_id, label_score in enumerate(label_score_event):
new_label_score_dict[label_id].append({
'metric': metric,
'score': label_score,
'score': round(label_score, _NUM_DIGIT),
})
return new_label_score_dict



+ 4
- 1
mindinsight/explainer/manager/explain_job.py View File

@@ -26,6 +26,8 @@ from mindinsight.explainer.manager.event_parse import EventParser
from mindinsight.datavisual.data_access.file_handler import FileHandler
from mindinsight.datavisual.common.exceptions import TrainJobNotExistError

_NUM_DIGIT = 7


class ExplainJob:
"""ExplainJob which manage the record in the summary file."""
@@ -255,7 +257,7 @@ class ExplainJob:
ground_truth_probs + predicted_probs):
inference_info[label] = {
'label': self._labels_info[label]['label'],
'confidence': prob,
'confidence': round(prob, _NUM_DIGIT),
'saliency_maps': []}

if EventParser.is_attr_ready(sample_data, 'explanation'):
@@ -281,6 +283,7 @@ class ExplainJob:

Return:
string, image data in base64 byte

"""
return self._image_dict.get(image_id, None)



+ 10
- 11
mindinsight/explainer/manager/explain_manager.py View File

@@ -60,18 +60,19 @@ class ExplainManager:
if not self._reload_interval:
break
time.sleep(self._reload_interval)
except UnknownError:
except UnknownError as ex:
logger.exception(ex)
logger.error('Unknown Error raise when loading summary files, status: %r, and loader pool size is %r.'
'Detail: %s', self._status, len(self._loader_pool), str(ex))
self._status = _ExplainManagerStatus.INVALID.value

def _load_data(self):
"""Loading the summary in the given base directory."""
logger.info(
'Start to load data, reload interval: %r.', self._reload_interval)
logger.info('Start to load data, reload interval: %r.', self._reload_interval)

with self._status_mutex:
if self._status == _ExplainManagerStatus.LOADING.value:
logger.info('Current status is %s, will ignore to load data.',
self._status)
logger.info('Current status is %s, will ignore to load data.', self._status)
return

self._status = _ExplainManagerStatus.LOADING.value
@@ -87,8 +88,7 @@ class ExplainManager:
else:
self._status = _ExplainManagerStatus.DONE.value

logger.info('Load event data end, status: %r, '
'and loader pool size is %r',
logger.info('Load event data end, status: %r, and loader pool size is %r',
self._status, len(self._loader_pool))

def _update_loader_latest_update_time(self, loader_id, latest_update_time=None):
@@ -206,8 +206,8 @@ class ExplainManager:
return
loader.load()

except MindInsightException as e:
logger.warning('Data loader %r load data failed. Delete data_loader. Detail: %s', loader_id, e)
except MindInsightException as ex:
logger.warning('Data loader %r load data failed. Delete data_loader. Detail: %s', loader_id, ex)
with self._loader_pool_mutex:
self._delete_loader(loader_id)

@@ -302,8 +302,7 @@ class ExplainManager:
return None
return loader

def start_load_data(self,
reload_interval=_MAX_INTERVAL):
def start_load_data(self, reload_interval=_MAX_INTERVAL):
"""
Start threads for loading data.



Loading…
Cancel
Save