def setUp(self): self.op_type = "conv3d" self.use_cudnn = False self.dtype = np.float32 self.init_kernel_type() self.init_group() self.init_dilation() self.init_test_case() conv3d_param = { 'stride': self.stride, 'pad': self.pad, 'dilations': self.dilations, 'data_format': 'AnyLayout' # TODO(dzhwinter) : should be fix latter } input = np.random.random(self.input_size).astype(self.dtype) filter = np.random.random(self.filter_size).astype(self.dtype) output = conv3d_forward_naive(input, filter, self.groups, conv3d_param).astype(self.dtype) self.inputs = { 'Input': OpTest.np_dtype_to_fluid_dtype(input), 'Filter': OpTest.np_dtype_to_fluid_dtype(filter) } self.attrs = { 'strides': self.stride, 'paddings': self.pad, 'groups': self.groups, 'dilations': self.dilations, 'use_cudnn': self.use_cudnn } self.outputs = {'Output': output}
def setUp(self): self.op_type = "elementwise_add" self.dtype = np.float32 self.axis = -1 self.init_dtype() self.init_input_output() self.init_axis() self.inputs = { 'X': OpTest.np_dtype_to_fluid_dtype(self.x), 'Y': OpTest.np_dtype_to_fluid_dtype(self.y) } self.attrs = {'axis': self.axis} self.outputs = {'Out': self.out}
def setUp(self): self.op_type = "pool2d" self.use_cudnn = False self.use_mkldnn = False self.dtype = np.float32 self.init_test_case() self.init_global_pool() self.init_kernel_type() self.init_pool_type() self.init_ceil_mode() if self.global_pool: self.paddings = [0 for _ in range(len(self.paddings))] input = np.random.random(self.shape).astype(self.dtype) output = self.pool2D_forward_naive(input, self.ksize, self.strides, self.paddings, self.global_pool, self.ceil_mode).astype(self.dtype) self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(input)} self.attrs = { 'strides': self.strides, 'paddings': self.paddings, 'ksize': self.ksize, 'pooling_type': self.pool_type, 'global_pooling': self.global_pool, 'use_cudnn': self.use_cudnn, 'use_mkldnn': self.use_mkldnn, 'ceil_mode': self.ceil_mode, 'data_format': 'AnyLayout' # TODO(dzhwinter) : should be fix latter } self.outputs = {'Out': output}
def setUp(self): self.op_type = "leaky_relu" self.init_dtype() x = np.random.uniform(-1, 1, [11, 17]).astype(self.dtype) # The same reason with TestAbs x[np.abs(x) < 0.005] = 0.02 out = np.maximum(x, 0.02 * x) self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.outputs = {'Out': out}
def setUp(self): self.op_type = "exp" self.dtype = np.float32 self.init_dtype() self.init_kernel_type() x = np.random.uniform(0.1, 1, [11, 17]).astype(self.dtype) out = np.exp(x) self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.outputs = {'Out': out}
def setUp(self): self.set_npu() self.op_type = "unsqueeze" self.place = paddle.NPUPlace(0) self.init_test_case() self.x = np.random.random(self.ori_shape).astype("float32") self.inputs = {"X": OpTest.np_dtype_to_fluid_dtype(self.x)} self.init_attrs() self.outputs = { "Out": self.x.reshape(self.new_shape), }
def setUp(self): self.op_type = "reciprocal" self.init_dtype() np.random.seed(1024) x = np.random.uniform(1, 2, [1111, 1117]).astype(self.dtype) out = np.reciprocal(x) self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.outputs = {'Out': out} self.attrs = {'use_xpu': True}
def setUp(self): self.op_type = "swish" self.init_dtype() X = np.random.uniform(0.1, 1, [11, 17]).astype(self.dtype) beta = 2.3 out = X * expit(beta * X) self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(X)} self.attrs = {'beta': beta} self.outputs = {'Out': out}
def setUp(self): super(TestMKLDNNReluDim4, self).setUp() x = np.random.uniform(-1, 1, [2, 4, 3, 5]).astype("float32") # The same reason with TestAbs x[np.abs(x) < 0.005] = 0.02 out = np.maximum(x, 0) self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.outputs = {'Out': out} self.attrs = {"use_mkldnn": True}
def setUp(self): self.op_type = "mpc_conv2d" self.dtype = np.int64 self.init_kernel_type() self.init_group() self.init_dilation() self.init_data_format() self.init_test_case() self.init_paddings() self.init_test_case_2() conv2d_param = { 'stride': self.stride, 'pad': self.pad, 'dilation': self.dilations } input = np.random.random(self.input_size) filter = np.random.uniform(-1, 1, self.filter_size) output, _, _, _, _ = conv2d_forward_naive(input, filter, self.groups, conv2d_param, self.padding_algorithm, self.data_format) input = self.lazy_share(input) filter = self.lazy_share(filter) self.inputs = { 'Input': OpTest.np_dtype_to_fluid_dtype(input), 'Filter': OpTest.np_dtype_to_fluid_dtype(filter) } self.attrs = { 'strides': self.stride, 'paddings': self.pad, 'padding_algorithm': self.padding_algorithm, 'groups': self.groups, 'dilations': self.dilations, 'data_format': self.data_format } self.outputs = {'Output': self.lazy_share(output)}
def setUp(self): self.op_type = "hard_shrink" self.init_dtype() threshold = 0.5 x = np.random.uniform(-1, 1, [4, 4]).astype(self.dtype) out = np.copy(x) out[(out >= -threshold) & (out <= threshold)] = 0 self.attrs = {'lambda': threshold} self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.outputs = {'Out': out}
def setUp(self): self.op_type = "stanh" self.init_dtype() x = np.random.uniform(0.1, 1, [11, 17]).astype(self.dtype) scale_a = 2.0 / 3.0 scale_b = 1.7159 out = scale_b * np.tanh(x * scale_a) self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.attrs = {'scale_a': scale_a, 'scale_b': scale_b} self.outputs = {'Out': out}
def set_data(self): self.init_data() self.calc_fold() self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(self.x)} self.attrs = { 'kernel_sizes': self.kernel_sizes, 'paddings': self.paddings, 'dilations': self.dilations, 'strides': self.strides, 'output_sizes': self.output_sizes } self.outputs = {'Y': self.outputs}
def set_case(self): self.op_type = 'logical_not' x = np.random.randint(self.low, self.high, self.x_shape, dtype=self.dtype) out = np.logical_not(x) self.attrs = {'use_xpu': True} self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.outputs = {'Out': out}
def setUp(self): self.op_type = "conv3d" self.use_cudnn = False self.use_mkldnn = False self.data_format = "AnyLayout" self.dtype = np.float64 self.init_kernel_type() self.init_group() self.init_dilation() self.init_test_case() conv3d_param = { 'stride': self.stride, 'pad': self.pad, 'dilations': self.dilations } input = np.random.random(self.input_size).astype(self.dtype) filter = np.random.random(self.filter_size).astype(self.dtype) output = conv3d_forward_naive( input, filter, self.groups, conv3d_param, ).astype(self.dtype) self.inputs = { 'Input': OpTest.np_dtype_to_fluid_dtype(input), 'Filter': OpTest.np_dtype_to_fluid_dtype(filter) } self.attrs = { 'strides': self.stride, 'paddings': self.pad, 'groups': self.groups, 'dilations': self.dilations, 'use_cudnn': self.use_cudnn, 'use_mkldnn': self.use_mkldnn, 'data_format': self.data_format } self.outputs = {'Output': output}
def setUp(self): self.set_mlu() self.op_type = "gelu" self.place = paddle.MLUPlace(0) self.init_dtype() np.random.seed(SEED) x = np.random.uniform(1, 2, [3, 4]).astype(self.dtype) out = np_gelu(x) self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.attrs = {} self.outputs = {'Out': out}
def setUp(self): self.set_npu() self.op_type = "log" self.place = paddle.NPUPlace(0) self.init_dtype() np.random.seed(SEED) x = np.random.uniform(1, 2, [11, 17]).astype(self.dtype) out = np.log(x) self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.attrs = {} self.outputs = {'Out': out}
def setUp(self): self.set_npu() self.op_type = "expand" self.place = paddle.NPUPlace(0) self.init_dtype() np.random.seed(SEED) x = np.random.randn(30, 1, 7).astype(self.dtype) out = np.tile(x, [1, 10, 1]) self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.attrs = {'expand_times': [1, 10, 1]} self.outputs = {'Out': out}
def setUp(self): self.set_npu() self.op_type = "pow" self.place = paddle.NPUPlace(0) self.init_dtype() np.random.seed(SEED) x = np.random.uniform(1, 2, [3, 4]).astype(self.dtype) out = np.power(x, 2) self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.attrs = {'factor': 2.0} self.outputs = {'Out': out}
def setUp(self): self.set_mlu() self.op_type = "relu" self.place = paddle.MLUPlace(0) self.init_dtype() np.random.seed(SEED) x = np.array([0.1, -0.1, -1.0]).astype(self.dtype) out = np.array([0.1, 0.0, 0.0]).astype(self.dtype) self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.attrs = {} self.outputs = {'Out': out}
def setUp(self): self.set_npu() self.op_type = "shape" self.place = paddle.NPUPlace(0) self.init_dtype() np.random.seed(SEED) x = np.random.uniform(1, 2, [5, 10]).astype(self.dtype) out = np.array([5, 10]) self.inputs = {'Input': OpTest.np_dtype_to_fluid_dtype(x)} self.attrs = {} self.outputs = {'Out': out}
def setUp(self): self.op_type = "group_norm" self.data_format = "NCHW" self.dtype = np.float32 self.shape = (2, 4, 3, 3) self.attrs = {'epsilon': 1e-5, 'groups': 2} self.compare_between_place = False self.init_test_case() input = np.random.random(self.shape).astype(self.dtype) scale = np.random.random([self.shape[1]]).astype(self.dtype) bias = np.random.random([self.shape[1]]).astype(self.dtype) output, mean, var = group_norm_naive(input, scale, bias, self.attrs['epsilon'], self.attrs['groups']) self.inputs = { 'X': OpTest.np_dtype_to_fluid_dtype(input), 'Scale': OpTest.np_dtype_to_fluid_dtype(scale), 'Bias': OpTest.np_dtype_to_fluid_dtype(bias) } self.outputs = {'Y': output, 'Mean': mean, 'Variance': var}
def setUp(self): self.set_npu() self.op_type = "relu" self.place = paddle.NPUPlace(0) self.init_dtype() np.random.seed(SEED) x = np.random.rand(3, 2).astype(self.dtype) out = x self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.attrs = {} self.outputs = {'Out': out}
def setUp(self): self.op_type = "depthwise_conv2d" self.dtype = np.float32 self.set_npu() self.init_data_format() self.init_data_type() self.init_paddings() self.init_test_case() self.init_test_case_2() conv2d_param = { 'stride': self.stride, 'pad': self.pad, 'dilation': self.dilations } input = np.random.random(self.input_size).astype(self.dtype) filter = np.random.uniform(-1, 1, self.filter_size).astype(self.dtype) output, _, _, _, _ = conv2d_forward_naive(input, filter, self.groups, conv2d_param, self.padding_algorithm, self.data_format) output = output.astype(self.dtype) self.inputs = { 'Input': OpTest.np_dtype_to_fluid_dtype(input), 'Filter': OpTest.np_dtype_to_fluid_dtype(filter) } self.attrs = { 'strides': self.stride, 'paddings': self.pad, 'padding_algorithm': self.padding_algorithm, 'groups': self.groups, 'dilations': self.dilations, 'data_format': self.data_format } self.outputs = {'Output': output}
def setUp(self): self.op_type = "softshrink" self.init_dtype() lambda_val = 0.1 x = np.random.uniform(0.25, 10, [4, 4]).astype(self.dtype) out = np.copy(x) out = (out < -lambda_val) * (out + lambda_val) + (out > lambda_val) * ( out - lambda_val) self.attrs = {'lambda': lambda_val} self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.outputs = {'Out': out}
def setUp(self): self.op_type = "dropout" self.init_test_case() x = np.random.random(self.input_size).astype("float16") out = x * (1.0 - self.prob) self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.attrs = { 'dropout_prob': self.prob, 'fix_seed': self.fix_seed, 'is_test': True } self.outputs = {'Out': out}
def setUp(self): self.set_npu() self.place = paddle.NPUPlace(NPUPlace) self.op_type = "increment" self.init_dtype() self.inputs = { 'X': OpTest.np_dtype_to_fluid_dtype(np.array([1]).astype(self.dtype)), } self.attrs = {"Step": 1} self.outputs = {'Out': np.array([2])}
def setUp(self): """ the prepared section for add position encoding op """ self.op_type = "add_position_encoding" self.dtype = np.float64 self.init_input_output() self.inputs = { 'X': OpTest.np_dtype_to_fluid_dtype(self.x), } self.outputs = {'Out': self.out} self.attrs = {'alpha': self.alpha, 'beta': self.beta}
def setUp(self): self.python_api = deform_conv2d_wrapper self.op_type = "deformable_conv" self.init_type() self.init_group() self.init_dilation() self.init_test_case() conv_param = { 'stride': self.stride, 'pad': self.pad, 'dilation': self.dilations } input = np.random.random(self.input_size).astype(self.dtype) offset = 10 * np.random.random(self.offset_size).astype(self.dtype) mask = 10 * np.random.random(self.mask_size).astype(self.dtype) filter = np.random.random(self.filter_size).astype(self.dtype) output = dconv_im2col_gemm(input, offset, mask, filter, self.groups, conv_param) output = output.astype(self.dtype) self.inputs = { 'Input': OpTest.np_dtype_to_fluid_dtype(input), 'Offset': OpTest.np_dtype_to_fluid_dtype(offset), 'Mask': OpTest.np_dtype_to_fluid_dtype(mask), 'Filter': OpTest.np_dtype_to_fluid_dtype(filter) } self.attrs = { 'strides': self.stride, 'paddings': self.pad, 'groups': self.groups, 'deformable_groups': self.deformable_groups, 'im2col_step': self.im2col_step, 'dilations': self.dilations, } self.outputs = {'Output': output}
def setUp(self): self.op_type = "pow" self.init_dtype() x = np.random.uniform(1, 2, [11, 17]).astype(self.dtype) out = np.power(x, 3) self.inputs = { 'X': OpTest.np_dtype_to_fluid_dtype(x), 'FactorTensor': np.array([3.0]).astype("float32") } self.attrs = {} self.outputs = {'Out': out}
def setUp(self): self.op_type = "relu6" self.init_dtype() x = np.random.uniform(-1, 1, [4, 10]).astype(self.dtype) threshold = 6.0 # The same with TestAbs x[np.abs(x) < 0.005] = 0.02 x[np.abs(x - threshold) < 0.005] = threshold + 0.02 out = np.minimum(np.maximum(x, 0), threshold) self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.attrs = {'threshold': threshold} self.outputs = {'Out': out}
def setUp(self): self.op_type = "abs" self.init_dtype() x = np.random.uniform(-1, 1, [4, 4]).astype(self.dtype) # Because we set delta = 0.005 in calculating numeric gradient, # if x is too small, such as 0.002, x_neg will be -0.003 # x_pos will be 0.007, so the numeric gradient is inaccurate. # we should avoid this x[np.abs(x) < 0.005] = 0.02 out = np.abs(x) self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.outputs = {'Out': out}
def setUp(self): self.set_npu() self.op_type = "scale" self.place = paddle.NPUPlace(0) self.init_dtype() self.inputs = { 'X': OpTest.np_dtype_to_fluid_dtype( np.random.random((10, 10)).astype(self.dtype)) } self.attrs = {'scale': -2.3, 'bias': 0, 'bias_after_scale': False} self.outputs = { 'Out': self.inputs['X'] * self.dtype(self.attrs['scale']) }
def setUp(self): self.op_type = "fused_elemwise_activation" self.dtype = dtype self.axis = -1 self.init_input() self.init_output() self.init_attr() self.out = self.out.astype(self.dtype) self.intermediate_out = self.intermediate_out.astype(self.dtype) self.inputs = { 'X': OpTest.np_dtype_to_fluid_dtype(self.x), 'Y': OpTest.np_dtype_to_fluid_dtype(self.y) } if self.attrs["save_intermediate_out"]: self.outputs = { 'Out': self.out, "IntermediateOut": self.intermediate_out } else: self.outputs = {'Out': self.out}
def setUp(self): self.op_type = "softmax" self.use_cudnn = False self.use_mkldnn = False self.dtype = np.float32 self.init_kernel_type() x = np.random.uniform(0.1, 1, [10, 10]).astype(self.dtype) out = np.apply_along_axis(stable_softmax, 1, x) self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.outputs = {'Out': out} self.attrs = { 'use_cudnn': self.use_cudnn, 'use_mkldnn': self.use_mkldnn }
def check_with_place(self, place, data_layout, dtype, shape): epsilon = 0.00001 if len(shape) == 2: x_shape = shape c = x_shape[1] else: n, h, w, c = shape[0], shape[1], shape[2], shape[3] if data_layout == "NHWC": x_shape = [n, h, w, c] elif data_layout == "NCHW": x_shape = [n, c, h, w] else: raise ValueError("Unknown data layout.") scale_shape = [c] x_val = np.random.random_sample(x_shape).astype(dtype) scale_val = np.random.random_sample(scale_shape).astype(np.float32) bias_val = np.random.random_sample(scale_shape).astype(np.float32) mean = np.zeros(scale_shape).astype(np.float32) variance = np.ones(scale_shape).astype(np.float32) y_out = _reference_testing(x_val, scale_val, bias_val, mean, variance, epsilon, data_layout).astype(dtype) scope = core.Scope() # create input x_tensor = create_or_get_tensor(scope, "x_val", OpTest.np_dtype_to_fluid_dtype(x_val), place) scale_tensor = create_or_get_tensor( scope, "scale_val", OpTest.np_dtype_to_fluid_dtype(scale_val), place) bias_tensor = create_or_get_tensor( scope, "bias_val", OpTest.np_dtype_to_fluid_dtype(bias_val), place) mean_tensor = create_or_get_tensor(scope, "mean", OpTest.np_dtype_to_fluid_dtype(mean), place) variance_tensor = create_or_get_tensor( scope, "variance", OpTest.np_dtype_to_fluid_dtype(variance), place) # create output y_tensor = create_or_get_tensor(scope, "y_out", None, place) saved_mean_tensor = create_or_get_tensor(scope, "saved_mean", None, place) saved_variance_tensor = create_or_get_tensor(scope, "saved_variance", None, place) mean_out_tensor = mean_tensor variance_out_tensor = variance_tensor batch_norm_op = Operator( "batch_norm", # inputs X="x_val", Scale="scale_val", Bias="bias_val", Mean="mean", Variance="variance", # outputs Y="y_out", MeanOut="mean", VarianceOut="variance", SavedMean="saved_mean", SavedVariance="saved_variance", # attrs is_test=True, data_layout=data_layout, use_mkldnn=self.use_mkldnn, epsilon=epsilon) batch_norm_op.run(scope, place) # check inference result self.__assert_close( y_tensor, y_out, "inference output are different at " + str(place) + ", " + data_layout + ", " + str(np.dtype(dtype)) + str(np.array(y_tensor)) + str(y_out), atol=1e-3)