Merge pull request #9985 from mozga-intel/mozga-intel/mkldnn_separate_tests
The mkldnn tests are skipped when the MKLDNN flag is OFFwangkuiyi-patch-2
commit
fee5b24cb4
@ -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