Beispiel #1
0
def test_merger(case):
    merge_type, output = case
    input = [1.0, 0.0, 0.5]
    merger = tta.base.Merger(type=merge_type, n=len(input))
    for i in input:
        merger.append(paddle.tensor(i))
    assert paddle.allclose(merger.result, paddle.tensor(output))
Beispiel #2
0
 def test_y_dtype():
     with paddle.static.program_guard(paddle.static.Program(),
                                      paddle.static.Program()):
         x = paddle.fluid.data(name='x',
                               shape=[10, 10],
                               dtype='float64')
         y = paddle.fluid.data(name='y', shape=[10, 10], dtype='int32')
         result = paddle.allclose(x, y)
    def allclose_check(self, use_cuda, dtype='float32'):
        a = fluid.data(name="a", shape=[2], dtype=dtype)
        b = fluid.data(name="b", shape=[2], dtype=dtype)

        result = paddle.allclose(
            a, b, rtol=1e-05, atol=1e-08, equal_nan=False, name="ignore_nan")
        result_nan = paddle.allclose(
            a, b, rtol=1e-05, atol=1e-08, equal_nan=True, name="equal_nan")
        result_corner = paddle.allclose(
            a, b, rtol=0.01, atol=0.0, name="corner_case")

        place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace()
        exe = fluid.Executor(place)
        exe.run(fluid.default_startup_program())

        x = np.array([10000., 1e-07]).astype(dtype)
        y = np.array([10000.1, 1e-08]).astype(dtype)
        result_v, result_nan_v = exe.run(feed={'a': x,
                                               'b': y},
                                         fetch_list=[result, result_nan])
        self.assertEqual(result_v[0], False)
        self.assertEqual(result_nan_v[0], False)

        x = np.array([10000., 1e-08]).astype(dtype)
        y = np.array([10000.1, 1e-09]).astype(dtype)
        result_v, result_nan_v = exe.run(feed={'a': x,
                                               'b': y},
                                         fetch_list=[result, result_nan])
        self.assertEqual(result_v[0], True)
        self.assertEqual(result_nan_v[0], True)

        x = np.array([1.0, float('nan')]).astype(dtype)
        y = np.array([1.0, float('nan')]).astype(dtype)
        result_v, result_nan_v = exe.run(feed={'a': x,
                                               'b': y},
                                         fetch_list=[result, result_nan])
        self.assertEqual(result_v[0], False)
        self.assertEqual(result_nan_v[0], True)

        # for corner case
        x = np.array([10.1, 10.1]).astype(dtype)
        y = np.array([10, 10]).astype(dtype)
        result_c, = exe.run(feed={'a': x, 'b': y}, fetch_list=[result_corner])
        corner_res = (dtype == 'float64')
        self.assertEqual(result_c[0], corner_res)
Beispiel #4
0
        def test_adjust_hue(batch_tensor):
            input1, input2 = paddle.unbind(batch_tensor, axis=0)
            target_result = paddle.stack(
                [F.adjust_hue(input1, -0.2),
                 F.adjust_hue(input2, -0.2)])

            batch_result = F.adjust_hue(batch_tensor, -0.2)

            return paddle.allclose(batch_result, target_result)
Beispiel #5
0
        def test_adjust_contrast(batch_tensor):
            input1, input2 = paddle.unbind(batch_tensor, axis=0)
            target_result = paddle.stack([
                F.adjust_contrast(input1, 0.3),
                F.adjust_contrast(input2, 0.3)
            ])

            batch_result = F.adjust_contrast(batch_tensor, 0.3)

            return paddle.allclose(batch_result, target_result)
Beispiel #6
0
        def test_adjust_brightness(batch_tensor):
            input1, input2 = paddle.unbind(batch_tensor, axis=0)
            target_result = paddle.stack([
                F.adjust_brightness(input1, 2.1),
                F.adjust_brightness(input2, 2.1)
            ])

            batch_result = F.adjust_brightness(batch_tensor, 2.1)

            return paddle.allclose(batch_result, target_result)
Beispiel #7
0
        def test_erase(batch_tensor):
            input1, input2 = paddle.unbind(batch_tensor, axis=0)
            target_result = paddle.stack([
                F.erase(input1, 1, 1, 2, 2, 0.5),
                F.erase(input2, 1, 1, 2, 2, 0.5)
            ])

            batch_result = F.erase(batch_tensor, 1, 1, 2, 2, 0.5)

            return paddle.allclose(batch_result, target_result)
Beispiel #8
0
 def test_api_case(self):
     paddle.disable_static()
     x_data = np.random.rand(10, 10)
     y_data = np.random.rand(10, 10)
     x = paddle.to_tensor(x_data)
     y = paddle.to_tensor(y_data)
     out = paddle.allclose(x, y, rtol=1e-05, atol=1e-08)
     expected_out = np.allclose(x_data, y_data, rtol=1e-05, atol=1e-08)
     self.assertTrue((out.numpy() == expected_out).all(), True)
     paddle.enable_static()
Beispiel #9
0
        def test_adjust_saturation(batch_tensor):
            input1, input2 = paddle.unbind(batch_tensor, axis=0)
            target_result = paddle.stack([
                F.adjust_saturation(input1, 1.1),
                F.adjust_saturation(input2, 1.1)
            ])

            batch_result = F.adjust_saturation(batch_tensor, 1.1)

            return paddle.allclose(batch_result, target_result)
Beispiel #10
0
        def test_perspective(batch_tensor):
            input1, input2 = paddle.unbind(batch_tensor, axis=0)
            startpoints = [[0, 0], [3, 0], [4, 5], [6, 7]]
            endpoints = [[0, 1], [3, 1], [4, 4], [5, 7]]
            target_result = paddle.stack([
                F.perspective(input1, startpoints, endpoints),
                F.perspective(input2, startpoints, endpoints)
            ])

            batch_result = F.perspective(batch_tensor, startpoints, endpoints)

            return paddle.allclose(batch_result, target_result)
Beispiel #11
0
 def check_results(self, ref, res):
     type_error = 'Result is different than expected in shape or type'
     value_error = 'Result is different than expected values'
     if ref is None:
         self.assertTrue(res is None, type_error)
     elif isinstance(ref, paddle.Tensor):
         self.assertTrue(isinstance(res, paddle.Tensor), type_error)
         self.assertTrue(paddle.allclose(res, ref), value_error)
     else:
         self.assertTrue(len(res) == len(ref), type_error)
         for i in range(len(ref)):
             self.check_results(ref[i], res[i])
     return True
Beispiel #12
0
def test_compose_1():
    transform = tta.Compose([
        tta.HorizontalFlip(),
        tta.VerticalFlip(),
        tta.Rotate90(angles=[0, 90, 180, 270]),
        tta.Scale(scales=[1, 2, 4], interpolation="nearest"),
    ])

    assert len(
        transform) == 2 * 2 * 4 * 3  # all combinations for aug parameters

    dummy_label = paddle.ones(2).reshape(2, 1).float()
    dummy_image = paddle.arange(2 * 3 * 4 * 5).reshape(2, 3, 4, 5).float()
    dummy_model = lambda x: {"label": dummy_label, "mask": x}

    for augmenter in transform:
        augmented_image = augmenter.augment_image(dummy_image)
        model_output = dummy_model(augmented_image)
        deaugmented_mask = augmenter.deaugment_mask(model_output["mask"])
        deaugmented_label = augmenter.deaugment_label(model_output["label"])
        assert paddle.allclose(deaugmented_mask, dummy_image)
        assert paddle.allclose(deaugmented_label, dummy_label)
Beispiel #13
0
        def test_affine(batch_tensor):
            input1, input2 = paddle.unbind(batch_tensor, axis=0)
            target_result = paddle.stack([
                F.affine(input1,
                         45,
                         translate=[0.2, 0.2],
                         scale=0.5,
                         shear=[-10, 10]),
                F.affine(input2,
                         45,
                         translate=[0.2, 0.2],
                         scale=0.5,
                         shear=[-10, 10])
            ])
            batch_result = F.affine(batch_tensor,
                                    45,
                                    translate=[0.2, 0.2],
                                    scale=0.5,
                                    shear=[-10, 10])

            return paddle.allclose(batch_result, target_result)
Beispiel #14
0
def test_rotate90_keypoints(transform):
    keypoints = paddle.tensor([[0.1, 0.1], [0.1, 0.9], [0.9, 0.1], [0.9, 0.9], [0.4, 0.3]])
    for p in transform.params:
        aug = transform.apply_deaug_keypoints(keypoints.detach().clone(), **{transform.pname: p})
        deaug = transform.apply_deaug_keypoints(aug, **{transform.pname: -p})
        assert paddle.allclose(keypoints, deaug)
    def test_tensor_patch_method(self):
        paddle.disable_static()
        x_np = np.random.uniform(-1, 1, [2, 3]).astype(self.dtype)
        y_np = np.random.uniform(-1, 1, [2, 3]).astype(self.dtype)
        z_np = np.random.uniform(-1, 1, [6, 9]).astype(self.dtype)

        x = paddle.to_tensor(x_np)
        y = paddle.to_tensor(y_np)
        z = paddle.to_tensor(z_np)

        a = paddle.to_tensor([[1, 1], [2, 2], [3, 3]])
        b = paddle.to_tensor([[1, 1], [2, 2], [3, 3]])

        # 1. Unary operation for Tensor
        self.assertEqual(x.dim(), 2)
        self.assertEqual(x.ndimension(), 2)
        self.assertEqual(x.ndim, 2)
        self.assertEqual(x.size, 6)
        self.assertEqual(x.numel(), 6)
        self.assertTrue(np.array_equal(x.exp().numpy(), paddle.exp(x).numpy()))
        self.assertTrue(
            np.array_equal(x.tanh().numpy(),
                           paddle.tanh(x).numpy()))
        self.assertTrue(
            np.array_equal(x.atan().numpy(),
                           paddle.atan(x).numpy()))
        self.assertTrue(np.array_equal(x.abs().numpy(), paddle.abs(x).numpy()))
        m = x.abs()
        self.assertTrue(
            np.array_equal(m.sqrt().numpy(),
                           paddle.sqrt(m).numpy()))
        self.assertTrue(
            np.array_equal(m.rsqrt().numpy(),
                           paddle.rsqrt(m).numpy()))
        self.assertTrue(
            np.array_equal(x.ceil().numpy(),
                           paddle.ceil(x).numpy()))
        self.assertTrue(
            np.array_equal(x.floor().numpy(),
                           paddle.floor(x).numpy()))
        self.assertTrue(np.array_equal(x.cos().numpy(), paddle.cos(x).numpy()))
        self.assertTrue(
            np.array_equal(x.acos().numpy(),
                           paddle.acos(x).numpy()))
        self.assertTrue(
            np.array_equal(x.asin().numpy(),
                           paddle.asin(x).numpy()))
        self.assertTrue(np.array_equal(x.sin().numpy(), paddle.sin(x).numpy()))
        self.assertTrue(
            np.array_equal(x.sinh().numpy(),
                           paddle.sinh(x).numpy()))
        self.assertTrue(
            np.array_equal(x.cosh().numpy(),
                           paddle.cosh(x).numpy()))
        self.assertTrue(
            np.array_equal(x.round().numpy(),
                           paddle.round(x).numpy()))
        self.assertTrue(
            np.array_equal(x.reciprocal().numpy(),
                           paddle.reciprocal(x).numpy()))
        self.assertTrue(
            np.array_equal(x.square().numpy(),
                           paddle.square(x).numpy()))
        self.assertTrue(
            np.array_equal(x.rank().numpy(),
                           paddle.rank(x).numpy()))
        self.assertTrue(
            np.array_equal(x[0].t().numpy(),
                           paddle.t(x[0]).numpy()))
        self.assertTrue(
            np.array_equal(x.asinh().numpy(),
                           paddle.asinh(x).numpy()))
        ### acosh(x) = nan, need to change input
        t_np = np.random.uniform(1, 2, [2, 3]).astype(self.dtype)
        t = paddle.to_tensor(t_np)
        self.assertTrue(
            np.array_equal(t.acosh().numpy(),
                           paddle.acosh(t).numpy()))
        self.assertTrue(
            np.array_equal(x.atanh().numpy(),
                           paddle.atanh(x).numpy()))
        d = paddle.to_tensor([[1.2285208, 1.3491015, 1.4899898],
                              [1.30058, 1.0688717, 1.4928783],
                              [1.0958099, 1.3724753, 1.8926544]])
        d = d.matmul(d.t())
        # ROCM not support cholesky
        if not fluid.core.is_compiled_with_rocm():
            self.assertTrue(
                np.array_equal(d.cholesky().numpy(),
                               paddle.cholesky(d).numpy()))

        self.assertTrue(
            np.array_equal(x.is_empty().numpy(),
                           paddle.is_empty(x).numpy()))
        self.assertTrue(
            np.array_equal(x.isfinite().numpy(),
                           paddle.isfinite(x).numpy()))
        self.assertTrue(
            np.array_equal(
                x.cast('int32').numpy(),
                paddle.cast(x, 'int32').numpy()))
        self.assertTrue(
            np.array_equal(
                x.expand([3, 2, 3]).numpy(),
                paddle.expand(x, [3, 2, 3]).numpy()))
        self.assertTrue(
            np.array_equal(
                x.tile([2, 2]).numpy(),
                paddle.tile(x, [2, 2]).numpy()))
        self.assertTrue(
            np.array_equal(x.flatten().numpy(),
                           paddle.flatten(x).numpy()))
        index = paddle.to_tensor([0, 1])
        self.assertTrue(
            np.array_equal(
                x.gather(index).numpy(),
                paddle.gather(x, index).numpy()))
        index = paddle.to_tensor([[0, 1], [1, 2]])
        self.assertTrue(
            np.array_equal(
                x.gather_nd(index).numpy(),
                paddle.gather_nd(x, index).numpy()))
        self.assertTrue(
            np.array_equal(
                x.reverse([0, 1]).numpy(),
                paddle.reverse(x, [0, 1]).numpy()))
        self.assertTrue(
            np.array_equal(
                a.reshape([3, 2]).numpy(),
                paddle.reshape(a, [3, 2]).numpy()))
        self.assertTrue(
            np.array_equal(
                x.slice([0, 1], [0, 0], [1, 2]).numpy(),
                paddle.slice(x, [0, 1], [0, 0], [1, 2]).numpy()))
        self.assertTrue(
            np.array_equal(
                x.split(2)[0].numpy(),
                paddle.split(x, 2)[0].numpy()))
        m = paddle.to_tensor(
            np.random.uniform(-1, 1, [1, 6, 1, 1]).astype(self.dtype))
        self.assertTrue(
            np.array_equal(
                m.squeeze([]).numpy(),
                paddle.squeeze(m, []).numpy()))
        self.assertTrue(
            np.array_equal(
                m.squeeze([1, 2]).numpy(),
                paddle.squeeze(m, [1, 2]).numpy()))
        m = paddle.to_tensor([2, 3, 3, 1, 5, 3], 'float32')
        self.assertTrue(
            np.array_equal(m.unique()[0].numpy(),
                           paddle.unique(m)[0].numpy()))
        self.assertTrue(
            np.array_equal(
                m.unique(return_counts=True)[1],
                paddle.unique(m, return_counts=True)[1]))
        self.assertTrue(np.array_equal(x.flip([0]), paddle.flip(x, [0])))
        self.assertTrue(np.array_equal(x.unbind(0), paddle.unbind(x, 0)))
        self.assertTrue(np.array_equal(x.roll(1), paddle.roll(x, 1)))
        self.assertTrue(np.array_equal(x.cumsum(1), paddle.cumsum(x, 1)))
        m = paddle.to_tensor(1)
        self.assertTrue(np.array_equal(m.increment(), paddle.increment(m)))
        m = x.abs()
        self.assertTrue(np.array_equal(m.log(), paddle.log(m)))
        self.assertTrue(np.array_equal(x.pow(2), paddle.pow(x, 2)))
        self.assertTrue(np.array_equal(x.reciprocal(), paddle.reciprocal(x)))

        # 2. Binary operation
        self.assertTrue(
            np.array_equal(x.divide(y).numpy(),
                           paddle.divide(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.matmul(y, True, False).numpy(),
                paddle.matmul(x, y, True, False).numpy()))
        self.assertTrue(
            np.array_equal(
                x.norm(p='fro', axis=[0, 1]).numpy(),
                paddle.norm(x, p='fro', axis=[0, 1]).numpy()))
        self.assertTrue(
            np.array_equal(x.dist(y).numpy(),
                           paddle.dist(x, y).numpy()))
        self.assertTrue(
            np.array_equal(x.cross(y).numpy(),
                           paddle.cross(x, y).numpy()))
        m = x.expand([2, 2, 3])
        n = y.expand([2, 2, 3]).transpose([0, 2, 1])
        self.assertTrue(
            np.array_equal(m.bmm(n).numpy(),
                           paddle.bmm(m, n).numpy()))
        self.assertTrue(
            np.array_equal(
                x.histogram(5, -1, 1).numpy(),
                paddle.histogram(x, 5, -1, 1).numpy()))
        self.assertTrue(
            np.array_equal(x.equal(y).numpy(),
                           paddle.equal(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.greater_equal(y).numpy(),
                paddle.greater_equal(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.greater_than(y).numpy(),
                paddle.greater_than(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.less_equal(y).numpy(),
                paddle.less_equal(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.less_than(y).numpy(),
                paddle.less_than(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.not_equal(y).numpy(),
                paddle.not_equal(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.equal_all(y).numpy(),
                paddle.equal_all(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.allclose(y).numpy(),
                paddle.allclose(x, y).numpy()))
        m = x.expand([2, 2, 3])
        self.assertTrue(
            np.array_equal(
                x.expand_as(m).numpy(),
                paddle.expand_as(x, m).numpy()))
        index = paddle.to_tensor([2, 1, 0])
        self.assertTrue(
            np.array_equal(
                a.scatter(index, b).numpy(),
                paddle.scatter(a, index, b).numpy()))

        # 3. Bool tensor operation
        x = paddle.to_tensor([[True, False], [True, False]])
        y = paddle.to_tensor([[False, False], [False, True]])
        self.assertTrue(
            np.array_equal(
                x.logical_and(y).numpy(),
                paddle.logical_and(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.logical_not(y).numpy(),
                paddle.logical_not(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.logical_or(y).numpy(),
                paddle.logical_or(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.logical_xor(y).numpy(),
                paddle.logical_xor(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.logical_and(y).numpy(),
                paddle.logical_and(x, y).numpy()))
        a = paddle.to_tensor([[1, 2], [3, 4]])
        b = paddle.to_tensor([[4, 3], [2, 1]])
        self.assertTrue(
            np.array_equal(
                x.where(a, b).numpy(),
                paddle.where(x, a, b).numpy()))

        x_np = np.random.randn(3, 6, 9, 7)
        x = paddle.to_tensor(x_np)
        x_T = x.T
        self.assertTrue(x_T.shape, [7, 9, 6, 3])
        self.assertTrue(np.array_equal(x_T.numpy(), x_np.T))

        self.assertTrue(inspect.ismethod(a.dot))
        self.assertTrue(inspect.ismethod(a.logsumexp))
        self.assertTrue(inspect.ismethod(a.multiplex))
        self.assertTrue(inspect.ismethod(a.prod))
        self.assertTrue(inspect.ismethod(a.scale))
        self.assertTrue(inspect.ismethod(a.stanh))
        self.assertTrue(inspect.ismethod(a.add_n))
        self.assertTrue(inspect.ismethod(a.max))
        self.assertTrue(inspect.ismethod(a.maximum))
        self.assertTrue(inspect.ismethod(a.min))
        self.assertTrue(inspect.ismethod(a.minimum))
        self.assertTrue(inspect.ismethod(a.floor_divide))
        self.assertTrue(inspect.ismethod(a.remainder))
        self.assertTrue(inspect.ismethod(a.floor_mod))
        self.assertTrue(inspect.ismethod(a.multiply))
        self.assertTrue(inspect.ismethod(a.logsumexp))
        self.assertTrue(inspect.ismethod(a.inverse))
        self.assertTrue(inspect.ismethod(a.log1p))
        self.assertTrue(inspect.ismethod(a.erf))
        self.assertTrue(inspect.ismethod(a.addmm))
        self.assertTrue(inspect.ismethod(a.clip))
        self.assertTrue(inspect.ismethod(a.trace))
        self.assertTrue(inspect.ismethod(a.kron))
        self.assertTrue(inspect.ismethod(a.isinf))
        self.assertTrue(inspect.ismethod(a.isnan))
        self.assertTrue(inspect.ismethod(a.concat))
        self.assertTrue(inspect.ismethod(a.broadcast_to))
        self.assertTrue(inspect.ismethod(a.scatter_nd_add))
        self.assertTrue(inspect.ismethod(a.scatter_nd))
        self.assertTrue(inspect.ismethod(a.shard_index))
        self.assertTrue(inspect.ismethod(a.chunk))
        self.assertTrue(inspect.ismethod(a.stack))
        self.assertTrue(inspect.ismethod(a.strided_slice))
        self.assertTrue(inspect.ismethod(a.unsqueeze))
        self.assertTrue(inspect.ismethod(a.unstack))
        self.assertTrue(inspect.ismethod(a.argmax))
        self.assertTrue(inspect.ismethod(a.argmin))
        self.assertTrue(inspect.ismethod(a.argsort))
        self.assertTrue(inspect.ismethod(a.masked_select))
        self.assertTrue(inspect.ismethod(a.topk))
        self.assertTrue(inspect.ismethod(a.index_select))
        self.assertTrue(inspect.ismethod(a.nonzero))
        self.assertTrue(inspect.ismethod(a.sort))
        self.assertTrue(inspect.ismethod(a.index_sample))
        self.assertTrue(inspect.ismethod(a.mean))
        self.assertTrue(inspect.ismethod(a.std))
        self.assertTrue(inspect.ismethod(a.numel))
Beispiel #16
0
    def test_tensor_patch_method(self):
        paddle.disable_static()
        x_np = np.random.uniform(-1, 1, [2, 3]).astype(self.dtype)
        y_np = np.random.uniform(-1, 1, [2, 3]).astype(self.dtype)
        z_np = np.random.uniform(-1, 1, [6, 9]).astype(self.dtype)

        x = paddle.to_tensor(x_np)
        y = paddle.to_tensor(y_np)
        z = paddle.to_tensor(z_np)

        a = paddle.to_tensor([[1, 1], [2, 2], [3, 3]])
        b = paddle.to_tensor([[1, 1], [2, 2], [3, 3]])

        # 1. Unary operation for Tensor
        self.assertEqual(x.dim(), 2)
        self.assertEqual(x.ndimension(), 2)
        self.assertEqual(x.ndim, 2)
        self.assertEqual(x.size(), [2, 3])
        self.assertTrue(
            np.array_equal(x.sigmoid().numpy(),
                           fluid.layers.sigmoid(x).numpy()))
        self.assertTrue(
            np.array_equal(x.logsigmoid().numpy(),
                           fluid.layers.logsigmoid(x).numpy()))
        self.assertTrue(np.array_equal(x.exp().numpy(), paddle.exp(x).numpy()))
        self.assertTrue(
            np.array_equal(x.tanh().numpy(),
                           paddle.tanh(x).numpy()))
        self.assertTrue(
            np.array_equal(x.atan().numpy(),
                           paddle.atan(x).numpy()))
        self.assertTrue(
            np.array_equal(x.tanh_shrink().numpy(),
                           fluid.layers.tanh_shrink(x).numpy()))
        self.assertTrue(np.array_equal(x.abs().numpy(), paddle.abs(x).numpy()))
        m = x.abs()
        self.assertTrue(
            np.array_equal(m.sqrt().numpy(),
                           paddle.sqrt(m).numpy()))
        self.assertTrue(
            np.array_equal(m.rsqrt().numpy(),
                           paddle.rsqrt(m).numpy()))
        self.assertTrue(
            np.array_equal(x.ceil().numpy(),
                           paddle.ceil(x).numpy()))
        self.assertTrue(
            np.array_equal(x.floor().numpy(),
                           paddle.floor(x).numpy()))
        self.assertTrue(np.array_equal(x.cos().numpy(), paddle.cos(x).numpy()))
        self.assertTrue(
            np.array_equal(x.acos().numpy(),
                           paddle.acos(x).numpy()))
        self.assertTrue(
            np.array_equal(x.asin().numpy(),
                           paddle.asin(x).numpy()))
        self.assertTrue(np.array_equal(x.sin().numpy(), paddle.sin(x).numpy()))
        self.assertTrue(
            np.array_equal(x.sinh().numpy(),
                           paddle.sinh(x).numpy()))
        self.assertTrue(
            np.array_equal(x.cosh().numpy(),
                           paddle.cosh(x).numpy()))
        self.assertTrue(
            np.array_equal(x.round().numpy(),
                           paddle.round(x).numpy()))
        self.assertTrue(
            np.array_equal(x.reciprocal().numpy(),
                           paddle.reciprocal(x).numpy()))
        self.assertTrue(
            np.array_equal(x.square().numpy(),
                           paddle.square(x).numpy()))
        self.assertTrue(
            np.array_equal(x.softplus().numpy(),
                           fluid.layers.softplus(x).numpy()))
        self.assertTrue(
            np.array_equal(x.softsign().numpy(),
                           fluid.layers.softsign(x).numpy()))
        self.assertTrue(
            np.array_equal(x.rank().numpy(),
                           paddle.rank(x).numpy()))
        self.assertTrue(
            np.array_equal(x[0].t().numpy(),
                           paddle.t(x[0]).numpy()))
        m = paddle.to_tensor(np.random.uniform(1, 2, [3, 3]), 'float32')
        m = m.matmul(m.t())
        self.assertTrue(
            np.array_equal(m.cholesky().numpy(),
                           paddle.cholesky(m).numpy()))

        self.assertTrue(
            np.array_equal(x.is_empty().numpy(),
                           paddle.is_empty(x).numpy()))
        self.assertTrue(
            np.array_equal(x.isfinite().numpy(),
                           paddle.isfinite(x).numpy()))
        self.assertTrue(
            np.array_equal(
                x.cast('int32').numpy(),
                paddle.cast(x, 'int32').numpy()))
        self.assertTrue(
            np.array_equal(
                x.expand([3, 2, 3]).numpy(),
                paddle.expand(x, [3, 2, 3]).numpy()))
        self.assertTrue(
            np.array_equal(
                x.tile([2, 2]).numpy(),
                paddle.tile(x, [2, 2]).numpy()))
        self.assertTrue(
            np.array_equal(x.flatten().numpy(),
                           paddle.flatten(x).numpy()))
        index = paddle.to_tensor([0, 1])
        self.assertTrue(
            np.array_equal(
                x.gather(index).numpy(),
                paddle.gather(x, index).numpy()))
        index = paddle.to_tensor([[0, 1], [1, 2]])
        self.assertTrue(
            np.array_equal(
                x.gather_nd(index).numpy(),
                paddle.gather_nd(x, index).numpy()))
        self.assertTrue(
            np.array_equal(
                x.reverse([0, 1]).numpy(),
                paddle.reverse(x, [0, 1]).numpy()))
        self.assertTrue(
            np.array_equal(
                a.reshape([3, 2]).numpy(),
                paddle.reshape(a, [3, 2]).numpy()))
        self.assertTrue(
            np.array_equal(
                x.slice([0, 1], [0, 0], [1, 2]).numpy(),
                paddle.slice(x, [0, 1], [0, 0], [1, 2]).numpy()))
        self.assertTrue(
            np.array_equal(
                x.split(2)[0].numpy(),
                paddle.split(x, 2)[0].numpy()))
        m = paddle.to_tensor(
            np.random.uniform(-1, 1, [1, 6, 1, 1]).astype(self.dtype))
        self.assertTrue(
            np.array_equal(
                m.squeeze([]).numpy(),
                paddle.squeeze(m, []).numpy()))
        self.assertTrue(
            np.array_equal(
                m.squeeze([1, 2]).numpy(),
                paddle.squeeze(m, [1, 2]).numpy()))
        m = paddle.to_tensor([2, 3, 3, 1, 5, 3], 'float32')
        self.assertTrue(
            np.array_equal(m.unique()[0].numpy(),
                           paddle.unique(m)[0].numpy()))
        self.assertTrue(
            np.array_equal(m.unique_with_counts()[2],
                           paddle.unique_with_counts(m)[2]))
        self.assertTrue(np.array_equal(x.flip([0]), paddle.flip(x, [0])))
        self.assertTrue(np.array_equal(x.unbind(0), paddle.unbind(x, 0)))
        self.assertTrue(np.array_equal(x.roll(1), paddle.roll(x, 1)))
        self.assertTrue(np.array_equal(x.cumsum(1), paddle.cumsum(x, 1)))
        m = paddle.to_tensor(1)
        self.assertTrue(np.array_equal(m.increment(), paddle.increment(m)))
        m = x.abs()
        self.assertTrue(np.array_equal(m.log(), paddle.log(m)))
        self.assertTrue(np.array_equal(x.pow(2), paddle.pow(x, 2)))
        self.assertTrue(np.array_equal(x.reciprocal(), paddle.reciprocal(x)))

        # 2. Binary operation
        self.assertTrue(
            np.array_equal(
                x.matmul(y, True, False).numpy(),
                paddle.matmul(x, y, True, False).numpy()))
        self.assertTrue(
            np.array_equal(
                x.norm(p='fro', axis=[0, 1]).numpy(),
                paddle.norm(x, p='fro', axis=[0, 1]).numpy()))
        self.assertTrue(
            np.array_equal(x.dist(y).numpy(),
                           paddle.dist(x, y).numpy()))
        self.assertTrue(
            np.array_equal(x.cross(y).numpy(),
                           paddle.cross(x, y).numpy()))
        m = x.expand([2, 2, 3])
        n = y.expand([2, 2, 3]).transpose([0, 2, 1])
        self.assertTrue(
            np.array_equal(m.bmm(n).numpy(),
                           paddle.bmm(m, n).numpy()))
        self.assertTrue(
            np.array_equal(
                x.histogram(5, -1, 1).numpy(),
                paddle.histogram(x, 5, -1, 1).numpy()))
        self.assertTrue(
            np.array_equal(x.equal(y).numpy(),
                           paddle.equal(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.greater_equal(y).numpy(),
                paddle.greater_equal(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.greater_than(y).numpy(),
                paddle.greater_than(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.less_equal(y).numpy(),
                paddle.less_equal(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.less_than(y).numpy(),
                paddle.less_than(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.not_equal(y).numpy(),
                paddle.not_equal(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.equal_all(y).numpy(),
                paddle.equal_all(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.allclose(y).numpy(),
                paddle.allclose(x, y).numpy()))
        m = x.expand([2, 2, 3])
        self.assertTrue(
            np.array_equal(
                x.expand_as(m).numpy(),
                paddle.expand_as(x, m).numpy()))
        index = paddle.to_tensor([2, 1, 0])
        self.assertTrue(
            np.array_equal(
                a.scatter(index, b).numpy(),
                paddle.scatter(a, index, b).numpy()))

        # 3. Bool tensor operation
        x = paddle.to_tensor([[True, False], [True, False]])
        y = paddle.to_tensor([[False, False], [False, True]])
        self.assertTrue(
            np.array_equal(x.reduce_all().numpy(),
                           paddle.reduce_all(x).numpy()))
        self.assertTrue(
            np.array_equal(x.reduce_any().numpy(),
                           paddle.reduce_any(x).numpy()))
        self.assertTrue(
            np.array_equal(
                x.logical_and(y).numpy(),
                paddle.logical_and(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.logical_not(y).numpy(),
                paddle.logical_not(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.logical_or(y).numpy(),
                paddle.logical_or(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.logical_xor(y).numpy(),
                paddle.logical_xor(x, y).numpy()))
        self.assertTrue(
            np.array_equal(
                x.logical_and(y).numpy(),
                paddle.logical_and(x, y).numpy()))
Beispiel #17
0
def test_add_transform():
    transform = tta.Add(values=[-1, 0, 1])
    a = paddle.arange(20).reshape(1, 1, 4, 5).float()
    for p in transform.params:
        aug = transform.apply_aug_image(a, **{transform.pname: p})
        assert paddle.allclose(aug, a + p)
Beispiel #18
0
def allclose(input, other, rtol=1e-05, atol=1e-08, equal_nan=False):
    if input.shape != other.shape:
        other = paddle.expand_as(other, input)

    return convertTensor(paddle.allclose(input, other, rtol, atol, equal_nan))
Beispiel #19
0
    def func_dygraph_mode(self):
        x_1 = np.array([10000., 1e-07]).astype("float32")
        y_1 = np.array([10000.1, 1e-08]).astype("float32")
        x_2 = np.array([10000., 1e-08]).astype("float32")
        y_2 = np.array([10000.1, 1e-09]).astype("float32")
        x_3 = np.array([1.0, float('nan')]).astype("float32")
        y_3 = np.array([1.0, float('nan')]).astype("float32")
        x_4 = np.array([10.1]).astype("float32")
        y_4 = np.array([10]).astype("float32")
        x_5 = np.array([10.1]).astype("float64")
        y_5 = np.array([10]).astype("float64")

        with fluid.dygraph.guard():
            x_v_1 = paddle.to_tensor(x_1)
            y_v_1 = paddle.to_tensor(y_1)
            ret_1 = paddle.allclose(x_v_1,
                                    y_v_1,
                                    rtol=1e-05,
                                    atol=1e-08,
                                    equal_nan=False,
                                    name='test_1')
            self.assertEqual(ret_1.numpy()[0], False)
            ret_1 = paddle.allclose(x_v_1,
                                    y_v_1,
                                    rtol=1e-05,
                                    atol=1e-08,
                                    equal_nan=True,
                                    name='test_2')
            self.assertEqual(ret_1.numpy()[0], False)
            x_v_2 = paddle.to_tensor(x_2)
            y_v_2 = paddle.to_tensor(y_2)
            ret_2 = paddle.allclose(x_v_2,
                                    y_v_2,
                                    rtol=1e-05,
                                    atol=1e-08,
                                    equal_nan=False,
                                    name='test_3')
            self.assertEqual(ret_2.numpy()[0], True)
            ret_2 = paddle.allclose(x_v_2,
                                    y_v_2,
                                    rtol=1e-05,
                                    atol=1e-08,
                                    equal_nan=True,
                                    name='test_4')
            self.assertEqual(ret_2.numpy()[0], True)
            x_v_3 = paddle.to_tensor(x_3)
            y_v_3 = paddle.to_tensor(y_3)
            ret_3 = paddle.allclose(x_v_3,
                                    y_v_3,
                                    rtol=1e-05,
                                    atol=1e-08,
                                    equal_nan=False,
                                    name='test_5')
            self.assertEqual(ret_3.numpy()[0], False)
            ret_3 = paddle.allclose(x_v_3,
                                    y_v_3,
                                    rtol=1e-05,
                                    atol=1e-08,
                                    equal_nan=True,
                                    name='test_6')
            self.assertEqual(ret_3.numpy()[0], True)
            # for corner case
            x_v_4 = paddle.to_tensor(x_4)
            y_v_4 = paddle.to_tensor(y_4)
            ret_4 = paddle.allclose(x_v_4,
                                    y_v_4,
                                    rtol=0.01,
                                    atol=0.0,
                                    name='test_7')
            self.assertEqual(ret_4.numpy()[0], False)
            x_v_5 = paddle.to_tensor(x_5)
            y_v_5 = paddle.to_tensor(y_5)
            ret_5 = paddle.allclose(x_v_5,
                                    y_v_5,
                                    rtol=0.015,
                                    atol=0.0,
                                    name='test_8')
            self.assertEqual(ret_5.numpy()[0], True)
Beispiel #20
0
def test_multiply_transform():
    transform = tta.Multiply(factors=[-1, 0, 1])
    a = paddle.arange(20).reshape(1, 1, 4, 5).float()
    for p in transform.params:
        aug = transform.apply_aug_image(a, **{transform.pname: p})
        assert paddle.allclose(aug, a * p)
Beispiel #21
0
 def test_atol():
     result = paddle.allclose(x, y, rtol=True)
Beispiel #22
0
 def test_equal_nan():
     result = paddle.allclose(x, y, equal_nan=1)
Beispiel #23
0
    def test_dygraph_mode(self):
        x_1 = np.array([10000., 1e-07]).astype("float32")
        y_1 = np.array([10000.1, 1e-08]).astype("float32")
        x_2 = np.array([10000., 1e-08]).astype("float32")
        y_2 = np.array([10000.1, 1e-09]).astype("float32")
        x_3 = np.array([1.0, float('nan')]).astype("float32")
        y_3 = np.array([1.0, float('nan')]).astype("float32")

        with fluid.dygraph.guard():
            x_v_1 = fluid.dygraph.to_variable(x_1)
            y_v_1 = fluid.dygraph.to_variable(y_1)
            ret_1 = paddle.allclose(
                x_v_1,
                y_v_1,
                rtol=1e-05,
                atol=1e-08,
                equal_nan=False,
                name='test_1')
            self.assertEqual(ret_1.numpy()[0], False)
            ret_1 = paddle.allclose(
                x_v_1,
                y_v_1,
                rtol=1e-05,
                atol=1e-08,
                equal_nan=True,
                name='test_2')
            self.assertEqual(ret_1.numpy()[0], False)
            x_v_2 = fluid.dygraph.to_variable(x_2)
            y_v_2 = fluid.dygraph.to_variable(y_2)
            ret_2 = paddle.allclose(
                x_v_2,
                y_v_2,
                rtol=1e-05,
                atol=1e-08,
                equal_nan=False,
                name='test_3')
            self.assertEqual(ret_2.numpy()[0], True)
            ret_2 = paddle.allclose(
                x_v_2,
                y_v_2,
                rtol=1e-05,
                atol=1e-08,
                equal_nan=True,
                name='test_4')
            self.assertEqual(ret_2.numpy()[0], True)
            x_v_3 = fluid.dygraph.to_variable(x_3)
            y_v_3 = fluid.dygraph.to_variable(y_3)
            ret_3 = paddle.allclose(
                x_v_3,
                y_v_3,
                rtol=1e-05,
                atol=1e-08,
                equal_nan=False,
                name='test_5')
            self.assertEqual(ret_3.numpy()[0], False)
            ret_3 = paddle.allclose(
                x_v_3,
                y_v_3,
                rtol=1e-05,
                atol=1e-08,
                equal_nan=True,
                name='test_6')
            self.assertEqual(ret_3.numpy()[0], True)
Beispiel #24
0
def test_label_is_same(transform):
    a = paddle.arange(20).reshape(1, 1, 4, 5).float()
    for p in transform.params:
        aug = transform.apply_aug_image(a, **{transform.pname: p})
        deaug = transform.apply_deaug_label(aug, **{transform.pname: p})
        assert paddle.allclose(aug, deaug)