def setUp(self): self.op_type = "conv2d_fusion" self.exhaustive_search = False self.data_format = "AnyLayout" self.dtype = np.float32 self.activation = 'relu' self.add_bias = True self.add_residual_data = True self.init_group() self.init_dilation() self.init_test_case() self.init_bias_residual() self.init_activation() self.set_search_method() conv2d_param = { 'stride': self.stride, 'pad': self.pad, 'dilation': self.dilations } input = np.random.random(self.input_size).astype(self.dtype) filter = np.random.random(self.filter_size).astype(self.dtype) output = conv2d_forward_naive(input, filter, self.groups, conv2d_param).astype(self.dtype) self.inputs = { 'Input': OpTest.np_dtype_to_fluid_dtype(input), 'Filter': OpTest.np_dtype_to_fluid_dtype(filter) } if self.add_residual_data: residual_data = np.random.random(output.shape).astype(self.dtype) self.inputs['ResidualData'] = OpTest.np_dtype_to_fluid_dtype( residual_data) output += residual_data if self.add_bias: bias = np.random.random(self.filter_size[0]).astype(self.dtype) self.inputs['Bias'] = OpTest.np_dtype_to_fluid_dtype(bias) output = output + bias.reshape((1, bias.size, 1, 1)) assert self.activation in ['relu', 'identity'] if self.activation == 'relu': output = np.maximum(output, 0) self.attrs = { 'strides': self.stride, 'paddings': self.pad, 'groups': self.groups, 'dilations': self.dilations, 'data_format': self.data_format, 'exhaustive_search': self.exhaustive_search, 'activation': self.activation } self.outputs = {'Output': output}
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 = "conv2d_fusion" self.exhaustive_search = False self.data_format = "NCHW" self.dtype = np.float32 self.activation = 'relu' self.add_residual_data = True self.split_channels = None self.outputs = None self.padding_algorithm = "EXIPLICIT" self.init_group() self.init_dilation() self.init_test_case() self.init_residual() self.init_activation() self.init_paddings() self.set_search_method() conv2d_param = { 'stride': self.stride, 'pad': self.pad, 'dilation': self.dilations } input = np.random.random(self.input_size).astype(self.dtype) filter = np.random.random(self.filter_size).astype(self.dtype) bias = np.random.random(self.filter_size[0]).astype(self.dtype) self.output, _, _, _, _ = conv2d_forward_naive(input, filter, self.groups, conv2d_param, self.padding_algorithm, self.data_format) self.output = self.output.astype(self.dtype) self.inputs = { 'Input': OpTest.np_dtype_to_fluid_dtype(input), 'Filter': OpTest.np_dtype_to_fluid_dtype(filter), 'Bias': OpTest.np_dtype_to_fluid_dtype(bias) } if self.add_residual_data: residual_data = np.random.random(self.output.shape).astype( self.dtype) self.inputs['ResidualData'] = OpTest.np_dtype_to_fluid_dtype( residual_data) self.output += residual_data # Add bias self.output = self.output + bias.reshape((1, bias.size, 1, 1)) assert self.activation in ['relu', 'identity'] if self.activation == 'relu': self.output = np.maximum(self.output, 0) self.attrs = { 'strides': self.stride, 'paddings': self.pad, 'groups': self.groups, 'dilations': self.dilations, 'data_format': self.data_format, 'exhaustive_search': self.exhaustive_search, 'activation': self.activation, 'padding_algorithm': self.padding_algorithm } if self.split_channels is not None: self.attrs['split_channels'] = self.split_channels self.outputs = {'Output': self.output} self.set_outputs()