Browse Source

!1065 check for param in choice if it is bool

From: @luopengting
Reviewed-by: @wenkai_dist,@wangyue01
Signed-off-by: @wangyue01
tags/v1.1.0
mindspore-ci-bot Gitee 5 years ago
parent
commit
a333f3aa36
2 changed files with 8 additions and 1 deletions
  1. +2
    -1
      mindinsight/optimizer/common/validator/optimizer_config.py
  2. +6
    -0
      tests/ut/optimizer/common/validator/test_optimizer_config.py

+ 2
- 1
mindinsight/optimizer/common/validator/optimizer_config.py View File

@@ -219,7 +219,8 @@ class OptimizerConfig(Schema):
if list(filter(lambda x: not isinstance(x, float), choice)):
err_msg = "The value(s) should be float number."
raise ValidationError(_generate_err_msg_for_nested_keys(err_msg, name, HyperParamKey.CHOICE.value))
elif list(filter(lambda x: not isinstance(x, int), choice)):
elif list(filter(lambda x: isinstance(x, bool) or not isinstance(x, int), choice)):
# isinstance(x, int) will return True if x is bool. use 'type(x)' will not pass lint.
err_msg = "The value(s) should be integer."
raise ValidationError(_generate_err_msg_for_nested_keys(err_msg, name, HyperParamKey.CHOICE.value))



+ 6
- 0
tests/ut/optimizer/common/validator/test_optimizer_config.py View File

@@ -231,6 +231,12 @@ class TestOptimizerConfig:
err = OptimizerConfig().validate(config_dict)
assert expected_err == err

# test bool
expected_err['parameters'][param_name]['choice'] = 'The value(s) should be integer.'
config_dict['parameters'][param_name]['choice'] = [1, True]
err = OptimizerConfig().validate(config_dict)
assert expected_err == err

config_dict['parameters'][param_name] = {'choice': [0.1, 0.2]}
err = OptimizerConfig().validate(config_dict)
assert expected_err == err


Loading…
Cancel
Save