!1188 fine tuning mindspore_test_framework

Merge pull request !1188 from panyifeng/fine_tuning_mindspore_test_framework
pull/1188/MERGE
mindspore-ci-bot 5 years ago committed by Gitee
commit 93f6fc0ab0

@ -22,7 +22,7 @@ from mindspore.ops import operations as P
from ..mindspore_test import mindspore_test 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 ..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 = [ verification_set = [
('MatMul', { ('MatMul', {

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

@ -26,8 +26,8 @@ class CheckGradientForScalarFunctionEC(IExectorComponent):
Examples: Examples:
'block': scalar_function '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, _ = \ 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, 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) input_selector=input_selector, output_selector=output_selector, sampling_times=sampling_times)

@ -35,9 +35,9 @@ class CheckGradientWrtInputsEC(IExectorComponent):
key_act=None, key_act=None,
initializer_range=0.02) initializer_range=0.02)
""" """
def run_function(self, function, inputs, verification_set): def __call__(self):
f, args, delta, max_error, input_selector, output_selector, \ 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, 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, input_selector=input_selector, output_selector=output_selector, sampling_times=sampling_times,
reduce_output=reduce_output) reduce_output=reduce_output)

@ -35,9 +35,9 @@ class CheckGradientWrtParamsEC(IExectorComponent):
key_act=None, key_act=None,
initializer_range=0.02) initializer_range=0.02)
""" """
def run_function(self, function, inputs, verification_set): def __call__(self):
f, args, delta, max_error, input_selector, output_selector, \ 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, 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, input_selector=input_selector, output_selector=output_selector, sampling_times=sampling_times,
reduce_output=reduce_output) reduce_output=reduce_output)

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

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

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

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

@ -22,12 +22,12 @@ class IdentityEC(IExectorComponent):
""" """
Execute function/inputs. Execute function/inputs.
""" """
def run_function(self, function, inputs, verification_set): def __call__(self):
result_id = function[keyword.id] + '-' + inputs[keyword.id] result_id = self.function[keyword.id] + '-' + self.inputs[keyword.id]
group = function[keyword.group] + '-' + inputs[keyword.group] group = self.function[keyword.group] + '-' + self.inputs[keyword.group]
return { return {
keyword.id: result_id, keyword.id: result_id,
keyword.group: group, keyword.group: group,
keyword.desc_inputs: inputs[keyword.desc_inputs], keyword.desc_inputs: self.inputs[keyword.desc_inputs],
keyword.result: function[keyword.block](*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. 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): def __call__(self):
result_id = function[keyword.id] + '-' + inputs[keyword.id] result_id = self.function[keyword.id] + '-' + self.inputs[keyword.id]
group = function[keyword.group] + '-' + inputs[keyword.group] group = self.function[keyword.group] + '-' + self.inputs[keyword.group]
i = [] i = []
i.extend(inputs[keyword.desc_inputs]) i.extend(self.inputs[keyword.desc_inputs])
i.extend(inputs[keyword.desc_bprop]) i.extend(self.inputs[keyword.desc_bprop])
return { return {
keyword.id: result_id, keyword.id: result_id,
keyword.group: group, keyword.group: group,
keyword.desc_inputs: i, 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. Combine expect/result by do cartesian product on group.
""" """
def combine(self, expect, result, verification_set): def __call__(self):
ret = [(s1, s2) for s1 in expect for s2 in result if s1[keyword.group] == s2[keyword.group]] ret = [(s1, s2) for s1 in self.expect for s2 in self.result if s1[keyword.group] == s2[keyword.group]]
return ret return ret

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

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

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

@ -43,6 +43,6 @@ class CompileBackwardBlockWrtInputsBC(IBuilderComponent):
dtype=mstype.float32, dtype=mstype.float32,
compute_type=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) 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, dtype=mstype.float32,
compute_type=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) 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: Examples:
'function': Add 'function': Add
""" """
def build_sut(self, verification_set): def __call__(self):
return verification_set[keyword.function] return self.verification_set[keyword.function]

@ -42,5 +42,5 @@ class RunBlockWithRandParamBC(IBuilderComponent):
dtype=mstype.float32, dtype=mstype.float32,
compute_type=mstype.float32) compute_type=mstype.float32)
""" """
def build_sut(self, verification_set): def __call__(self):
return create_funcs(verification_set, gen_net, run_block, default_rand_func=get_uniform_with_shape) 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 from ...utils.block_util import run_block, gen_grad_net, create_funcs, get_uniform_with_shape
class RunBackwardBlockWrtInputsWithRandParamBC(IBuilderComponent): class RunBackwardBlockWrtInputsWithRandParamBC(IBuilderComponent):
def build_sut(self, verification_set): def __call__(self):
grad_op = GradOperation('grad', get_all=True, sens_param=True) 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 from ...utils.block_util import run_block, gen_grad_net, create_funcs, get_uniform_with_shape
class RunBackwardBlockWrtParamsWithRandParamBC(IBuilderComponent): class RunBackwardBlockWrtParamsWithRandParamBC(IBuilderComponent):
def build_sut(self, verification_set): def __call__(self):
grad_op = GradOperation('grad', get_by_list=True, sens_param=True) 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, dtype=mstype.float32,
compute_type=mstype.float32) compute_type=mstype.float32)
""" """
def build_sut(self, verification_set): def __call__(self):
return create_funcs(verification_set, gen_net, run_block) 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 from ...utils.block_util import run_block, gen_grad_net, create_funcs
class RunBackwardBlockWrtInputsBC(IBuilderComponent): class RunBackwardBlockWrtInputsBC(IBuilderComponent):
def build_sut(self, verification_set): def __call__(self):
grad_op = GradOperation('grad', get_all=True, sens_param=True) 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 from ...utils.block_util import run_block, gen_grad_net, create_funcs
class RunBackwardBlockWrtParamsBC(IBuilderComponent): class RunBackwardBlockWrtParamsBC(IBuilderComponent):
def build_sut(self, verification_set): def __call__(self):
grad_op = GradOperation('grad', get_by_list=True, sens_param=True) 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. Combine function/inputs by do cartesian product on group.
""" """
def combine(self, function, inputs, verification_set): def __call__(self):
# pylint: disable=unused-argument ret = [(s1, s2) for s1 in self.function for s2 in self.inputs if s1[keyword.group] == s2[keyword.group]]
ret = [(s1, s2) for s1 in function for s2 in inputs if s1[keyword.group] == s2[keyword.group]]
return ret return ret

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

Loading…
Cancel
Save