55import paddle .v2 .fluid .nets as nets
66import paddle .v2 .fluid .optimizer as optimizer
77from paddle .v2 .fluid .executor import Executor
8- from paddle .v2 .fluid .framework import g_startup_program , g_main_program
8+ import paddle .v2 .fluid .framework as framework
99from paddle .v2 .fluid .initializer import XavierInitializer
1010
1111
12- def resnet_cifar10 (input , depth = 32 , main_program = None , startup_program = None ):
12+ def resnet_cifar10 (input , depth = 32 ):
1313 def conv_bn_layer (input ,
1414 ch_out ,
1515 filter_size ,
1616 stride ,
1717 padding ,
18- act = 'relu' ,
19- main_program = None ,
20- startup_program = None ):
18+ act = 'relu' ):
2119 tmp = layers .conv2d (
2220 input = input ,
2321 filter_size = filter_size ,
2422 num_filters = ch_out ,
2523 stride = stride ,
2624 padding = padding ,
2725 act = None ,
28- bias_attr = False ,
29- main_program = main_program ,
30- startup_program = startup_program )
26+ bias_attr = False )
3127 return layers .batch_norm (
3228 input = tmp ,
33- act = act ,
34- main_program = main_program ,
35- startup_program = startup_program )
29+ act = act )
3630
3731 def shortcut (input , ch_in , ch_out , stride , program , init_program ):
3832 if ch_in != ch_out :
@@ -44,40 +38,30 @@ def shortcut(input, ch_in, ch_out, stride, program, init_program):
4438 def basicblock (input ,
4539 ch_in ,
4640 ch_out ,
47- stride ,
48- main_program = main_program ,
49- startup_program = startup_program ):
41+ stride ):
5042 tmp = conv_bn_layer (
5143 input ,
5244 ch_out ,
5345 3 ,
5446 stride ,
55- 1 ,
56- main_program = main_program ,
57- startup_program = startup_program )
47+ 1 )
5848 tmp = conv_bn_layer (
5949 tmp ,
6050 ch_out ,
6151 3 ,
6252 1 ,
6353 1 ,
64- act = None ,
65- main_program = main_program ,
66- startup_program = startup_program )
67- short = shortcut (input , ch_in , ch_out , stride , main_program ,
68- startup_program )
54+ act = None )
55+ short = shortcut (input , ch_in , ch_out , stride )
6956 return layers .elementwise_add (
7057 x = tmp ,
7158 y = short ,
72- act = 'relu' ,
73- main_program = main_program ,
74- startup_program = startup_program )
59+ act = 'relu' )
7560
76- def layer_warp (block_func , input , ch_in , ch_out , count , stride , program ,
77- startup_program ):
78- tmp = block_func (input , ch_in , ch_out , stride , program , startup_program )
61+ def layer_warp (block_func , input , ch_in , ch_out , count , stride ):
62+ tmp = block_func (input , ch_in , ch_out , stride )
7963 for i in range (1 , count ):
80- tmp = block_func (tmp , ch_out , ch_out , 1 , program , startup_program )
64+ tmp = block_func (tmp , ch_out , ch_out , 1 )
8165 return tmp
8266
8367 assert (depth - 2 ) % 6 == 0
@@ -87,53 +71,41 @@ def layer_warp(block_func, input, ch_in, ch_out, count, stride, program,
8771 ch_out = 16 ,
8872 filter_size = 3 ,
8973 stride = 1 ,
90- padding = 1 ,
91- main_program = main_program ,
92- startup_program = startup_program )
74+ padding = 1 )
9375 res1 = layer_warp (
9476 basicblock ,
9577 conv1 ,
9678 16 ,
9779 16 ,
9880 n ,
99- 1 ,
100- main_program = main_program ,
101- startup_program = startup_program )
81+ 1 )
10282 res2 = layer_warp (
10383 basicblock ,
10484 res1 ,
10585 16 ,
10686 32 ,
10787 n ,
108- 2 ,
109- main_program = main_program ,
110- startup_program = startup_program )
88+ 2 )
11189 res3 = layer_warp (
11290 basicblock ,
11391 res2 ,
11492 32 ,
11593 64 ,
11694 n ,
117- 2 ,
118- main_program = main_program ,
119- startup_program = startup_program )
95+ 2 )
12096 pool = layers .pool2d (
12197 input = res3 ,
12298 pool_size = 8 ,
12399 pool_type = 'avg' ,
124- pool_stride = 1 ,
125- main_program = main_program ,
126- startup_program = startup_program )
100+ pool_stride = 1 )
127101 return pool
128102
129103
130- def vgg16_bn_drop (input , main_program = None , startup_program = None ):
104+ def vgg16_bn_drop (input ):
131105 def conv_block (input ,
132106 num_filter ,
133107 groups ,
134- dropouts ,
135- main_program = None ,
136- startup_program = None ):
108+ dropouts ):
137109 return nets .img_conv_group (
138110 input = input ,
139111 pool_size = 2 ,
@@ -143,51 +115,34 @@ def conv_block(input,
143115 conv_act = 'relu' ,
144116 conv_with_batchnorm = True ,
145117 conv_batchnorm_drop_rate = dropouts ,
146- pool_type = 'max' ,
147- main_program = main_program ,
148- startup_program = startup_program )
118+ pool_type = 'max' )
149119
150- conv1 = conv_block (input , 64 , 2 , [0.3 , 0 ], main_program , startup_program )
151- conv2 = conv_block (conv1 , 128 , 2 , [0.4 , 0 ], main_program , startup_program )
152- conv3 = conv_block (conv2 , 256 , 3 , [0.4 , 0.4 , 0 ], main_program ,
153- startup_program )
154- conv4 = conv_block (conv3 , 512 , 3 , [0.4 , 0.4 , 0 ], main_program ,
155- startup_program )
156- conv5 = conv_block (conv4 , 512 , 3 , [0.4 , 0.4 , 0 ], main_program ,
157- startup_program )
120+ conv1 = conv_block (input , 64 , 2 , [0.3 , 0 ])
121+ conv2 = conv_block (conv1 , 128 , 2 , [0.4 , 0 ])
122+ conv3 = conv_block (conv2 , 256 , 3 , [0.4 , 0.4 , 0 ])
123+ conv4 = conv_block (conv3 , 512 , 3 , [0.4 , 0.4 , 0 ])
124+ conv5 = conv_block (conv4 , 512 , 3 , [0.4 , 0.4 , 0 ])
158125
159126 drop = layers .dropout (
160127 x = conv5 ,
161- dropout_prob = 0.5 ,
162- main_program = main_program ,
163- startup_program = startup_program )
128+ dropout_prob = 0.5 )
164129 fc1 = layers .fc (input = drop ,
165130 size = 512 ,
166131 act = None ,
167- param_attr = {"initializer" : XavierInitializer ()},
168- main_program = main_program ,
169- startup_program = startup_program )
132+ param_attr = {"initializer" : XavierInitializer ()})
170133 reshape1 = layers .reshape (
171134 x = fc1 ,
172- shape = list (fc1 .shape + (1 , 1 )),
173- main_program = main_program ,
174- startup_program = startup_program )
135+ shape = list (fc1 .shape + (1 , 1 )))
175136 bn = layers .batch_norm (
176137 input = reshape1 ,
177- act = 'relu' ,
178- main_program = main_program ,
179- startup_program = startup_program )
138+ act = 'relu' )
180139 drop2 = layers .dropout (
181140 x = bn ,
182- dropout_prob = 0.5 ,
183- main_program = main_program ,
184- startup_program = startup_program )
141+ dropout_prob = 0.5 )
185142 fc2 = layers .fc (input = drop2 ,
186143 size = 512 ,
187144 act = None ,
188- param_attr = {"initializer" : XavierInitializer ()},
189- main_program = main_program ,
190- startup_program = startup_program )
145+ param_attr = {"initializer" : XavierInitializer ()})
191146 return fc2
192147
193148
@@ -225,7 +180,7 @@ def conv_block(input,
225180place = core .CPUPlace ()
226181exe = Executor (place )
227182
228- exe .run (g_startup_program , feed = {}, fetch_list = [] )
183+ exe .run (framework . default_startup_program () )
229184
230185for pass_id in range (PASS_NUM ):
231186 batch_id = 0
@@ -243,7 +198,7 @@ def conv_block(input,
243198 tensor_img .set (img_data , place )
244199 tensor_y .set (y_data , place )
245200
246- outs = exe .run (g_main_program ,
201+ outs = exe .run (framework . default_main_program () ,
247202 feed = {"pixel" : tensor_img ,
248203 "label" : tensor_y },
249204 fetch_list = [avg_cost , accuracy ])
0 commit comments