Skip to content

Commit 0aceeee

Browse files
authored
Feature/remove g program (#5930)
* Unify fluid submodules to fluid module Change books just use `import fluid`, not submodules * Remove g_main_program/g_startup_program Use default_main_program/default_startup_program instead * Typo * Fix CI
1 parent 0a8a86e commit 0aceeee

15 files changed

+64
-58
lines changed

python/paddle/v2/fluid/evaluator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ class Evaluator(object):
2626
name(str): The name of evaluator. such as, "accuracy". Used for generate
2727
temporary variable name.
2828
main_program(Program, optional): The evaluator should be added to this
29-
main_program. Default g_main_program
29+
main_program. Default default_main_program()
3030
startup_program(Program, optional):The parameter should be added to this
31-
startup_program. Default g_startup_program
31+
startup_program. Default default_startup_program()
3232
3333
Attributes:
3434
states(list): The list of state variables. states will be reset to zero

python/paddle/v2/fluid/executor.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import numpy as np
22
from . import core
3-
from framework import Program, g_main_program
3+
from framework import Program, default_main_program
44

55
__all__ = ['Executor', 'g_scope']
66

@@ -103,7 +103,7 @@ def run(self,
103103
fetch_list = []
104104

105105
if program is None:
106-
program = g_main_program
106+
program = default_main_program()
107107

108108
if not isinstance(program, Program):
109109
raise TypeError()

python/paddle/v2/fluid/framework.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
__all__ = [
88
'Block', 'Variable', 'Program', 'Operator', 'default_startup_program',
9-
'default_main_program', 'g_startup_program', 'g_main_program'
9+
'default_main_program'
1010
]
1111

1212

@@ -654,13 +654,13 @@ def __init__(self, block, shape, dtype, **kwargs):
654654

655655

656656
# program is a global instance.
657-
g_main_program = Program()
658-
g_startup_program = Program()
657+
_main_program_ = Program()
658+
_startup_program_ = Program()
659659

660660

661661
def default_startup_program():
662-
return g_startup_program
662+
return _startup_program_
663663

664664

665665
def default_main_program():
666-
return g_main_program
666+
return _main_program_

python/paddle/v2/fluid/io.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import os
22
import cPickle as pickle
33

4-
from paddle.v2.fluid.framework import Program, Parameter, g_main_program, \
5-
Variable
4+
from paddle.v2.fluid.framework import Program, Parameter, default_main_program, Variable
65

76
__all__ = [
87
'save_vars', 'save_params', 'save_persistables', 'load_vars', 'load_params',
@@ -46,7 +45,7 @@ def save_vars(executor, dirname, main_program=None, vars=None, predicate=None):
4645
"""
4746
if vars is None:
4847
if main_program is None:
49-
main_program = g_main_program
48+
main_program = default_main_program()
5049
if not isinstance(main_program, Program):
5150
raise TypeError("program should be as Program type or None")
5251

@@ -98,7 +97,7 @@ def load_vars(executor, dirname, main_program=None, vars=None, predicate=None):
9897
:param executor: executor that save variable
9998
:param dirname: directory path
10099
:param main_program: program. If vars is None, then filter all variables in this
101-
program which fit `predicate`. Default g_program.
100+
program which fit `predicate`. Default default_main_program().
102101
:param predicate: The Predicate describes a callable that returns a variable
103102
as a bool. If it returns true, the variables will be loaded.
104103
:param vars: variables need to be loaded. If specify vars, program &
@@ -107,7 +106,7 @@ def load_vars(executor, dirname, main_program=None, vars=None, predicate=None):
107106
"""
108107
if vars is None:
109108
if main_program is None:
110-
main_program = g_main_program
109+
main_program = default_main_program()
111110
if not isinstance(main_program, Program):
112111
raise TypeError("program's type should be Program")
113112

@@ -154,7 +153,7 @@ def load_persistables(executor, dirname, main_program=None):
154153

155154
def get_inference_program(target_vars, main_program=None):
156155
if main_program is None:
157-
main_program = g_main_program
156+
main_program = default_main_program()
158157
if not isinstance(target_vars, list):
159158
target_vars = [target_vars]
160159

@@ -177,12 +176,12 @@ def save_inference_model(dirname,
177176
:param target_vars: Variables from which we can get inference results.
178177
:param executor: executor that save inference model
179178
:param main_program: original program, which will be pruned to build the inference model.
180-
Default g_main_program.
179+
Default default_main_program().
181180
182181
:return: None
183182
"""
184183
if main_program is None:
185-
main_program = g_main_program
184+
main_program = default_main_program()
186185
if not isinstance(target_vars, list):
187186
target_vars = [target_vars]
188187

@@ -272,10 +271,10 @@ def get_parameter_value_by_name(name, executor, program=None):
272271
:param executor: executor for retrieving the value
273272
:param name: the name of the parameter
274273
:param program: the program where the variable is found
275-
Default g_main_program.
274+
Default default_main_program().
276275
:return: the LoDTensor for the variable
277276
"""
278277
if program is None:
279-
program = g_main_program
278+
program = default_main_program()
280279
var = program.global_block().var(name)
281280
return get_parameter_value(var, executor)

python/paddle/v2/fluid/layer_helper.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import copy
22
import itertools
33

4-
from framework import Variable, g_main_program, \
5-
g_startup_program, unique_name, dtype_is_floating
4+
from framework import Variable, default_main_program, default_startup_program, unique_name, dtype_is_floating
65
from paddle.v2.fluid.initializer import Constant, Xavier
76

87

@@ -22,15 +21,15 @@ def name(self):
2221
def main_program(self):
2322
prog = self.kwargs.get('main_program', None)
2423
if prog is None:
25-
return g_main_program
24+
return default_main_program()
2625
else:
2726
return prog
2827

2928
@property
3029
def startup_program(self):
3130
prog = self.kwargs.get('startup_program', None)
3231
if prog is None:
33-
return g_startup_program
32+
return default_startup_program()
3433
else:
3534
return prog
3635

python/paddle/v2/fluid/layers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from . import core
1+
import core
22
import proto.framework_pb2 as framework_pb2
33
from framework import OpProtoHolder, Variable, Program, Operator
44
from initializer import Constant, Normal, Xavier

python/paddle/v2/fluid/tests/test_array_read_write_op.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import paddle.v2.fluid.layers as layers
44
from paddle.v2.fluid.executor import Executor
55
from paddle.v2.fluid.backward import append_backward_ops
6-
from paddle.v2.fluid.framework import g_main_program
6+
from paddle.v2.fluid.framework import default_main_program
77
import numpy
88

99

@@ -66,7 +66,7 @@ def test_read_write(self):
6666

6767
append_backward_ops(total_sum_scaled)
6868

69-
g_vars = map(g_main_program.global_block().var,
69+
g_vars = map(default_main_program().global_block().var,
7070
[each_x.name + "@GRAD" for each_x in x])
7171
g_out = [
7272
item.sum()

python/paddle/v2/fluid/tests/test_conditional_block.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import unittest
22
import paddle.v2.fluid.layers as layers
33
import paddle.v2.fluid.core as core
4-
from paddle.v2.fluid.framework import g_startup_program, g_main_program
4+
from paddle.v2.fluid.framework import default_startup_program, default_main_program
55
from paddle.v2.fluid.executor import Executor
66
from paddle.v2.fluid.backward import append_backward_ops
77
import numpy
@@ -19,7 +19,7 @@ def test_forward(self):
1919

2020
cpu = core.CPUPlace()
2121
exe = Executor(cpu)
22-
exe.run(g_startup_program)
22+
exe.run(default_startup_program())
2323

2424
x = numpy.random.random(size=(10, 1)).astype('float32')
2525

@@ -29,7 +29,9 @@ def test_forward(self):
2929
append_backward_ops(loss=loss)
3030
outs = exe.run(
3131
feed={'X': x},
32-
fetch_list=[g_main_program.block(0).var(data.name + "@GRAD")])[0]
32+
fetch_list=[
33+
default_main_program().block(0).var(data.name + "@GRAD")
34+
])[0]
3335
print outs
3436

3537

python/paddle/v2/fluid/tests/test_executor_and_mul.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import unittest
2-
from paddle.v2.fluid.layers import mul, data, sequence_pool
2+
3+
import numpy
34
import paddle.v2.fluid.core as core
5+
46
from paddle.v2.fluid.executor import Executor
5-
from paddle.v2.fluid.framework import g_main_program
6-
import numpy
7+
from paddle.v2.fluid.layers import mul, data
78

89

910
class TestExecutor(unittest.TestCase):
@@ -19,10 +20,7 @@ def test_mul(self):
1920
a_np = numpy.random.random((100, 784)).astype('float32')
2021
b_np = numpy.random.random((784, 100)).astype('float32')
2122
exe = Executor(place)
22-
outs = exe.run(g_main_program,
23-
feed={'a': a_np,
24-
'b': b_np},
25-
fetch_list=[out])
23+
outs = exe.run(feed={'a': a_np, 'b': b_np}, fetch_list=[out])
2624
out = outs[0]
2725
self.assertEqual((100, 100), out.shape)
2826
self.assertTrue(numpy.allclose(out, numpy.dot(a_np, b_np)))

python/paddle/v2/fluid/tests/test_lod_rank_table.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from paddle.v2.fluid.layers import lod_rank_table, data
22
from paddle.v2.fluid.executor import Executor
3-
from paddle.v2.fluid.framework import g_main_program
43
import paddle.v2.fluid.core as core
54
import numpy
65
import unittest
@@ -18,7 +17,7 @@ def test_lod_rank_table(self):
1817
tensor = core.LoDTensor()
1918
tensor.set(numpy.random.random(size=(17, 100)), cpu)
2019
tensor.set_lod([[0, 1, 3], [0, 5, 6, 7], [0, 3, 4, 9, 10, 13, 16, 17]])
21-
exe.run(g_main_program, scope=scope, feed={'x': tensor})
20+
exe.run(scope=scope, feed={'x': tensor})
2221
var = scope.find_var(rank_table.name)
2322
table = var.get_lod_rank_table()
2423
self.assertEqual([(0, 5), (1, 1), (2, 1)], table.items())

0 commit comments

Comments
 (0)