Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
nni
Commits
efd8c7c8
Unverified
Commit
efd8c7c8
authored
May 20, 2022
by
liuzhe-lz
Committed by
GitHub
May 20, 2022
Browse files
Loose merge_parameter() type checking (#4868)
parent
570bce77
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
6 deletions
+13
-6
nni/utils.py
nni/utils.py
+13
-6
No files found.
nni/utils.py
View file @
efd8c7c8
...
@@ -229,19 +229,26 @@ def merge_parameter(base_params, override_params):
...
@@ -229,19 +229,26 @@ def merge_parameter(base_params, override_params):
if
is_dict
:
if
is_dict
:
if
k
not
in
base_params
:
if
k
not
in
base_params
:
raise
ValueError
(
'Key
\'
%s
\'
not found in base parameters.'
%
k
)
raise
ValueError
(
'Key
\'
%s
\'
not found in base parameters.'
%
k
)
if
type
(
base_params
[
k
])
!=
type
(
v
)
and
base_params
[
k
]
is
not
None
:
v
=
_ensure_compatible_type
(
k
,
base_params
[
k
],
v
)
raise
TypeError
(
'Expected
\'
%s
\'
in override parameters to have type
\'
%s
\'
, but found
\'
%s
\'
.'
%
(
k
,
type
(
base_params
[
k
]),
type
(
v
)))
base_params
[
k
]
=
v
base_params
[
k
]
=
v
else
:
else
:
if
not
hasattr
(
base_params
,
k
):
if
not
hasattr
(
base_params
,
k
):
raise
ValueError
(
'Key
\'
%s
\'
not found in base parameters.'
%
k
)
raise
ValueError
(
'Key
\'
%s
\'
not found in base parameters.'
%
k
)
if
type
(
getattr
(
base_params
,
k
))
!=
type
(
v
)
and
getattr
(
base_params
,
k
)
is
not
None
:
v
=
_ensure_compatible_type
(
k
,
getattr
(
base_params
,
k
),
v
)
raise
TypeError
(
'Expected
\'
%s
\'
in override parameters to have type
\'
%s
\'
, but found
\'
%s
\'
.'
%
(
k
,
type
(
getattr
(
base_params
,
k
)),
type
(
v
)))
setattr
(
base_params
,
k
,
v
)
setattr
(
base_params
,
k
,
v
)
return
base_params
return
base_params
def
_ensure_compatible_type
(
key
,
base
,
override
):
if
base
is
None
:
return
override
if
isinstance
(
override
,
type
(
base
)):
return
override
if
isinstance
(
base
,
float
)
and
isinstance
(
override
,
int
):
return
float
(
override
)
base_type
=
type
(
base
).
__name__
override_type
=
type
(
override
).
__name__
raise
ValueError
(
f
'Expected "
{
key
}
" in override parameters to have type
{
base_type
}
, but found
{
override_type
}
'
)
class
ClassArgsValidator
(
object
):
class
ClassArgsValidator
(
object
):
"""
"""
NNI tuners/assessors/adivisors accept a `classArgs` parameter in experiment configuration file.
NNI tuners/assessors/adivisors accept a `classArgs` parameter in experiment configuration file.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment