Update pad op unitest

enforce_failed
wanghaoshuang 8 years ago
parent 236a84c505
commit 23381dd16a

@ -1,16 +1,12 @@
import unittest
import numpy as np
from paddle.v2.framework.op import Operator
from gradient_checker import GradientChecker, create_op
from op_test_util import OpTestMeta
from op_test import OpTest
class TestPadOp(unittest.TestCase):
__metaclass__ = OpTestMeta
class TestPadOp(OpTest):
def setUp(self):
self.initTestCase()
self.type = "pad"
self.op_type = "pad"
self.inputs = {'X': np.random.random(self.shape).astype("float32"), }
self.attrs = {}
self.attrs['paddings'] = np.array(self.paddings).flatten()
@ -22,6 +18,12 @@ class TestPadOp(unittest.TestCase):
constant_values=self.pad_value)
}
def test_check_output(self):
self.check_output()
def test_check_grad_normal(self):
self.check_grad(['X'], 'Out')
def initTestCase(self):
self.shape = (16, 16)
self.paddings = [(0, 1), (2, 3)]
@ -49,49 +51,5 @@ class TestCase3(TestPadOp):
self.pad_value = 0.9
class TestPadGradOp(GradientChecker):
def setUp(self):
self.initTestCase()
self.op = Operator(
type="pad",
X="X",
Out="Out",
paddings=np.array(self.paddings).flatten(),
pad_value=self.pad_value)
self.inputs = {'X': np.random.random(self.shape).astype("float32"), }
def initTestCase(self):
self.shape = (16, 16)
self.paddings = [(0, 1), (2, 3)]
self.pad_value = 0
def test_normal(self):
self.check_grad(self.op, self.inputs, set(["X"]), "Out")
def test_cpu_gpu_compare(self):
self.compare_grad(self.op, self.inputs)
class TestiGradCase1(TestPadOp):
def initTestCase(self):
self.shape = (2, 3, 4, 4)
self.paddings = [(0, 1), (2, 3), (2, 1), (1, 1)]
self.pad_value = 0.5
class TestGradCase2(TestPadOp):
def initTestCase(self):
self.shape = (2, 2, 2)
self.paddings = [(0, 0), (0, 0), (1, 2)]
self.pad_value = 1
class TestGradCase3(TestPadOp):
def initTestCase(self):
self.shape = (8)
self.paddings = [(0, 1)]
self.pad_value = 0.9
if __name__ == '__main__':
unittest.main()

Loading…
Cancel
Save