Example #1
0
def _test_concat_with_three_tensor_backward(test_case, device):
    input1 = flow.Tensor(
        np.random.randn(2, 6, 5, 3),
        dtype=flow.float32,
        device=flow.device(device),
        requires_grad=True,
    )
    input2 = flow.Tensor(
        np.random.randn(2, 6, 5, 3),
        dtype=flow.float32,
        device=flow.device(device),
        requires_grad=True,
    )
    input3 = flow.Tensor(
        np.random.randn(2, 6, 5, 3),
        dtype=flow.float32,
        device=flow.device(device),
        requires_grad=True,
    )

    of_out = flow.cat([input1, input2, input3], dim=1)
    of_out = of_out.sum()
    of_out.backward()
    test_case.assertTrue(
        np.allclose(input1.grad.numpy(), np.ones((2, 6, 5, 3)), 1e-4, 1e-4))
    test_case.assertTrue(
        np.allclose(input2.grad.numpy(), np.ones((2, 6, 5, 3)), 1e-4, 1e-4))
    test_case.assertTrue(
        np.allclose(input3.grad.numpy(), np.ones((2, 6, 5, 3)), 1e-4, 1e-4))
Example #2
0
    def test_concat_with_axis_one(test_case):
        input1 = flow.Tensor(np.random.randn(2, 6, 5, 3), dtype=flow.float32)
        input2 = flow.Tensor(np.random.randn(2, 6, 5, 3), dtype=flow.float32)

        of_out = flow.cat([input1, input2], dim=1)
        np_out = np.concatenate((input1.numpy(), input2.numpy()), axis=1)
        test_case.assertTrue(np.array_equal(of_out.numpy(), np_out))
Example #3
0
def _test_concat_origin(test_case, device):
    input1 = flow.Tensor(np.random.randn(2, 6, 5, 3),
                         dtype=flow.float32,
                         device=flow.device(device))
    input2 = flow.Tensor(np.random.randn(2, 6, 5, 3),
                         dtype=flow.float32,
                         device=flow.device(device))

    of_out = flow.cat([input1, input2], dim=0)
    np_out = np.concatenate((input1.numpy(), input2.numpy()), axis=0)
    test_case.assertTrue(np.array_equal(of_out.numpy(), np_out))