提交 2f6c3315 编写于 作者: J Jacek Czaja

- UT reshape onednn

- Fix

test

test2

- test4

- test5

- test6

test7

- test8

- Ut reinvented

- cosmetic
上级 c2f15f05
# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved. # Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
...@@ -23,51 +23,26 @@ from paddle.fluid.tests.unittests.op_test import ( ...@@ -23,51 +23,26 @@ from paddle.fluid.tests.unittests.op_test import (
OpTestTool, OpTestTool,
convert_float_to_uint16, convert_float_to_uint16,
) )
from paddle.fluid.tests.unittests.test_reshape_op import TestReshapeOp
paddle.enable_static()
@OpTestTool.skip_if(
core.is_compiled_with_cuda(), class TestReshapeOneDNNOp(TestReshapeOp):
"CUDA has to be skipped because it forces dygraph",
)
class TestReshape2OneDNNOp(OpTest):
def setUp(self): def setUp(self):
self.init_data() super().setUp()
self.set_op_type() self.attrs['use_mkldnn'] = True
self.x = np.random.random(self.ori_shape).astype("float32")
self.set_inputs()
self.set_additional_inputs() self.set_additional_inputs()
self.set_attrs()
self.set_outputs() self.set_outputs()
def set_op_type(self): def init_dtype(self):
self.op_type = "reshape2" self.dtype = np.float32
def set_inputs(self):
self.inputs = {"X": self.x}
def set_additional_inputs(self): def set_additional_inputs(self):
pass pass
def set_attrs(self):
self.attrs = {"shape": self.new_shape, 'use_mkldnn': True}
def set_outputs(self): def set_outputs(self):
self.outputs = { pass
"Out": self.inputs["X"].reshape(self.infered_shape),
'XShape': np.random.random(self.ori_shape).astype("float32"),
}
def init_data(self):
self.ori_shape = (2, 60)
self.new_shape = (12, 10)
self.infered_shape = (12, 10)
def test_check_output(self):
self.check_output(no_check_set=['XShape'])
def test_check_grad(self):
self.check_grad(["X"], "Out")
class TestReshape2OneDNNOpDimInfer1(TestReshape2OneDNNOp): class TestReshape2OneDNNOpDimInfer1(TestReshape2OneDNNOp):
def init_data(self): def init_data(self):
...@@ -96,8 +71,6 @@ class TestReshape2OneDNNOp_attr_OnlyShape(TestReshape2OneDNNOp): ...@@ -96,8 +71,6 @@ class TestReshape2OneDNNOp_attr_OnlyShape(TestReshape2OneDNNOp):
def set_additional_inputs(self): def set_additional_inputs(self):
self.inputs["Shape"] = np.array(self.new_shape, dtype="int32") self.inputs["Shape"] = np.array(self.new_shape, dtype="int32")
def set_attrs(self):
self.attrs = {'use_mkldnn': True}
def set_outputs(self): def set_outputs(self):
self.outputs = { self.outputs = {
...@@ -153,7 +126,8 @@ class TestReshape2OneDNNOpDimInfer1_attr_ShapeTensorAndShape( ...@@ -153,7 +126,8 @@ class TestReshape2OneDNNOpDimInfer1_attr_ShapeTensorAndShape(
class TestReshapeOneDNNOp(TestReshape2OneDNNOp): class TestReshapeOneDNNOp(TestReshape2OneDNNOp):
def set_op_type(self): def setUp(self):
super().setUp()
self.op_type = "reshape" self.op_type = "reshape"
def set_outputs(self): def set_outputs(self):
...@@ -171,7 +145,8 @@ class TestReshapeOneDNNOpDimInfer1(TestReshapeOneDNNOp): ...@@ -171,7 +145,8 @@ class TestReshapeOneDNNOpDimInfer1(TestReshapeOneDNNOp):
class TestReshapeOneDNNOp_attr_OnlyShape(TestReshape2OneDNNOp_attr_OnlyShape): class TestReshapeOneDNNOp_attr_OnlyShape(TestReshape2OneDNNOp_attr_OnlyShape):
def set_op_type(self): def setUp(self):
super().setUp()
self.op_type = "reshape" self.op_type = "reshape"
def set_outputs(self): def set_outputs(self):
...@@ -195,7 +170,8 @@ class TestReshapeOneDNNOpDimInfer1_attr_OnlyShape( ...@@ -195,7 +170,8 @@ class TestReshapeOneDNNOpDimInfer1_attr_OnlyShape(
def create_reshape_bf16_test_classes(parent): def create_reshape_bf16_test_classes(parent):
@OpTestTool.skip_if_not_cpu_bf16() @OpTestTool.skip_if_not_cpu_bf16()
class TestReshape2BF16OneDNNOp(parent): class TestReshape2BF16OneDNNOp(parent):
def set_inputs(self): def setUp(self):
super().setUp()
self.dtype = np.uint16 self.dtype = np.uint16
self.inputs = {"X": convert_float_to_uint16(self.x)} self.inputs = {"X": convert_float_to_uint16(self.x)}
...@@ -223,7 +199,8 @@ def create_reshape_bf16_test_classes(parent): ...@@ -223,7 +199,8 @@ def create_reshape_bf16_test_classes(parent):
globals()[cls_name] = TestReshape2BF16OneDNNOp globals()[cls_name] = TestReshape2BF16OneDNNOp
class TestReshapeBF16OneDNNOp(TestReshape2BF16OneDNNOp): class TestReshapeBF16OneDNNOp(TestReshape2BF16OneDNNOp):
def set_op_type(self): def setUp(self):
super().setUp()
self.dtype = np.uint16 self.dtype = np.uint16
self.op_type = "reshape" self.op_type = "reshape"
...@@ -252,5 +229,4 @@ create_reshape_bf16_test_classes(TestReshape2OneDNNOp) ...@@ -252,5 +229,4 @@ create_reshape_bf16_test_classes(TestReshape2OneDNNOp)
create_reshape_bf16_test_classes(TestReshape2OneDNNOpDimInfer1) create_reshape_bf16_test_classes(TestReshape2OneDNNOpDimInfer1)
if __name__ == "__main__": if __name__ == "__main__":
paddle.enable_static()
unittest.main() unittest.main()
# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. # Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
...@@ -13,10 +13,9 @@ ...@@ -13,10 +13,9 @@
# limitations under the License. # limitations under the License.
import unittest import unittest
import numpy as np import numpy as np
from op_test import OpTest, convert_float_to_uint16
from op_test import OpTest, convert_float_to_uint16
import paddle import paddle
import paddle.fluid as fluid import paddle.fluid as fluid
from paddle.static import Program, program_guard from paddle.static import Program, program_guard
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册