未验证 提交 41d27818 编写于 作者: J Jacek Czaja 提交者: GitHub

reshape onednn test reimplemented (#48850)

* - UT reshape onednn

- Fix

test

test2

- test4

- test5

- test6

test7

- test8

- Ut reinvented

- cosmetic

* - fix

* - fix

* - fix

* - fix

* - Fix

* - fix

* - fix

* - fix

* - Fix

* lint
上级 197ef1af
# 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");
# you may not use this file except in compliance with the License.
......@@ -19,54 +19,30 @@ import numpy as np
import paddle
import paddle.fluid.core as core
from paddle.fluid.tests.unittests.op_test import (
OpTest,
OpTestTool,
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(),
"CUDA has to be skipped because it forces dygraph",
)
class TestReshape2OneDNNOp(OpTest):
class TestReshape2OneDNNOp(TestReshapeOp):
def setUp(self):
self.init_data()
self.set_op_type()
self.x = np.random.random(self.ori_shape).astype("float32")
self.set_inputs()
super().setUp()
self.x = self.inputs["X"]
self.attrs['use_mkldnn'] = True
self.set_additional_inputs()
self.set_attrs()
self.set_outputs()
def set_op_type(self):
self.op_type = "reshape2"
def set_inputs(self):
self.inputs = {"X": self.x}
def init_dtype(self):
self.dtype = np.float32
def set_additional_inputs(self):
pass
def set_attrs(self):
self.attrs = {"shape": self.new_shape, 'use_mkldnn': True}
def set_outputs(self):
self.outputs = {
"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")
pass
class TestReshape2OneDNNOpDimInfer1(TestReshape2OneDNNOp):
......@@ -80,14 +56,14 @@ class TestReshape2OneDNNOpDimInfer2(TestReshape2OneDNNOp):
def init_data(self):
self.ori_shape = (6, 20)
self.new_shape = (0, -1, 20)
self.actual_shape = (2, 3, 20)
self.infered_shape = (2, 3, 20)
def set_additional_inputs(self):
self.inputs["Shape"] = np.array(self.actual_shape, dtype="int32")
self.inputs["Shape"] = np.array(self.infered_shape, dtype="int32")
def set_outputs(self):
self.outputs = {
"Out": self.inputs["X"].reshape(self.actual_shape),
"Out": self.inputs["X"].reshape(self.infered_shape),
'XShape': np.random.random(self.ori_shape).astype("float32"),
}
......@@ -96,9 +72,6 @@ class TestReshape2OneDNNOp_attr_OnlyShape(TestReshape2OneDNNOp):
def set_additional_inputs(self):
self.inputs["Shape"] = np.array(self.new_shape, dtype="int32")
def set_attrs(self):
self.attrs = {'use_mkldnn': True}
def set_outputs(self):
self.outputs = {
"Out": self.inputs["X"].reshape(self.infered_shape),
......@@ -153,7 +126,8 @@ class TestReshape2OneDNNOpDimInfer1_attr_ShapeTensorAndShape(
class TestReshapeOneDNNOp(TestReshape2OneDNNOp):
def set_op_type(self):
def setUp(self):
super().setUp()
self.op_type = "reshape"
def set_outputs(self):
......@@ -171,7 +145,8 @@ class TestReshapeOneDNNOpDimInfer1(TestReshapeOneDNNOp):
class TestReshapeOneDNNOp_attr_OnlyShape(TestReshape2OneDNNOp_attr_OnlyShape):
def set_op_type(self):
def setUp(self):
super().setUp()
self.op_type = "reshape"
def set_outputs(self):
......@@ -195,9 +170,11 @@ class TestReshapeOneDNNOpDimInfer1_attr_OnlyShape(
def create_reshape_bf16_test_classes(parent):
@OpTestTool.skip_if_not_cpu_bf16()
class TestReshape2BF16OneDNNOp(parent):
def set_inputs(self):
def setUp(self):
super().setUp()
self.dtype = np.uint16
self.inputs = {"X": convert_float_to_uint16(self.x)}
self.attrs['use_mkldnn'] = True
def calculate_grads(self):
self.dout = self.outputs['Out']
......@@ -223,9 +200,9 @@ def create_reshape_bf16_test_classes(parent):
globals()[cls_name] = TestReshape2BF16OneDNNOp
class TestReshapeBF16OneDNNOp(TestReshape2BF16OneDNNOp):
def set_op_type(self):
def setUp(self):
super().setUp()
self.dtype = np.uint16
self.op_type = "reshape"
def set_outputs(self):
self.outputs = {"Out": self.x.reshape(self.new_shape)}
......@@ -252,5 +229,4 @@ create_reshape_bf16_test_classes(TestReshape2OneDNNOp)
create_reshape_bf16_test_classes(TestReshape2OneDNNOpDimInfer1)
if __name__ == "__main__":
paddle.enable_static()
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");
# you may not use this file except in compliance with the License.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册