Merge branch 'develop' of https://github.com/PaddlePaddle/Paddle into add_parallel_executor_tests
	
		
	
				
					
				
			
						commit
						e84d3a7fbf
					
				| @ -0,0 +1,33 @@ | ||||
| if(NOT WITH_GPU) | ||||
|     return() | ||||
| endif() | ||||
| 
 | ||||
| set(TENSORRT_ROOT "/usr" CACHE PATH "TENSORRT ROOT") | ||||
| find_path(TENSORRT_INCLUDE_DIR NvInfer.h | ||||
|     PATHS ${TENSORRT_ROOT} ${TENSORRT_ROOT}/include | ||||
|     $ENV{TENSORRT_ROOT} $ENV{TENSORRT_ROOT}/include | ||||
|     NO_DEFAULT_PATH | ||||
| ) | ||||
| 
 | ||||
| find_library(TENSORRT_LIBRARY NAMES libnvinfer.so libnvinfer.a | ||||
|     PATHS ${TENSORRT_ROOT} ${TENSORRT_ROOT}/lib | ||||
|     $ENV{TENSORRT_ROOT} $ENV{TENSORRT_ROOT}/lib | ||||
|     NO_DEFAULT_PATH | ||||
|     DOC "Path to TensorRT library.") | ||||
| 
 | ||||
| if(TENSORRT_INCLUDE_DIR AND TENSORRT_LIBRARY) | ||||
|     set(TENSORRT_FOUND ON) | ||||
| else() | ||||
|     set(TENSORRT_FOUND OFF) | ||||
| endif() | ||||
| 
 | ||||
| if(TENSORRT_FOUND) | ||||
|     file(READ ${TENSORRT_INCLUDE_DIR}/NvInfer.h TENSORRT_VERSION_FILE_CONTENTS) | ||||
|     string(REGEX MATCH "define NV_TENSORRT_MAJOR +([0-9]+)" TENSORRT_MAJOR_VERSION | ||||
|         "${TENSORRT_VERSION_FILE_CONTENTS}") | ||||
|     string(REGEX REPLACE "define NV_TENSORRT_MAJOR +([0-9]+)" "\\1" | ||||
|         TENSORRT_MAJOR_VERSION "${TENSORRT_MAJOR_VERSION}") | ||||
| 
 | ||||
|     message(STATUS "Current TensorRT header is ${TENSORRT_INCLUDE_DIR}/NvInfer.h. " | ||||
|         "Current TensorRT version is v${TENSORRT_MAJOR_VERSION}. ") | ||||
| endif() | ||||
| @ -0,0 +1,99 @@ | ||||
| #   Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. | ||||
| # | ||||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| # you may not use this file except in compliance with the License. | ||||
| # You may obtain a copy of the License at | ||||
| # | ||||
| #     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| # | ||||
| # Unless required by applicable law or agreed to in writing, software | ||||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| # See the License for the specific language governing permissions and | ||||
| # limitations under the License. | ||||
| 
 | ||||
| import unittest | ||||
| import numpy as np | ||||
| import paddle.fluid.core as core | ||||
| from op_test import OpTest | ||||
| from scipy.special import expit | ||||
| from test_activation_op import TestRelu, TestTanh, TestSqrt, TestAbs | ||||
| 
 | ||||
| 
 | ||||
| class TestMKLDNNReluDim2(TestRelu): | ||||
|     def setUp(self): | ||||
|         super(TestMKLDNNReluDim2, self).setUp() | ||||
| 
 | ||||
|         self.attrs = {"use_mkldnn": True} | ||||
| 
 | ||||
| 
 | ||||
| class TestMKLDNNTanhDim2(TestTanh): | ||||
|     def setUp(self): | ||||
|         super(TestMKLDNNTanhDim2, self).setUp() | ||||
| 
 | ||||
|         self.attrs = {"use_mkldnn": True} | ||||
| 
 | ||||
| 
 | ||||
| class TestMKLDNNSqrtDim2(TestSqrt): | ||||
|     def setUp(self): | ||||
|         super(TestMKLDNNSqrtDim2, self).setUp() | ||||
| 
 | ||||
|         self.attrs = {"use_mkldnn": True} | ||||
| 
 | ||||
| 
 | ||||
| class TestMKLDNNAbsDim2(TestAbs): | ||||
|     def setUp(self): | ||||
|         super(TestMKLDNNAbsDim2, self).setUp() | ||||
|         self.attrs = {"use_mkldnn": True} | ||||
| 
 | ||||
| 
 | ||||
| class TestMKLDNNReluDim4(TestRelu): | ||||
|     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} | ||||
| 
 | ||||
| 
 | ||||
| class TestMKLDNNTanhDim4(TestTanh): | ||||
|     def setUp(self): | ||||
|         super(TestMKLDNNTanhDim4, self).setUp() | ||||
| 
 | ||||
|         self.inputs = { | ||||
|             'X': np.random.uniform(0.1, 1, [2, 4, 3, 5]).astype("float32") | ||||
|         } | ||||
|         self.outputs = {'Out': np.tanh(self.inputs['X'])} | ||||
|         self.attrs = {"use_mkldnn": True} | ||||
| 
 | ||||
| 
 | ||||
| class TestMKLDNNSqrtDim4(TestSqrt): | ||||
|     def setUp(self): | ||||
|         super(TestMKLDNNSqrtDim4, self).setUp() | ||||
| 
 | ||||
|         self.inputs = { | ||||
|             'X': np.random.uniform(0.1, 1, [2, 4, 3, 5]).astype("float32") | ||||
|         } | ||||
|         self.outputs = {'Out': np.sqrt(self.inputs['X'])} | ||||
|         self.attrs = {"use_mkldnn": True} | ||||
| 
 | ||||
| 
 | ||||
| class TestMKLDNNAbsDim4(TestAbs): | ||||
|     def setUp(self): | ||||
|         super(TestMKLDNNAbsDim4, 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 | ||||
|         self.inputs = {'X': x} | ||||
|         self.outputs = {'Out': np.abs(self.inputs['X'])} | ||||
|         self.attrs = {"use_mkldnn": True} | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == '__main__': | ||||
|     unittest.main() | ||||
| @ -0,0 +1,36 @@ | ||||
| # Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. | ||||
| # | ||||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| # you may not use this file except in compliance with the License. | ||||
| # You may obtain a copy of the License at | ||||
| # | ||||
| #     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| # | ||||
| # Unless required by applicable law or agreed to in writing, software | ||||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| # See the License for the specific language governing permissions and | ||||
| # limitations under the License. | ||||
| 
 | ||||
| import unittest | ||||
| 
 | ||||
| from test_conv2d_op import TestConv2dOp, TestWithPad, TestWithStride | ||||
| 
 | ||||
| 
 | ||||
| class TestMKLDNN(TestConv2dOp): | ||||
|     def init_kernel_type(self): | ||||
|         self.use_mkldnn = True | ||||
| 
 | ||||
| 
 | ||||
| class TestMKLDNNWithPad(TestWithPad): | ||||
|     def init_kernel_type(self): | ||||
|         self.use_mkldnn = True | ||||
| 
 | ||||
| 
 | ||||
| class TestMKLDNNWithStride(TestWithStride): | ||||
|     def init_kernel_type(self): | ||||
|         self.use_mkldnn = True | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == '__main__': | ||||
|     unittest.main() | ||||
| @ -0,0 +1,49 @@ | ||||
| #   Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. | ||||
| # | ||||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| # you may not use this file except in compliance with the License. | ||||
| # You may obtain a copy of the License at | ||||
| # | ||||
| #     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| # | ||||
| # Unless required by applicable law or agreed to in writing, software | ||||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| # See the License for the specific language governing permissions and | ||||
| # limitations under the License. | ||||
| 
 | ||||
| import unittest | ||||
| from test_lrn_op import TestLRNOp | ||||
| 
 | ||||
| 
 | ||||
| class TestLRNMKLDNNOp(TestLRNOp): | ||||
|     def get_attrs(self): | ||||
|         attrs = TestLRNOp.get_attrs(self) | ||||
|         attrs['use_mkldnn'] = True | ||||
|         return attrs | ||||
| 
 | ||||
|     def test_check_output(self): | ||||
|         self.check_output(atol=0.002) | ||||
| 
 | ||||
| 
 | ||||
| class TestLRNMKLDNNOpWithIsTest(TestLRNMKLDNNOp): | ||||
|     def get_attrs(self): | ||||
|         attrs = TestLRNMKLDNNOp.get_attrs(self) | ||||
|         attrs['is_test'] = True | ||||
|         return attrs | ||||
| 
 | ||||
|     def test_check_grad_normal(self): | ||||
|         def check_raise_is_test(): | ||||
|             try: | ||||
|                 self.check_grad(['X'], 'Out', max_relative_error=0.01) | ||||
|             except Exception as e: | ||||
|                 t = \ | ||||
|                 "is_test attribute should be set to False in training phase." | ||||
|                 if t in str(e): | ||||
|                     raise AttributeError | ||||
| 
 | ||||
|         self.assertRaises(AttributeError, check_raise_is_test) | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|     unittest.main() | ||||
| @ -0,0 +1,50 @@ | ||||
| #   Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. | ||||
| # | ||||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| # you may not use this file except in compliance with the License. | ||||
| # You may obtain a copy of the License at | ||||
| # | ||||
| #     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| # | ||||
| # Unless required by applicable law or agreed to in writing, software | ||||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| # See the License for the specific language governing permissions and | ||||
| # limitations under the License. | ||||
| 
 | ||||
| import unittest | ||||
| from test_pool2d_op import TestPool2d_Op, TestCase1, TestCase2, TestCase3, TestCase4, TestCase5 | ||||
| 
 | ||||
| 
 | ||||
| class TestMKLDNNCase1(TestPool2d_Op): | ||||
|     def init_kernel_type(self): | ||||
|         self.use_mkldnn = True | ||||
| 
 | ||||
| 
 | ||||
| class TestMKLDNNCase2(TestCase1): | ||||
|     def init_kernel_type(self): | ||||
|         self.use_mkldnn = True | ||||
| 
 | ||||
| 
 | ||||
| class TestMKLDNNCase3(TestCase2): | ||||
|     def init_kernel_type(self): | ||||
|         self.use_mkldnn = True | ||||
| 
 | ||||
| 
 | ||||
| class TestMKLDNNCase4(TestCase3): | ||||
|     def init_kernel_type(self): | ||||
|         self.use_mkldnn = True | ||||
| 
 | ||||
| 
 | ||||
| class TestMKLDNNCase5(TestCase4): | ||||
|     def init_kernel_type(self): | ||||
|         self.use_mkldnn = True | ||||
| 
 | ||||
| 
 | ||||
| class TestMKLDNNCase6(TestCase5): | ||||
|     def init_kernel_type(self): | ||||
|         self.use_mkldnn = True | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == '__main__': | ||||
|     unittest.main() | ||||
					Loading…
					
					
				
		Reference in new issue