diff --git a/mindinsight/debugger/conditionmgr/condition.py b/mindinsight/debugger/conditionmgr/condition.py index ded17fc4..d71e4246 100644 --- a/mindinsight/debugger/conditionmgr/condition.py +++ b/mindinsight/debugger/conditionmgr/condition.py @@ -22,6 +22,32 @@ from enum import Enum from mindinsight.debugger.conditionmgr.log import logger +class ParamNameEnum(Enum): + """Param names.""" + ABS_MEAN_GT = "abs_mean_gt" + ABS_MEAN_LT = "abs_mean_lt" + ABS_MEAN_UPDATE_RATIO_GT = "abs_mean_update_ratio_gt" + ABS_MEAN_UPDATE_RATIO_LT = "abs_mean_update_ratio_lt" + ATOL = "atol" + EQUAL_NAN = "equal_nan" + EPSILON = "epsilon" + MAX_GT = "max_gt" + MAX_LT = "max_lt" + MIN_GT = "min_gt" + MIN_LT = "min_lt" + MEAN_GT = "mean_gt" + MEAN_LT = "mean_lt" + MAX_MIN_GT = "max_min_gt" + MAX_MIN_LT = "max_min_lt" + PARAM = "param" + RANGE_START_INCLUSIVE = "range_start_inclusive" + RANGE_END_INCLUSIVE = "range_end_inclusive" + RANGE_PERCENTAGE_GT = "range_percentage_gt" + RANGE_PERCENTAGE_LT = "range_percentage_lt" + RTOL = "rtol" + ZERO_PERCENTAGE_GE = "zero_percentage_ge" + + class ConditionIdEnum(Enum): """Condition ids.""" WEIGHT_INITIALIZATION = "weight_initialization" @@ -121,7 +147,7 @@ class ConditionParameter: The class for parameters of conditions. Args: - name (str): parameter name. + name (ParamNameEnum): parameter name. value_type (ValueTypeEnum): the type of value. valid_test_func (func): the function used to test whether the param is valid. support_disable (bool): whether the param support no assignment. @@ -133,7 +159,7 @@ class ConditionParameter: def __init__(self, name, value_type: ValueTypeEnum, valid_test_func=None, support_disable=True, default_value=None, visible_on_ui=True, param_type=ParamTypeEnum.CHECK_PARAM, required_params=None): - self._name = name + self._name = name.value self._type = value_type self._valid_test_func = valid_test_func self._support_disable = support_disable diff --git a/mindinsight/debugger/conditionmgr/condition_list.py b/mindinsight/debugger/conditionmgr/condition_list.py index b4c18aff..795e304a 100644 --- a/mindinsight/debugger/conditionmgr/condition_list.py +++ b/mindinsight/debugger/conditionmgr/condition_list.py @@ -25,6 +25,7 @@ from mindinsight.debugger.conditionmgr.condition import TargetTypeEnum from mindinsight.debugger.conditionmgr.condition import PlatformEnum from mindinsight.debugger.conditionmgr.condition import ParamTypeEnum from mindinsight.debugger.conditionmgr.condition import ConditionIdEnum +from mindinsight.debugger.conditionmgr.condition import ParamNameEnum from mindinsight.debugger.conditionmgr.condition import check_initialization_available from mindinsight.debugger.conditionmgr.condition import check_normal_param_range from mindinsight.debugger.conditionmgr.condition import check_percentage_param_range @@ -39,18 +40,18 @@ CONDITION_LIST = [ optimize_phase=OptimizePhaseEnum.TENSOR_CHECK, parameters=[ ConditionParameter( - name="zero_percentage_ge", + name=ParamNameEnum.ZERO_PERCENTAGE_GE, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_percentage_param_range, default_value=100 ), ConditionParameter( - name="max_gt", + name=ParamNameEnum.MAX_GT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ), ConditionParameter( - name="min_lt", + name=ParamNameEnum.MIN_LT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ) @@ -77,22 +78,22 @@ CONDITION_LIST = [ optimize_phase=OptimizePhaseEnum.TENSOR_CHECK, parameters=[ ConditionParameter( - name="abs_mean_gt", + name=ParamNameEnum.ABS_MEAN_GT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_abs_param_range ), ConditionParameter( - name="max_gt", + name=ParamNameEnum.MAX_GT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ), ConditionParameter( - name="min_gt", + name=ParamNameEnum.MIN_GT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ), ConditionParameter( - name="mean_gt", + name=ParamNameEnum.MEAN_GT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ) @@ -108,22 +109,22 @@ CONDITION_LIST = [ optimize_phase=OptimizePhaseEnum.TENSOR_CHECK, parameters=[ ConditionParameter( - name="abs_mean_lt", + name=ParamNameEnum.ABS_MEAN_LT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_abs_param_range ), ConditionParameter( - name="max_lt", + name=ParamNameEnum.MAX_LT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ), ConditionParameter( - name="min_lt", + name=ParamNameEnum.MIN_LT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ), ConditionParameter( - name="mean_lt", + name=ParamNameEnum.MEAN_LT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ) @@ -139,22 +140,22 @@ CONDITION_LIST = [ optimize_phase=OptimizePhaseEnum.TENSOR_CHECK, parameters=[ ConditionParameter( - name="abs_mean_lt", + name=ParamNameEnum.ABS_MEAN_LT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_abs_param_range ), ConditionParameter( - name="max_lt", + name=ParamNameEnum.MAX_LT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ), ConditionParameter( - name="min_lt", + name=ParamNameEnum.MIN_LT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ), ConditionParameter( - name="mean_lt", + name=ParamNameEnum.MEAN_LT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ) @@ -170,22 +171,22 @@ CONDITION_LIST = [ optimize_phase=OptimizePhaseEnum.TENSOR_CHECK, parameters=[ ConditionParameter( - name="abs_mean_gt", + name=ParamNameEnum.ABS_MEAN_GT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_abs_param_range ), ConditionParameter( - name="max_gt", + name=ParamNameEnum.MAX_GT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ), ConditionParameter( - name="min_gt", + name=ParamNameEnum.MIN_GT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ), ConditionParameter( - name="mean_gt", + name=ParamNameEnum.MEAN_GT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ) @@ -231,22 +232,22 @@ CONDITION_LIST = [ optimize_phase=OptimizePhaseEnum.TENSOR_CHECK, parameters=[ ConditionParameter( - name="abs_mean_gt", + name=ParamNameEnum.ABS_MEAN_GT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_abs_param_range ), ConditionParameter( - name="max_gt", + name=ParamNameEnum.MAX_GT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ), ConditionParameter( - name="min_gt", + name=ParamNameEnum.MIN_GT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ), ConditionParameter( - name="mean_gt", + name=ParamNameEnum.MEAN_GT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ) @@ -262,22 +263,22 @@ CONDITION_LIST = [ optimize_phase=OptimizePhaseEnum.TENSOR_CHECK, parameters=[ ConditionParameter( - name="abs_mean_lt", + name=ParamNameEnum.ABS_MEAN_LT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_abs_param_range ), ConditionParameter( - name="max_lt", + name=ParamNameEnum.MAX_LT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ), ConditionParameter( - name="min_lt", + name=ParamNameEnum.MIN_LT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ), ConditionParameter( - name="mean_lt", + name=ParamNameEnum.MEAN_LT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ) @@ -293,7 +294,7 @@ CONDITION_LIST = [ optimize_phase=OptimizePhaseEnum.TENSOR_CHECK, parameters=[ ConditionParameter( - name="zero_percentage_ge", + name=ParamNameEnum.ZERO_PERCENTAGE_GE, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_percentage_param_range, default_value=100 @@ -310,20 +311,20 @@ CONDITION_LIST = [ optimize_phase=OptimizePhaseEnum.TENSOR_CHECK, parameters=[ ConditionParameter( - name="rtol", + name=ParamNameEnum.RTOL, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_abs_param_range, default_value=1e-5 ), ConditionParameter( - name="atol", + name=ParamNameEnum.ATOL, value_type=ValueTypeEnum.FLOAT64, support_disable=False, default_value=1e-8, visible_on_ui=False ), ConditionParameter( - name="equal_nan", + name=ParamNameEnum.EQUAL_NAN, value_type=ValueTypeEnum.BOOL, support_disable=False, default_value=False, @@ -341,13 +342,13 @@ CONDITION_LIST = [ optimize_phase=OptimizePhaseEnum.TENSOR_CHECK, parameters=[ ConditionParameter( - name="abs_mean_update_ratio_gt", + name=ParamNameEnum.ABS_MEAN_UPDATE_RATIO_GT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_abs_param_range, default_value=1e-1 ), ConditionParameter( - name="epsilon", + name=ParamNameEnum.EPSILON, value_type=ValueTypeEnum.FLOAT64, support_disable=False, default_value=1e-9, @@ -365,13 +366,13 @@ CONDITION_LIST = [ optimize_phase=OptimizePhaseEnum.TENSOR_CHECK, parameters=[ ConditionParameter( - name="abs_mean_update_ratio_lt", + name=ParamNameEnum.ABS_MEAN_UPDATE_RATIO_LT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_abs_param_range, default_value=1e-4 ), ConditionParameter( - name="epsilon", + name=ParamNameEnum.EPSILON, value_type=ValueTypeEnum.FLOAT64, support_disable=False, default_value=1e-9, @@ -389,36 +390,36 @@ CONDITION_LIST = [ optimize_phase=OptimizePhaseEnum.TENSOR_CHECK, parameters=[ ConditionParameter( - name="range_start_inclusive", + name=ParamNameEnum.RANGE_START_INCLUSIVE, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range, param_type=ParamTypeEnum.SUPPORT_PARAM ), ConditionParameter( - name="range_end_inclusive", + name=ParamNameEnum.RANGE_END_INCLUSIVE, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range, param_type=ParamTypeEnum.SUPPORT_PARAM ), ConditionParameter( - name="range_percentage_lt", + name=ParamNameEnum.RANGE_PERCENTAGE_LT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_percentage_param_range, - required_params=["range_start_inclusive", "range_end_inclusive"] + required_params=[ParamNameEnum.RANGE_START_INCLUSIVE.value, ParamNameEnum.RANGE_END_INCLUSIVE.value] ), ConditionParameter( - name="range_percentage_gt", + name=ParamNameEnum.RANGE_PERCENTAGE_GT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_percentage_param_range, - required_params=["range_start_inclusive", "range_end_inclusive"] + required_params=[ParamNameEnum.RANGE_START_INCLUSIVE.value, ParamNameEnum.RANGE_END_INCLUSIVE.value] ), ConditionParameter( - name="max_min_lt", + name=ParamNameEnum.MAX_MIN_LT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ), ConditionParameter( - name="max_min_gt", + name=ParamNameEnum.MAX_MIN_GT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ) @@ -434,36 +435,36 @@ CONDITION_LIST = [ optimize_phase=OptimizePhaseEnum.TENSOR_CHECK, parameters=[ ConditionParameter( - name="range_start_inclusive", + name=ParamNameEnum.RANGE_START_INCLUSIVE, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range, param_type=ParamTypeEnum.SUPPORT_PARAM ), ConditionParameter( - name="range_end_inclusive", + name=ParamNameEnum.RANGE_END_INCLUSIVE, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range, param_type=ParamTypeEnum.SUPPORT_PARAM ), ConditionParameter( - name="range_percentage_lt", + name=ParamNameEnum.RANGE_PERCENTAGE_LT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_percentage_param_range, - required_params=["range_start_inclusive", "range_end_inclusive"] + required_params=[ParamNameEnum.RANGE_START_INCLUSIVE.value, ParamNameEnum.RANGE_END_INCLUSIVE.value] ), ConditionParameter( - name="range_percentage_gt", + name=ParamNameEnum.RANGE_PERCENTAGE_GT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_percentage_param_range, - required_params=["range_start_inclusive", "range_end_inclusive"] + required_params=[ParamNameEnum.RANGE_START_INCLUSIVE.value, ParamNameEnum.RANGE_END_INCLUSIVE.value] ), ConditionParameter( - name="max_min_lt", + name=ParamNameEnum.MAX_MIN_LT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ), ConditionParameter( - name="max_min_gt", + name=ParamNameEnum.MAX_MIN_GT, value_type=ValueTypeEnum.FLOAT64, valid_test_func=check_normal_param_range ) diff --git a/mindinsight/debugger/debugger_grpc_server.py b/mindinsight/debugger/debugger_grpc_server.py index 3b803e53..10dacb12 100644 --- a/mindinsight/debugger/debugger_grpc_server.py +++ b/mindinsight/debugger/debugger_grpc_server.py @@ -21,7 +21,7 @@ import mindinsight from mindinsight.debugger.common.log import LOGGER as log from mindinsight.debugger.common.utils import get_ack_reply, ServerStatus, \ Streams, RunLevel -from mindinsight.debugger.conditionmgr.condition import TargetTypeEnum +from mindinsight.debugger.conditionmgr.condition import TargetTypeEnum, ParamNameEnum from mindinsight.debugger.proto import debug_grpc_pb2_grpc as grpc_server_base from mindinsight.debugger.proto.ms_graph_pb2 import GraphProto @@ -503,7 +503,9 @@ class DebuggerGrpcServer(grpc_server_base.EventListenerServicer): } hit_params = {} for param in watchpoint_hit_proto.watch_condition.params: - if param.actual_value is not None: + if param.actual_value is not None and param.name not in \ + (ParamNameEnum.RTOL.value, ParamNameEnum.RANGE_START_INCLUSIVE.value, + ParamNameEnum.RANGE_END_INCLUSIVE.value): hit_params[param.name] = param.actual_value for i, param in enumerate(watchpoint_hit['watchpoint'].condition['params']): name = param['name']