|  |  |  | @ -22,6 +22,7 @@ from op_test import OpTest | 
			
		
	
		
			
				
					|  |  |  |  | class TestConcatOp(OpTest): | 
			
		
	
		
			
				
					|  |  |  |  |     def setUp(self): | 
			
		
	
		
			
				
					|  |  |  |  |         self.op_type = "concat" | 
			
		
	
		
			
				
					|  |  |  |  |         self.dtype = self.get_dtype() | 
			
		
	
		
			
				
					|  |  |  |  |         self.init_test_data() | 
			
		
	
		
			
				
					|  |  |  |  |         self.inputs = {'X': [('x0', self.x0), ('x1', self.x1), ('x2', self.x2)]} | 
			
		
	
		
			
				
					|  |  |  |  |         self.attrs = {'axis': self.axis} | 
			
		
	
	
		
			
				
					|  |  |  | @ -36,6 +37,9 @@ class TestConcatOp(OpTest): | 
			
		
	
		
			
				
					|  |  |  |  |                 (self.x0, self.x1, self.x2), axis=self.actual_axis) | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     def get_dtype(self): | 
			
		
	
		
			
				
					|  |  |  |  |         return "float32" | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     def test_check_output(self): | 
			
		
	
		
			
				
					|  |  |  |  |         self.check_output() | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -45,25 +49,25 @@ class TestConcatOp(OpTest): | 
			
		
	
		
			
				
					|  |  |  |  |         self.check_grad(['x2'], 'Out') | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     def init_test_data(self): | 
			
		
	
		
			
				
					|  |  |  |  |         self.x0 = np.random.random((2, 1, 4, 5)).astype('float32') | 
			
		
	
		
			
				
					|  |  |  |  |         self.x1 = np.random.random((2, 2, 4, 5)).astype('float32') | 
			
		
	
		
			
				
					|  |  |  |  |         self.x2 = np.random.random((2, 3, 4, 5)).astype('float32') | 
			
		
	
		
			
				
					|  |  |  |  |         self.x0 = np.random.random((2, 1, 4, 5)).astype(self.dtype) | 
			
		
	
		
			
				
					|  |  |  |  |         self.x1 = np.random.random((2, 2, 4, 5)).astype(self.dtype) | 
			
		
	
		
			
				
					|  |  |  |  |         self.x2 = np.random.random((2, 3, 4, 5)).astype(self.dtype) | 
			
		
	
		
			
				
					|  |  |  |  |         self.axis = 1 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | class TestConcatOp2(TestConcatOp): | 
			
		
	
		
			
				
					|  |  |  |  |     def init_test_data(self): | 
			
		
	
		
			
				
					|  |  |  |  |         self.x0 = np.random.random((2, 3, 4, 5)).astype('float32') | 
			
		
	
		
			
				
					|  |  |  |  |         self.x1 = np.random.random((2, 3, 4, 5)).astype('float32') | 
			
		
	
		
			
				
					|  |  |  |  |         self.x2 = np.random.random((2, 3, 4, 5)).astype('float32') | 
			
		
	
		
			
				
					|  |  |  |  |         self.x0 = np.random.random((2, 3, 4, 5)).astype(self.dtype) | 
			
		
	
		
			
				
					|  |  |  |  |         self.x1 = np.random.random((2, 3, 4, 5)).astype(self.dtype) | 
			
		
	
		
			
				
					|  |  |  |  |         self.x2 = np.random.random((2, 3, 4, 5)).astype(self.dtype) | 
			
		
	
		
			
				
					|  |  |  |  |         self.axis = 1 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | class TestConcatOp3(TestConcatOp): | 
			
		
	
		
			
				
					|  |  |  |  |     def init_test_data(self): | 
			
		
	
		
			
				
					|  |  |  |  |         self.x0 = np.random.random((1, 256, 170, 256)).astype('float32') | 
			
		
	
		
			
				
					|  |  |  |  |         self.x1 = np.random.random((1, 128, 170, 256)).astype('float32') | 
			
		
	
		
			
				
					|  |  |  |  |         self.x2 = np.random.random((1, 128, 170, 256)).astype('float32') | 
			
		
	
		
			
				
					|  |  |  |  |         self.x0 = np.random.random((1, 256, 170, 256)).astype(self.dtype) | 
			
		
	
		
			
				
					|  |  |  |  |         self.x1 = np.random.random((1, 128, 170, 256)).astype(self.dtype) | 
			
		
	
		
			
				
					|  |  |  |  |         self.x2 = np.random.random((1, 128, 170, 256)).astype(self.dtype) | 
			
		
	
		
			
				
					|  |  |  |  |         self.axis = 1 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     def test_check_grad(self): | 
			
		
	
	
		
			
				
					|  |  |  | @ -72,9 +76,9 @@ class TestConcatOp3(TestConcatOp): | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | class TestConcatOp4(TestConcatOp): | 
			
		
	
		
			
				
					|  |  |  |  |     def init_test_data(self): | 
			
		
	
		
			
				
					|  |  |  |  |         self.x0 = np.random.random((2, 3, 4, 5)).astype('float32') | 
			
		
	
		
			
				
					|  |  |  |  |         self.x1 = np.random.random((2, 3, 4, 5)).astype('float32') | 
			
		
	
		
			
				
					|  |  |  |  |         self.x2 = np.random.random((0, 3, 4, 5)).astype('float32') | 
			
		
	
		
			
				
					|  |  |  |  |         self.x0 = np.random.random((2, 3, 4, 5)).astype(self.dtype) | 
			
		
	
		
			
				
					|  |  |  |  |         self.x1 = np.random.random((2, 3, 4, 5)).astype(self.dtype) | 
			
		
	
		
			
				
					|  |  |  |  |         self.x2 = np.random.random((0, 3, 4, 5)).astype(self.dtype) | 
			
		
	
		
			
				
					|  |  |  |  |         self.axis = 0 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     def test_check_grad(self): | 
			
		
	
	
		
			
				
					|  |  |  | @ -83,11 +87,30 @@ class TestConcatOp4(TestConcatOp): | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | class TestConcatOp5(TestConcatOp): | 
			
		
	
		
			
				
					|  |  |  |  |     def init_test_data(self): | 
			
		
	
		
			
				
					|  |  |  |  |         self.x0 = np.random.random((2, 1, 4, 5)).astype('float32') | 
			
		
	
		
			
				
					|  |  |  |  |         self.x1 = np.random.random((2, 2, 4, 5)).astype('float32') | 
			
		
	
		
			
				
					|  |  |  |  |         self.x2 = np.random.random((2, 3, 4, 5)).astype('float32') | 
			
		
	
		
			
				
					|  |  |  |  |         self.x0 = np.random.random((2, 1, 4, 5)).astype(self.dtype) | 
			
		
	
		
			
				
					|  |  |  |  |         self.x1 = np.random.random((2, 2, 4, 5)).astype(self.dtype) | 
			
		
	
		
			
				
					|  |  |  |  |         self.x2 = np.random.random((2, 3, 4, 5)).astype(self.dtype) | 
			
		
	
		
			
				
					|  |  |  |  |         self.axis = -3 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | #----------------Concat Fp16---------------- | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | def create_test_fp16(parent): | 
			
		
	
		
			
				
					|  |  |  |  |     class TestConcatFp16(parent): | 
			
		
	
		
			
				
					|  |  |  |  |         def get_dtype(self): | 
			
		
	
		
			
				
					|  |  |  |  |             return np.float16 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     cls_name = "{0}_{1}".format(parent.__name__, "Fp16") | 
			
		
	
		
			
				
					|  |  |  |  |     TestConcatFp16.__name__ = cls_name | 
			
		
	
		
			
				
					|  |  |  |  |     globals()[cls_name] = TestConcatFp16 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | create_test_fp16(TestConcatOp) | 
			
		
	
		
			
				
					|  |  |  |  | create_test_fp16(TestConcatOp2) | 
			
		
	
		
			
				
					|  |  |  |  | create_test_fp16(TestConcatOp3) | 
			
		
	
		
			
				
					|  |  |  |  | create_test_fp16(TestConcatOp4) | 
			
		
	
		
			
				
					|  |  |  |  | create_test_fp16(TestConcatOp5) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | if __name__ == '__main__': | 
			
		
	
		
			
				
					|  |  |  |  |     unittest.main() | 
			
		
	
	
		
			
				
					|  |  |  | 
 |