def setUpClass(cls): '''Fix random seeds to remove randomness from tests''' cls._np_rand_state = np.random.get_state() cls._py_rand_state = random.getstate() cls.call_once = False cls.dtype = np.float32 cls.outputs = {} cls.input_shape_is_large = True np.random.seed(123) random.seed(124) cls._use_system_allocator = _set_use_system_allocator(True)
def tearDownClass(cls): """Restore random seeds""" np.random.set_state(cls._np_rand_state) random.setstate(cls._py_rand_state) _set_use_system_allocator(cls._use_system_allocator) def is_empty_grad_op(op_type): all_op_kernels = core._get_all_register_op_kernels() grad_op = op_type + '_grad' if grad_op in all_op_kernels.keys(): if is_mkldnn_op_test(): grad_op_kernels = all_op_kernels[grad_op] for grad_op_kernel in grad_op_kernels: if 'MKLDNN' in grad_op_kernel: return False else: return False return True def is_xpu_op_test(): return True def is_mkldnn_op_test(): return False if not hasattr(cls, "op_type"): raise AssertionError( "This test do not have op_type in class attrs, " "please set self.__class__.op_type=the_real_op_type manually.") # case in NO_FP64_CHECK_GRAD_CASES and op in NO_FP64_CHECK_GRAD_OP_LIST should be fixed if not hasattr(cls, "no_need_check_grad") \ and not is_empty_grad_op(cls.op_type): if cls.dtype is not None and \ cls.dtype != np.float32: raise AssertionError("This test of %s op needs check_grad." % cls.op_type)
from __future__ import print_function import os import unittest import numpy as np import paddle import paddle.fluid.core as core from paddle.fluid.op import Operator import paddle.fluid as fluid from op_test import OpTest, _set_use_system_allocator from paddle.fluid.framework import grad_var_name import paddle.fluid as fluid from paddle.fluid import Program, program_guard _set_use_system_allocator(True) def _reference_testing(x, scale, offset, mean, var, epsilon, data_format): x_shape = x.shape if len(x_shape) == 2: if data_format == "NCHW": x = np.reshape(x, (x.shape[0], x.shape[1], 1, 1)) else: x = np.reshape(x, (x.shape[0], 1, 1, x.shape[1])) if len(x_shape) == 3: if data_format == "NCHW": # NCL -> NCL1 x = np.reshape(x, (x_shape[0], x_shape[1], x_shape[2], 1)) else: # NLC -> NL1C x = np.reshape(x, (x_shape[0], x_shape[1], 1, x_shape[2]))
from __future__ import print_function import unittest import numpy as np import sys sys.path.append("..") import paddle import paddle.fluid.core as core import paddle.fluid as fluid from paddle.fluid.op import Operator from op_test import OpTest, _set_use_system_allocator from paddle.fluid import Program, program_guard from test_batch_norm_op import _reference_testing, _cal_mean_variance, _reference_training, _reference_grad _set_use_system_allocator(False) paddle.enable_static() class TestBatchNormOpInference(unittest.TestCase): def setUp(self): self.dtype = np.float32 self.init_kernel_type() self.data_formats = ["NCHW", "NHWC"] def __assert_close(self, tensor, np_array, msg, atol=1e-4): self.assertTrue(np.allclose(np.array(tensor), np_array, atol=atol), msg) def check_with_place(self, place, data_layout, dtype, shape): epsilon = epsilon = 0.00001