Esempio n. 1
0
 def test_space_to_depth(self):
     program = Program()
     with program_guard(program):
         data = layers.data(name='data',
                            shape=[32, 9, 6, 6],
                            append_batch_size=False,
                            dtype='float32')
         self.assertIsNotNone(layers.space_to_depth(data, 3))
     print(str(program))
Esempio n. 2
0
    def test_batch_norm(self):
        program = Program()
        with program_guard(program):
            data = layers.data(name='data',
                               shape=[32, 128, 128],
                               dtype="float32")
            out = layers.batch_norm(data)

        print(str(program))
Esempio n. 3
0
 def test_pool2d(self):
     program = Program()
     with program_guard(program):
         x = layers.data(name='x', shape=[3, 224, 224], dtype='float32')
         self.assertIsNotNone(
             layers.pool2d(x,
                           pool_size=[5, 3],
                           pool_stride=[1, 2],
                           pool_padding=(2, 1)))
Esempio n. 4
0
    def test_manual_seed(self):
        local_program = Program()
        local_main_prog = default_main_program()
        local_start_prog = default_startup_program()

        self.assertEqual(0, local_program.random_seed)
        self.assertEqual(0, local_main_prog.random_seed)
        self.assertEqual(0, local_start_prog.random_seed)

        manual_seed(102)
        global_program1 = Program()
        global_program2 = Program()
        global_main_prog = default_main_program()
        global_start_prog = default_startup_program()
        self.assertEqual(102, global_program1.random_seed)
        self.assertEqual(102, global_program2.random_seed)
        self.assertEqual(102, global_main_prog.random_seed)
        self.assertEqual(102, global_start_prog.random_seed)
Esempio n. 5
0
    def test_bilinear_tensor_product_layer(self):
        program = Program()
        with program_guard(program):
            data = layers.data(name='data', shape=[4], dtype="float32")

            theta = layers.data(name="theta", shape=[5], dtype="float32")
            out = layers.bilinear_tensor_product(data, theta, 6)

        print(str(program))
Esempio n. 6
0
    def test_gaussian_random_batch_size_like(self):
        program = Program()
        with program_guard(program):
            input = layers.data(name="input", shape=[13, 11], dtype='float32')

            out = layers.gaussian_random_batch_size_like(
                input, shape=[-1, 11], mean=1.0, std=2.0)
            self.assertIsNotNone(out)
        print(str(program))
Esempio n. 7
0
    def test_grad(self):
        place = core.CPUPlace()
        program = Program()
        with program_guard(program):
            x = layers.data(name='x',
                            shape=[1],
                            dtype='float32',
                            stop_gradient=False)
            y = layers.data(name='y',
                            shape=[1],
                            dtype='bool',
                            stop_gradient=False)

            level = 0

            out_true, out_false = split_lod_tensor(input=x,
                                                   mask=y,
                                                   level=level)
            out = merge_lod_tensor(in_true=out_true,
                                   in_false=out_false,
                                   mask=y,
                                   x=x,
                                   level=level)
            mean = layers.mean(out)

            append_backward(mean)

        tensor = core.LoDTensor()
        tensor.set(np.arange(10).reshape(10, 1).astype('float32'), place)
        tensor.set_recursive_sequence_lengths([[3, 6, 1]])

        mask_np = np.array([0, 1, 0]).astype('bool')
        mask_np = np.expand_dims(mask_np, axis=1)

        mask = core.LoDTensor()
        mask.set(mask_np, place)

        exe = Executor(place)
        scope = core.Scope()

        g_vars = program.global_block().var(x.name + "@GRAD")
        g_out = [
            item.sum() for item in map(
                np.array,
                exe.run(program,
                        feed={
                            'x': tensor,
                            'y': mask
                        },
                        fetch_list=[g_vars],
                        scope=scope,
                        return_numpy=False))
        ]

        g_out_sum = np.array(g_out).sum()

        self.assertAlmostEqual(1.0, g_out_sum, delta=0.1)
Esempio n. 8
0
 def test_roi_perspective_transform(self):
     program = Program()
     with program_guard(program):
         x = layers.data(name="x", shape=[256, 30, 30], dtype="float32")
         rois = layers.data(
             name="rois", shape=[8], dtype="float32", lod_level=1)
         output = layers.roi_perspective_transform(x, rois, 7, 7, 0.6)
         self.assertIsNotNone(output)
     print(str(program))
Esempio n. 9
0
 def test_roi_align(self):
     program = Program()
     with program_guard(program):
         x = layers.data(name="x", shape=[256, 30, 30], dtype="float32")
         rois = layers.data(
             name="rois", shape=[4], dtype="float32", lod_level=1)
         output = layers.roi_align(x, rois, 14, 14, 0.5, 2)
         self.assertIsNotNone(output)
     print(str(program))
Esempio n. 10
0
 def test_label_smooth(self):
     program = Program()
     with program_guard(program):
         label = layers.data(name="label", shape=[1], dtype="float32")
         one_hot_label = layers.one_hot(input=label, depth=10)
         smooth_label = layers.label_smooth(
             label=one_hot_label, epsilon=0.1, dtype="float32")
         self.assertIsNotNone(smooth_label)
     print(str(program))
Esempio n. 11
0
 def static_graph(self):
     paddle.enable_static()
     scope = fluid.core.Scope()
     program = Program()
     with fluid.scope_guard(scope):
         with fluid.program_guard(program):
             paddle.seed(self.seed)
             paddle.framework.random._manual_program_seed(self.seed)
             yield
Esempio n. 12
0
    def test_fluid_api(self):
        paddle.enable_static()

        dtypes = ['float16', 'float32']
        for dtype in dtypes:
            prog = Program()
            startup_prog = Program()
            with program_guard(prog, startup_prog):
                data = np.random.random([1, 9, 9, 4]).astype(dtype)
                x = fluid.data(shape=[1, 9, -1, 4], dtype=dtype, name='x')
                triu_out = fluid.layers.triu(x)

                place = fluid.CUDAPlace(0) if fluid.core.is_compiled_with_cuda(
                ) else fluid.CPUPlace()
                exe = fluid.Executor(place)
                triu_out = exe.run(fluid.default_main_program(),
                                   feed={"x": data},
                                   fetch_list=[triu_out])
Esempio n. 13
0
 def test_multiplex(self):
     program = Program()
     with program_guard(program):
         x1 = layers.data(name='x1', shape=[4], dtype='float32')
         x2 = layers.data(name='x2', shape=[4], dtype='float32')
         index = layers.data(name='index', shape=[1], dtype='int32')
         out = layers.multiplex(inputs=[x1, x2], index=index)
         self.assertIsNotNone(out)
     print(str(program))
Esempio n. 14
0
 def test_resize_nearest(self):
     program = Program()
     with program_guard(program):
         x = layers.data(name='x', shape=[3, 9, 6], dtype="float32")
         output = layers.resize_nearest(x, out_shape=[12, 12])
         self.assertIsNotNone(output)
         output = layers.resize_nearest(x, scale=3)
         self.assertIsNotNone(output)
     print(str(program))
Esempio n. 15
0
 def test_sigmoid_cross_entropy(self):
     program = Program()
     with program_guard(program):
         dat = layers.data(name='data', shape=[10], dtype='float32')
         lbl = layers.data(name='label', shape=[10], dtype='float32')
         self.assertIsNotNone(
             layers.sigmoid_cross_entropy_with_logits(
                 x=dat, label=lbl))
     print(str(program))
Esempio n. 16
0
 def test_shape(self):
     program = Program()
     with program_guard(program):
         input = layers.data(name="input",
                             shape=[3, 100, 100],
                             dtype="float32")
         out = layers.shape(input)
         self.assertIsNotNone(out)
     print(str(program))
Esempio n. 17
0
 def test_flatten(self):
     program = Program()
     with program_guard(program):
         x = layers.data(name='x',
                         append_batch_size=False,
                         shape=[4, 4, 3],
                         dtype="float32")
         out = layers.flatten(x, axis=1, name="flatten")
         self.assertIsNotNone(out)
Esempio n. 18
0
 def test_sequence_enumerate(self):
     program = Program()
     with program_guard(program):
         x = layers.data(name="input",
                         shape=[1],
                         dtype='int32',
                         lod_level=1)
         out = layers.sequence_enumerate(input=x, win_size=2, pad_value=0)
     print(str(program))
 def test_yolo_box(self):
     program = Program()
     with program_guard(program):
         x = layers.data(name='x', shape=[30, 7, 7], dtype='float32')
         img_size = layers.data(name='img_size', shape=[2], dtype='int32')
         boxes, scores = layers.yolo_box(x, img_size, [10, 13, 30, 13], 10,
                                         0.01, 32)
         self.assertIsNotNone(boxes)
         self.assertIsNotNone(scores)
Esempio n. 20
0
 def test_hsigmoid(self):
     program = Program()
     with program_guard(program):
         x = layers.data(name='x', shape=[2], dtype='float32')
         y = layers.data(name='y', shape=[2], dtype='int64')
         self.assertIsNotNone(
             layers.hsigmoid(
                 input=x, label=y, num_classes=2))
     print(str(program))
Esempio n. 21
0
    def test_while_loop_backward2(self):
        def cond(i, x):
            return i < 3

        def body(i, x):
            x = x * i
            i = i + 1
            return [i, x]

        main_program = Program()
        startup_program = Program()
        with fluid.program_guard(main_program, startup_program):
            i = fluid.data(name='i', shape=[1], dtype='float32')
            i.stop_gradient = False
            x = fluid.data(name='x', shape=[1], dtype='float32')
            x.stop_gradient = False

            out = layers.while_loop(cond, body, [i, x])
            mean = layers.mean(out[1])
            append_backward(mean)

        place = fluid.CUDAPlace(
            0) if core.is_compiled_with_cuda() else fluid.CPUPlace()
        exe = fluid.Executor(place)

        feed_i = np.ones(1).astype('float32')
        feed_x = np.ones(1).astype('float32')
        data = np.asarray([2]).astype('float32')
        i_grad = np.asarray([3]).astype('float32')
        x_grad = np.asarray([2]).astype('float32')

        res = exe.run(main_program,
                      feed={
                          'i': feed_i,
                          'x': feed_x
                      },
                      fetch_list=[mean.name, i.grad_name, x.grad_name])
        self.assertTrue(np.allclose(np.asarray(res[0]), data))
        self.assertTrue(np.allclose(np.asarray(res[1]), i_grad),
                        msg=" \nres = \n{} \n\n ans = \n{}".format(
                            res[1], i_grad))
        self.assertTrue(np.allclose(np.asarray(res[2]), x_grad),
                        msg=" \nres = \n{} \n\n ans = \n{}".format(
                            res[2], x_grad))
Esempio n. 22
0
    def test_return_var_tuple(self):
        def fn_1():
            return layers.fill_constant(shape=[1, 2], dtype='int32',
                                        value=1), layers.fill_constant(
                                            shape=[2, 3],
                                            dtype='float32',
                                            value=2)

        def fn_2():
            return layers.fill_constant(shape=[3, 4], dtype='int32',
                                        value=3), layers.fill_constant(
                                            shape=[4, 5],
                                            dtype='float32',
                                            value=4)

        def fn_3():
            return layers.fill_constant(shape=[5], dtype='int32',
                                        value=5), layers.fill_constant(
                                            shape=[5, 6],
                                            dtype='float32',
                                            value=6)

        main_program = Program()
        startup_program = Program()
        with program_guard(main_program, startup_program):
            x = layers.fill_constant(shape=[1], dtype='float32', value=1)
            y = layers.fill_constant(shape=[1], dtype='float32', value=1)
            z = layers.fill_constant(shape=[1], dtype='float32', value=3)

            pred_1 = layers.equal(x, y)  # true
            pred_2 = layers.equal(x, z)  # false

            out = layers.case(((pred_1, fn_1), (pred_2, fn_2)), fn_3)

            place = fluid.CUDAPlace(
                0) if core.is_compiled_with_cuda() else fluid.CPUPlace()
            exe = fluid.Executor(place)
            ret = exe.run(main_program, fetch_list=out)

            self.assertTrue(
                np.allclose(np.asarray(ret[0]), np.full((1, 2), 1, np.int32)))
            self.assertTrue(
                np.allclose(np.asarray(ret[1]), np.full((2, 3), 2,
                                                        np.float32)))
Esempio n. 23
0
    def test_errors(self):
        with program_guard(Program(), Program()):
            ids = fluid.layers.data(name='ids',
                                    shape=[5, 2, 2],
                                    dtype='int64',
                                    append_batch_size=False)
            parents = fluid.layers.data(name='parents',
                                        shape=[5, 2, 2],
                                        dtype='int64',
                                        append_batch_size=False)

            def test_Variable_ids():
                # the input type must be Variable
                np_ids = np.random.random((5, 2, 2), dtype='int64')
                fluid.layers.gather_tree(np_ids, parents)

            self.assertRaises(TypeError, test_Variable_ids)

            def test_Variable_parents():
                # the input type must be Variable
                np_parents = np.random.random((5, 2, 2), dtype='int64')
                fluid.layers.gather_tree(ids, np_parents)

            self.assertRaises(TypeError, test_Variable_parents)

            def test_type_ids():
                # dtype must be int32 or int64
                bad_ids = fluid.layers.data(name='bad_ids',
                                            shape=[5, 2, 2],
                                            dtype='float32',
                                            append_batch_size=False)
                fluid.layers.gather_tree(bad_ids, parents)

            self.assertRaises(TypeError, test_type_ids)

            def test_type_parents():
                # dtype must be int32 or int64
                bad_parents = fluid.layers.data(name='bad_parents',
                                                shape=[5, 2, 2],
                                                dtype='float32',
                                                append_batch_size=False)
                fluid.layers.gather_tree(ids, bad_parents)

            self.assertRaises(TypeError, test_type_parents)
Esempio n. 24
0
 def test_im2sequence(self):
     print("test_im2sequence")
     program = Program()
     with program_guard(program):
         x = layers.data(name='x', shape=[3, 128, 128], dtype='float32')
         output = layers.im2sequence(input=x,
                                     stride=[1, 1],
                                     filter_size=[2, 2])
         self.assertIsNotNone(output)
     print(str(program))
Esempio n. 25
0
 def test_box_clip(self):
     program = Program()
     with program_guard(program):
         input_box = layers.data(name='input_box',
                                 shape=[7, 4],
                                 dtype='float32',
                                 lod_level=1)
         im_info = layers.data(name='im_info', shape=[3], dtype='float32')
         out = layers.box_clip(input_box, im_info)
         self.assertIsNotNone(out)
Esempio n. 26
0
    def test_input_type_error(self):
        main_program = Program()
        startup_program = Program()
        with program_guard(main_program, startup_program):
            src = layers.data(name='data', shape=[1], dtype='float32')
            const_value = layers.fill_constant(
                [1], dtype='float32', value=123.0)
            ifcond = layers.less_than(x=src, y=const_value)
            with self.assertRaises(TypeError):
                ie = layers.IfElse(set())
            with self.assertRaises(TypeError):
                ie = layers.IfElse(ifcond, set())

            with self.assertRaises(TypeError):
                ie = layers.IfElse(ifcond)
                with ie.true_block():
                    true_target = ie.input(src)
                    true_target = fluid.layers.exp(true_target)
                    ie.output([])
Esempio n. 27
0
    def _run_nce_op_two_pserver(self, place, port0, port1, model_file):
        scope = fluid.core.Scope()
        program = Program()
        with fluid.scope_guard(scope):
            with program_guard(program, startup_program=Program()):
                emaps = ['127.0.0.1:' + str(port0), '127.0.0.1:' + str(port1)]

                # create and run recv and save operator
                remote_recv_op = Operator("recv_save",
                                          trainer_id=0,
                                          shape=[10, 8],
                                          slice_shapes=["5,8", "5,8"],
                                          slice_varnames=["table", "table"],
                                          remote_varnames=['table', 'table'],
                                          is_sparse=False,
                                          endpoints=emaps,
                                          file_path=model_file)

                remote_recv_op.run(scope, place)
Esempio n. 28
0
 def test_sequence_expand(self):
     program = Program()
     with program_guard(program):
         x = layers.data(name='x', shape=[10], dtype='float32')
         y = layers.data(name='y',
                         shape=[10, 20],
                         dtype='float32',
                         lod_level=2)
         self.assertIsNotNone(layers.sequence_expand(x=x, y=y, ref_level=1))
     print(str(program))
Esempio n. 29
0
 def test_lod_reset(self):
     program = Program()
     with program_guard(program):
         x = layers.data(name='x', shape=[10], dtype='float32')
         y = layers.data(name='y',
                         shape=[10, 20],
                         dtype='float32',
                         lod_level=2)
         print(layers.lod_reset(x=x, y=y))
     print(str(program))
Esempio n. 30
0
 def test_sequence_softmax(self):
     program = Program()
     with program_guard(program):
         seq_data = layers.data(name='seq_data',
                                shape=[10, 10],
                                dtype='float32',
                                lod_level=1)
         seq = layers.fc(input=seq_data, size=20)
         self.assertIsNotNone(layers.sequence_softmax(seq))
     print(str(program))