tuning mindspore_test_framework

pull/1188/head
panyifeng 5 years ago
parent 8003a89a7b
commit 5a7abf0740

@ -22,7 +22,7 @@ from mindspore.ops import operations as P
from ..mindspore_test import mindspore_test
from ..pipeline.gradient.compare_gradient import pipeline_for_compare_inputs_grad_with_npy_for_case_by_case_config
# from ...vm_impl import *
from ...vm_impl import *
verification_set = [
('MatMul', {

@ -32,11 +32,11 @@ class CheckExceptionsEC(IExectorComponent):
'error_keywords': ['TensorAdd', 'shape']
}
"""
def run_function(self, function, inputs, verification_set):
f = function[keyword.block]
args = inputs[keyword.desc_inputs]
e = function.get(keyword.exception, Exception)
error_kws = function.get(keyword.error_keywords, None)
def __call__(self):
f = self.function[keyword.block]
args = self.inputs[keyword.desc_inputs]
e = self.function.get(keyword.exception, Exception)
error_kws = self.function.get(keyword.error_keywords, None)
try:
with pytest.raises(e) as exec_info:
f(*args)

@ -26,8 +26,8 @@ class CheckGradientForScalarFunctionEC(IExectorComponent):
Examples:
'block': scalar_function
"""
def run_function(self, function, inputs, verification_set):
def __call__(self):
f, args, delta, max_error, input_selector, output_selector, sampling_times, _ = \
get_grad_checking_options(function, inputs)
get_grad_checking_options(self.function, self.inputs)
check_gradient(f, *args, delta=delta, max_error=max_error, grad_checker_class=ScalarGradChecker,
input_selector=input_selector, output_selector=output_selector, sampling_times=sampling_times)

@ -35,9 +35,9 @@ class CheckGradientWrtInputsEC(IExectorComponent):
key_act=None,
initializer_range=0.02)
"""
def run_function(self, function, inputs, verification_set):
def __call__(self):
f, args, delta, max_error, input_selector, output_selector, \
sampling_times, reduce_output = get_grad_checking_options(function, inputs)
sampling_times, reduce_output = get_grad_checking_options(self.function, self.inputs)
check_gradient(f, *args, delta=delta, max_error=max_error, grad_checker_class=OperationGradChecker,
input_selector=input_selector, output_selector=output_selector, sampling_times=sampling_times,
reduce_output=reduce_output)

@ -35,9 +35,9 @@ class CheckGradientWrtParamsEC(IExectorComponent):
key_act=None,
initializer_range=0.02)
"""
def run_function(self, function, inputs, verification_set):
def __call__(self):
f, args, delta, max_error, input_selector, output_selector, \
sampling_times, reduce_output = get_grad_checking_options(function, inputs)
sampling_times, reduce_output = get_grad_checking_options(self.function, self.inputs)
check_gradient(f, *args, delta=delta, max_error=max_error, grad_checker_class=NNGradChecker,
input_selector=input_selector, output_selector=output_selector, sampling_times=sampling_times,
reduce_output=reduce_output)

@ -26,8 +26,8 @@ class CheckJacobianForScalarFunctionEC(IExectorComponent):
Examples:
'block': scalar_function
"""
def run_function(self, function, inputs, verification_set):
def __call__(self):
f, args, delta, max_error, input_selector, output_selector, _, _ = \
get_grad_checking_options(function, inputs)
get_grad_checking_options(self.function, self.inputs)
check_jacobian(f, *args, delta=delta, max_error=max_error, grad_checker_class=ScalarGradChecker,
input_selector=input_selector, output_selector=output_selector)

@ -35,8 +35,8 @@ class CheckJacobianWrtInputsEC(IExectorComponent):
key_act=None,
initializer_range=0.02)
"""
def run_function(self, function, inputs, verification_set):
def __call__(self):
f, args, delta, max_error, input_selector, output_selector, _, _ = \
get_grad_checking_options(function, inputs)
get_grad_checking_options(self.function, self.inputs)
check_jacobian(f, *args, delta=delta, max_error=max_error, grad_checker_class=OperationGradChecker,
input_selector=input_selector, output_selector=output_selector)

@ -35,8 +35,8 @@ class CheckJacobianWrtParamsEC(IExectorComponent):
key_act=None,
initializer_range=0.02)
"""
def run_function(self, function, inputs, verification_set):
def __call__(self):
f, args, delta, max_error, input_selector, output_selector, _, _ = \
get_grad_checking_options(function, inputs)
get_grad_checking_options(self.function, self.inputs)
check_jacobian(f, *args, delta=delta, max_error=max_error, grad_checker_class=NNGradChecker,
input_selector=input_selector, output_selector=output_selector)

@ -32,13 +32,13 @@ class LossVerifierEC(IExectorComponent):
'loss_upper_bound': 0.03,
}
"""
def run_function(self, function, inputs, verification_set):
model = function[keyword.block][keyword.model]
loss = function[keyword.block][keyword.loss]
opt = function[keyword.block][keyword.opt]
num_epochs = function[keyword.block][keyword.num_epochs]
loss_upper_bound = function[keyword.block][keyword.loss_upper_bound]
train_dataset = inputs[keyword.desc_inputs]
def __call__(self):
model = self.function[keyword.block][keyword.model]
loss = self.function[keyword.block][keyword.loss]
opt = self.function[keyword.block][keyword.opt]
num_epochs = self.function[keyword.block][keyword.num_epochs]
loss_upper_bound = self.function[keyword.block][keyword.loss_upper_bound]
train_dataset = self.inputs[keyword.desc_inputs]
model = Model(model, loss, opt)
loss = model.train(num_epochs, train_dataset)
assert loss.asnumpy().mean() <= loss_upper_bound

@ -22,12 +22,12 @@ class IdentityEC(IExectorComponent):
"""
Execute function/inputs.
"""
def run_function(self, function, inputs, verification_set):
result_id = function[keyword.id] + '-' + inputs[keyword.id]
group = function[keyword.group] + '-' + inputs[keyword.group]
def __call__(self):
result_id = self.function[keyword.id] + '-' + self.inputs[keyword.id]
group = self.function[keyword.group] + '-' + self.inputs[keyword.group]
return {
keyword.id: result_id,
keyword.group: group,
keyword.desc_inputs: inputs[keyword.desc_inputs],
keyword.result: function[keyword.block](*inputs[keyword.desc_inputs])
keyword.desc_inputs: self.inputs[keyword.desc_inputs],
keyword.result: self.function[keyword.block](*self.inputs[keyword.desc_inputs])
}

@ -22,15 +22,15 @@ class IdentityBackwardEC(IExectorComponent):
"""
Execute function/inputs, with all bprops attached, the bprop function created by BC should handle these bprops.
"""
def run_function(self, function, inputs, verification_set):
result_id = function[keyword.id] + '-' + inputs[keyword.id]
group = function[keyword.group] + '-' + inputs[keyword.group]
def __call__(self):
result_id = self.function[keyword.id] + '-' + self.inputs[keyword.id]
group = self.function[keyword.group] + '-' + self.inputs[keyword.group]
i = []
i.extend(inputs[keyword.desc_inputs])
i.extend(inputs[keyword.desc_bprop])
i.extend(self.inputs[keyword.desc_inputs])
i.extend(self.inputs[keyword.desc_bprop])
return {
keyword.id: result_id,
keyword.group: group,
keyword.desc_inputs: i,
keyword.result: function[keyword.block](*i)
keyword.result: self.function[keyword.block](*i)
}

@ -22,6 +22,6 @@ class GroupCartesianProductERPC(IERPolicyComponent):
"""
Combine expect/result by do cartesian product on group.
"""
def combine(self, expect, result, verification_set):
ret = [(s1, s2) for s1 in expect for s2 in result if s1[keyword.group] == s2[keyword.group]]
def __call__(self):
ret = [(s1, s2) for s1 in self.expect for s2 in self.result if s1[keyword.group] == s2[keyword.group]]
return ret

@ -22,6 +22,6 @@ class IdCartesianProductERPC(IERPolicyComponent):
"""
Combine expect/result by do cartesian product on id.
"""
def combine(self, expect, result, verification_set):
ret = [(s1, s2) for s1 in expect for s2 in result if s1[keyword.id] == s2[keyword.id]]
def __call__(self):
ret = [(s1, s2) for s1 in self.expect for s2 in self.result if s1[keyword.id] == s2[keyword.id]]
return ret

@ -47,9 +47,9 @@ class MeFacadeFC(IFacadeComponent):
}
})
"""
def adapt(self, verification_set):
def __call__(self):
ret = get_block_config()
for config in verification_set:
for config in self.verification_set:
tid = config[0]
group = 'default'
m = config[1]

@ -42,5 +42,5 @@ class CompileBlockBC(IBuilderComponent):
dtype=mstype.float32,
compute_type=mstype.float32)
"""
def build_sut(self, verification_set):
return create_funcs(verification_set, gen_net, compile_block)
def __call__(self):
return create_funcs(self.verification_set, gen_net, compile_block)

@ -43,6 +43,6 @@ class CompileBackwardBlockWrtInputsBC(IBuilderComponent):
dtype=mstype.float32,
compute_type=mstype.float32)
"""
def build_sut(self, verification_set):
def __call__(self):
grad_op = GradOperation('grad', get_all=True, sens_param=True)
return create_funcs(verification_set, gen_grad_net, compile_block, grad_op)
return create_funcs(self.verification_set, gen_grad_net, compile_block, grad_op)

@ -43,6 +43,6 @@ class CompileBackwardBlockWrtParamsBC(IBuilderComponent):
dtype=mstype.float32,
compute_type=mstype.float32)
"""
def build_sut(self, verification_set):
def __call__(self, verification_set):
grad_op = GradOperation('grad', get_by_list=True, sens_param=True)
return create_funcs(verification_set, gen_grad_net, compile_block, grad_op)
return create_funcs(self.verification_set, gen_grad_net, compile_block, grad_op)

@ -25,5 +25,5 @@ class IdentityBC(IBuilderComponent):
Examples:
'function': Add
"""
def build_sut(self, verification_set):
return verification_set[keyword.function]
def __call__(self):
return self.verification_set[keyword.function]

@ -42,5 +42,5 @@ class RunBlockWithRandParamBC(IBuilderComponent):
dtype=mstype.float32,
compute_type=mstype.float32)
"""
def build_sut(self, verification_set):
return create_funcs(verification_set, gen_net, run_block, default_rand_func=get_uniform_with_shape)
def __call__(self):
return create_funcs(self.verification_set, gen_net, run_block, default_rand_func=get_uniform_with_shape)

@ -20,6 +20,6 @@ from ...components.icomponent import IBuilderComponent
from ...utils.block_util import run_block, gen_grad_net, create_funcs, get_uniform_with_shape
class RunBackwardBlockWrtInputsWithRandParamBC(IBuilderComponent):
def build_sut(self, verification_set):
def __call__(self):
grad_op = GradOperation('grad', get_all=True, sens_param=True)
return create_funcs(verification_set, gen_grad_net, run_block, grad_op, get_uniform_with_shape)
return create_funcs(self.verification_set, gen_grad_net, run_block, grad_op, get_uniform_with_shape)

@ -20,6 +20,6 @@ from ...components.icomponent import IBuilderComponent
from ...utils.block_util import run_block, gen_grad_net, create_funcs, get_uniform_with_shape
class RunBackwardBlockWrtParamsWithRandParamBC(IBuilderComponent):
def build_sut(self, verification_set):
def __call__(self):
grad_op = GradOperation('grad', get_by_list=True, sens_param=True)
return create_funcs(verification_set, gen_grad_net, run_block, grad_op, get_uniform_with_shape)
return create_funcs(self.verification_set, gen_grad_net, run_block, grad_op, get_uniform_with_shape)

@ -42,5 +42,5 @@ class RunBlockBC(IBuilderComponent):
dtype=mstype.float32,
compute_type=mstype.float32)
"""
def build_sut(self, verification_set):
return create_funcs(verification_set, gen_net, run_block)
def __call__(self):
return create_funcs(self.verification_set, gen_net, run_block)

@ -20,6 +20,6 @@ from ...components.icomponent import IBuilderComponent
from ...utils.block_util import run_block, gen_grad_net, create_funcs
class RunBackwardBlockWrtInputsBC(IBuilderComponent):
def build_sut(self, verification_set):
def __call__(self):
grad_op = GradOperation('grad', get_all=True, sens_param=True)
return create_funcs(verification_set, gen_grad_net, run_block, grad_op)
return create_funcs(self.verification_set, gen_grad_net, run_block, grad_op)

@ -20,6 +20,6 @@ from ...components.icomponent import IBuilderComponent
from ...utils.block_util import run_block, gen_grad_net, create_funcs
class RunBackwardBlockWrtParamsBC(IBuilderComponent):
def build_sut(self, verification_set):
def __call__(self):
grad_op = GradOperation('grad', get_by_list=True, sens_param=True)
return create_funcs(verification_set, gen_grad_net, run_block, grad_op)
return create_funcs(self.verification_set, gen_grad_net, run_block, grad_op)

@ -23,7 +23,6 @@ class GroupCartesianProductFIPC(IFIPolicyComponent):
"""
Combine function/inputs by do cartesian product on group.
"""
def combine(self, function, inputs, verification_set):
# pylint: disable=unused-argument
ret = [(s1, s2) for s1 in function for s2 in inputs if s1[keyword.group] == s2[keyword.group]]
def __call__(self):
ret = [(s1, s2) for s1 in self.function for s2 in self.inputs if s1[keyword.group] == s2[keyword.group]]
return ret

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save