cyber commited on
Commit
82d2551
·
verified ·
1 Parent(s): f76436e
.gitattributes CHANGED
@@ -33,3 +33,7 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ age_googlenet.caffemodel filter=lfs diff=lfs merge=lfs -text
37
+ beauty_resnet.caffemodel filter=lfs diff=lfs merge=lfs -text
38
+ gender_googlenet.caffemodel filter=lfs diff=lfs merge=lfs -text
39
+ shape_predictor_68_face_landmarks.dat filter=lfs diff=lfs merge=lfs -text
GFPGANv1.4.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e2cd4703ab14f4d01fd1383a8a8b266f9a5833dacee8e6a79d3bf21a1b6be5ad
3
+ size 348632874
age_googlenet.caffemodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:704bd6c1bc7b84ddd71a5f6c8d2914d95c39aa6b5692623b9abb79b655e7b4ca
3
+ size 41334297
age_googlenet.prototxt ADDED
@@ -0,0 +1,1696 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: "GoogleNet"
2
+ input: "data"
3
+ input_shape {
4
+ dim: 1
5
+ dim: 3
6
+ dim: 224
7
+ dim: 224
8
+ }
9
+ layer {
10
+ name: "conv1/7x7_s2"
11
+ type: "Convolution"
12
+ bottom: "data"
13
+ top: "conv1/7x7_s2"
14
+ param {
15
+ lr_mult: 1
16
+ decay_mult: 1
17
+ }
18
+ param {
19
+ lr_mult: 2
20
+ decay_mult: 0
21
+ }
22
+ convolution_param {
23
+ num_output: 64
24
+ pad: 3
25
+ kernel_size: 7
26
+ stride: 2
27
+ }
28
+ }
29
+ layer {
30
+ name: "conv1/relu_7x7"
31
+ type: "ReLU"
32
+ bottom: "conv1/7x7_s2"
33
+ top: "conv1/7x7_s2"
34
+ }
35
+ layer {
36
+ name: "pool1/3x3_s2"
37
+ type: "Pooling"
38
+ bottom: "conv1/7x7_s2"
39
+ top: "pool1/3x3_s2"
40
+ pooling_param {
41
+ pool: MAX
42
+ kernel_size: 3
43
+ stride: 2
44
+ }
45
+ }
46
+ layer {
47
+ name: "pool1/norm1"
48
+ type: "LRN"
49
+ bottom: "pool1/3x3_s2"
50
+ top: "pool1/norm1"
51
+ lrn_param {
52
+ local_size: 5
53
+ alpha: 0.0001
54
+ beta: 0.75
55
+ }
56
+ }
57
+ layer {
58
+ name: "conv2/3x3_reduce"
59
+ type: "Convolution"
60
+ bottom: "pool1/norm1"
61
+ top: "conv2/3x3_reduce"
62
+ param {
63
+ lr_mult: 1
64
+ decay_mult: 1
65
+ }
66
+ param {
67
+ lr_mult: 2
68
+ decay_mult: 0
69
+ }
70
+ convolution_param {
71
+ num_output: 64
72
+ kernel_size: 1
73
+ }
74
+ }
75
+ layer {
76
+ name: "conv2/relu_3x3_reduce"
77
+ type: "ReLU"
78
+ bottom: "conv2/3x3_reduce"
79
+ top: "conv2/3x3_reduce"
80
+ }
81
+ layer {
82
+ name: "conv2/3x3"
83
+ type: "Convolution"
84
+ bottom: "conv2/3x3_reduce"
85
+ top: "conv2/3x3"
86
+ param {
87
+ lr_mult: 1
88
+ decay_mult: 1
89
+ }
90
+ param {
91
+ lr_mult: 2
92
+ decay_mult: 0
93
+ }
94
+ convolution_param {
95
+ num_output: 192
96
+ pad: 1
97
+ kernel_size: 3
98
+ }
99
+ }
100
+ layer {
101
+ name: "conv2/relu_3x3"
102
+ type: "ReLU"
103
+ bottom: "conv2/3x3"
104
+ top: "conv2/3x3"
105
+ }
106
+ layer {
107
+ name: "conv2/norm2"
108
+ type: "LRN"
109
+ bottom: "conv2/3x3"
110
+ top: "conv2/norm2"
111
+ lrn_param {
112
+ local_size: 5
113
+ alpha: 0.0001
114
+ beta: 0.75
115
+ }
116
+ }
117
+ layer {
118
+ name: "pool2/3x3_s2"
119
+ type: "Pooling"
120
+ bottom: "conv2/norm2"
121
+ top: "pool2/3x3_s2"
122
+ pooling_param {
123
+ pool: MAX
124
+ kernel_size: 3
125
+ stride: 2
126
+ }
127
+ }
128
+ layer {
129
+ name: "inception_3a/1x1"
130
+ type: "Convolution"
131
+ bottom: "pool2/3x3_s2"
132
+ top: "inception_3a/1x1"
133
+ param {
134
+ lr_mult: 1
135
+ decay_mult: 1
136
+ }
137
+ param {
138
+ lr_mult: 2
139
+ decay_mult: 0
140
+ }
141
+ convolution_param {
142
+ num_output: 64
143
+ kernel_size: 1
144
+ }
145
+ }
146
+ layer {
147
+ name: "inception_3a/relu_1x1"
148
+ type: "ReLU"
149
+ bottom: "inception_3a/1x1"
150
+ top: "inception_3a/1x1"
151
+ }
152
+ layer {
153
+ name: "inception_3a/3x3_reduce"
154
+ type: "Convolution"
155
+ bottom: "pool2/3x3_s2"
156
+ top: "inception_3a/3x3_reduce"
157
+ param {
158
+ lr_mult: 1
159
+ decay_mult: 1
160
+ }
161
+ param {
162
+ lr_mult: 2
163
+ decay_mult: 0
164
+ }
165
+ convolution_param {
166
+ num_output: 96
167
+ kernel_size: 1
168
+ }
169
+ }
170
+ layer {
171
+ name: "inception_3a/relu_3x3_reduce"
172
+ type: "ReLU"
173
+ bottom: "inception_3a/3x3_reduce"
174
+ top: "inception_3a/3x3_reduce"
175
+ }
176
+ layer {
177
+ name: "inception_3a/3x3"
178
+ type: "Convolution"
179
+ bottom: "inception_3a/3x3_reduce"
180
+ top: "inception_3a/3x3"
181
+ param {
182
+ lr_mult: 1
183
+ decay_mult: 1
184
+ }
185
+ param {
186
+ lr_mult: 2
187
+ decay_mult: 0
188
+ }
189
+ convolution_param {
190
+ num_output: 128
191
+ pad: 1
192
+ kernel_size: 3
193
+ }
194
+ }
195
+ layer {
196
+ name: "inception_3a/relu_3x3"
197
+ type: "ReLU"
198
+ bottom: "inception_3a/3x3"
199
+ top: "inception_3a/3x3"
200
+ }
201
+ layer {
202
+ name: "inception_3a/5x5_reduce"
203
+ type: "Convolution"
204
+ bottom: "pool2/3x3_s2"
205
+ top: "inception_3a/5x5_reduce"
206
+ param {
207
+ lr_mult: 1
208
+ decay_mult: 1
209
+ }
210
+ param {
211
+ lr_mult: 2
212
+ decay_mult: 0
213
+ }
214
+ convolution_param {
215
+ num_output: 16
216
+ kernel_size: 1
217
+ }
218
+ }
219
+ layer {
220
+ name: "inception_3a/relu_5x5_reduce"
221
+ type: "ReLU"
222
+ bottom: "inception_3a/5x5_reduce"
223
+ top: "inception_3a/5x5_reduce"
224
+ }
225
+ layer {
226
+ name: "inception_3a/5x5"
227
+ type: "Convolution"
228
+ bottom: "inception_3a/5x5_reduce"
229
+ top: "inception_3a/5x5"
230
+ param {
231
+ lr_mult: 1
232
+ decay_mult: 1
233
+ }
234
+ param {
235
+ lr_mult: 2
236
+ decay_mult: 0
237
+ }
238
+ convolution_param {
239
+ num_output: 32
240
+ pad: 2
241
+ kernel_size: 5
242
+ }
243
+ }
244
+ layer {
245
+ name: "inception_3a/relu_5x5"
246
+ type: "ReLU"
247
+ bottom: "inception_3a/5x5"
248
+ top: "inception_3a/5x5"
249
+ }
250
+ layer {
251
+ name: "inception_3a/pool"
252
+ type: "Pooling"
253
+ bottom: "pool2/3x3_s2"
254
+ top: "inception_3a/pool"
255
+ pooling_param {
256
+ pool: MAX
257
+ kernel_size: 3
258
+ stride: 1
259
+ pad: 1
260
+ }
261
+ }
262
+ layer {
263
+ name: "inception_3a/pool_proj"
264
+ type: "Convolution"
265
+ bottom: "inception_3a/pool"
266
+ top: "inception_3a/pool_proj"
267
+ param {
268
+ lr_mult: 1
269
+ decay_mult: 1
270
+ }
271
+ param {
272
+ lr_mult: 2
273
+ decay_mult: 0
274
+ }
275
+ convolution_param {
276
+ num_output: 32
277
+ kernel_size: 1
278
+ }
279
+ }
280
+ layer {
281
+ name: "inception_3a/relu_pool_proj"
282
+ type: "ReLU"
283
+ bottom: "inception_3a/pool_proj"
284
+ top: "inception_3a/pool_proj"
285
+ }
286
+ layer {
287
+ name: "inception_3a/output"
288
+ type: "Concat"
289
+ bottom: "inception_3a/1x1"
290
+ bottom: "inception_3a/3x3"
291
+ bottom: "inception_3a/5x5"
292
+ bottom: "inception_3a/pool_proj"
293
+ top: "inception_3a/output"
294
+ }
295
+ layer {
296
+ name: "inception_3b/1x1"
297
+ type: "Convolution"
298
+ bottom: "inception_3a/output"
299
+ top: "inception_3b/1x1"
300
+ param {
301
+ lr_mult: 1
302
+ decay_mult: 1
303
+ }
304
+ param {
305
+ lr_mult: 2
306
+ decay_mult: 0
307
+ }
308
+ convolution_param {
309
+ num_output: 128
310
+ kernel_size: 1
311
+ }
312
+ }
313
+ layer {
314
+ name: "inception_3b/relu_1x1"
315
+ type: "ReLU"
316
+ bottom: "inception_3b/1x1"
317
+ top: "inception_3b/1x1"
318
+ }
319
+ layer {
320
+ name: "inception_3b/3x3_reduce"
321
+ type: "Convolution"
322
+ bottom: "inception_3a/output"
323
+ top: "inception_3b/3x3_reduce"
324
+ param {
325
+ lr_mult: 1
326
+ decay_mult: 1
327
+ }
328
+ param {
329
+ lr_mult: 2
330
+ decay_mult: 0
331
+ }
332
+ convolution_param {
333
+ num_output: 128
334
+ kernel_size: 1
335
+ }
336
+ }
337
+ layer {
338
+ name: "inception_3b/relu_3x3_reduce"
339
+ type: "ReLU"
340
+ bottom: "inception_3b/3x3_reduce"
341
+ top: "inception_3b/3x3_reduce"
342
+ }
343
+ layer {
344
+ name: "inception_3b/3x3"
345
+ type: "Convolution"
346
+ bottom: "inception_3b/3x3_reduce"
347
+ top: "inception_3b/3x3"
348
+ param {
349
+ lr_mult: 1
350
+ decay_mult: 1
351
+ }
352
+ param {
353
+ lr_mult: 2
354
+ decay_mult: 0
355
+ }
356
+ convolution_param {
357
+ num_output: 192
358
+ pad: 1
359
+ kernel_size: 3
360
+ }
361
+ }
362
+ layer {
363
+ name: "inception_3b/relu_3x3"
364
+ type: "ReLU"
365
+ bottom: "inception_3b/3x3"
366
+ top: "inception_3b/3x3"
367
+ }
368
+ layer {
369
+ name: "inception_3b/5x5_reduce"
370
+ type: "Convolution"
371
+ bottom: "inception_3a/output"
372
+ top: "inception_3b/5x5_reduce"
373
+ param {
374
+ lr_mult: 1
375
+ decay_mult: 1
376
+ }
377
+ param {
378
+ lr_mult: 2
379
+ decay_mult: 0
380
+ }
381
+ convolution_param {
382
+ num_output: 32
383
+ kernel_size: 1
384
+ }
385
+ }
386
+ layer {
387
+ name: "inception_3b/relu_5x5_reduce"
388
+ type: "ReLU"
389
+ bottom: "inception_3b/5x5_reduce"
390
+ top: "inception_3b/5x5_reduce"
391
+ }
392
+ layer {
393
+ name: "inception_3b/5x5"
394
+ type: "Convolution"
395
+ bottom: "inception_3b/5x5_reduce"
396
+ top: "inception_3b/5x5"
397
+ param {
398
+ lr_mult: 1
399
+ decay_mult: 1
400
+ }
401
+ param {
402
+ lr_mult: 2
403
+ decay_mult: 0
404
+ }
405
+ convolution_param {
406
+ num_output: 96
407
+ pad: 2
408
+ kernel_size: 5
409
+ }
410
+ }
411
+ layer {
412
+ name: "inception_3b/relu_5x5"
413
+ type: "ReLU"
414
+ bottom: "inception_3b/5x5"
415
+ top: "inception_3b/5x5"
416
+ }
417
+ layer {
418
+ name: "inception_3b/pool"
419
+ type: "Pooling"
420
+ bottom: "inception_3a/output"
421
+ top: "inception_3b/pool"
422
+ pooling_param {
423
+ pool: MAX
424
+ kernel_size: 3
425
+ stride: 1
426
+ pad: 1
427
+ }
428
+ }
429
+ layer {
430
+ name: "inception_3b/pool_proj"
431
+ type: "Convolution"
432
+ bottom: "inception_3b/pool"
433
+ top: "inception_3b/pool_proj"
434
+ param {
435
+ lr_mult: 1
436
+ decay_mult: 1
437
+ }
438
+ param {
439
+ lr_mult: 2
440
+ decay_mult: 0
441
+ }
442
+ convolution_param {
443
+ num_output: 64
444
+ kernel_size: 1
445
+ }
446
+ }
447
+ layer {
448
+ name: "inception_3b/relu_pool_proj"
449
+ type: "ReLU"
450
+ bottom: "inception_3b/pool_proj"
451
+ top: "inception_3b/pool_proj"
452
+ }
453
+ layer {
454
+ name: "inception_3b/output"
455
+ type: "Concat"
456
+ bottom: "inception_3b/1x1"
457
+ bottom: "inception_3b/3x3"
458
+ bottom: "inception_3b/5x5"
459
+ bottom: "inception_3b/pool_proj"
460
+ top: "inception_3b/output"
461
+ }
462
+ layer {
463
+ name: "pool3/3x3_s2"
464
+ type: "Pooling"
465
+ bottom: "inception_3b/output"
466
+ top: "pool3/3x3_s2"
467
+ pooling_param {
468
+ pool: MAX
469
+ kernel_size: 3
470
+ stride: 2
471
+ }
472
+ }
473
+ layer {
474
+ name: "inception_4a/1x1"
475
+ type: "Convolution"
476
+ bottom: "pool3/3x3_s2"
477
+ top: "inception_4a/1x1"
478
+ param {
479
+ lr_mult: 1
480
+ decay_mult: 1
481
+ }
482
+ param {
483
+ lr_mult: 2
484
+ decay_mult: 0
485
+ }
486
+ convolution_param {
487
+ num_output: 192
488
+ kernel_size: 1
489
+ }
490
+ }
491
+ layer {
492
+ name: "inception_4a/relu_1x1"
493
+ type: "ReLU"
494
+ bottom: "inception_4a/1x1"
495
+ top: "inception_4a/1x1"
496
+ }
497
+ layer {
498
+ name: "inception_4a/3x3_reduce"
499
+ type: "Convolution"
500
+ bottom: "pool3/3x3_s2"
501
+ top: "inception_4a/3x3_reduce"
502
+ param {
503
+ lr_mult: 1
504
+ decay_mult: 1
505
+ }
506
+ param {
507
+ lr_mult: 2
508
+ decay_mult: 0
509
+ }
510
+ convolution_param {
511
+ num_output: 96
512
+ kernel_size: 1
513
+ }
514
+ }
515
+ layer {
516
+ name: "inception_4a/relu_3x3_reduce"
517
+ type: "ReLU"
518
+ bottom: "inception_4a/3x3_reduce"
519
+ top: "inception_4a/3x3_reduce"
520
+ }
521
+ layer {
522
+ name: "inception_4a/3x3"
523
+ type: "Convolution"
524
+ bottom: "inception_4a/3x3_reduce"
525
+ top: "inception_4a/3x3"
526
+ param {
527
+ lr_mult: 1
528
+ decay_mult: 1
529
+ }
530
+ param {
531
+ lr_mult: 2
532
+ decay_mult: 0
533
+ }
534
+ convolution_param {
535
+ num_output: 208
536
+ pad: 1
537
+ kernel_size: 3
538
+ }
539
+ }
540
+ layer {
541
+ name: "inception_4a/relu_3x3"
542
+ type: "ReLU"
543
+ bottom: "inception_4a/3x3"
544
+ top: "inception_4a/3x3"
545
+ }
546
+ layer {
547
+ name: "inception_4a/5x5_reduce"
548
+ type: "Convolution"
549
+ bottom: "pool3/3x3_s2"
550
+ top: "inception_4a/5x5_reduce"
551
+ param {
552
+ lr_mult: 1
553
+ decay_mult: 1
554
+ }
555
+ param {
556
+ lr_mult: 2
557
+ decay_mult: 0
558
+ }
559
+ convolution_param {
560
+ num_output: 16
561
+ kernel_size: 1
562
+ }
563
+ }
564
+ layer {
565
+ name: "inception_4a/relu_5x5_reduce"
566
+ type: "ReLU"
567
+ bottom: "inception_4a/5x5_reduce"
568
+ top: "inception_4a/5x5_reduce"
569
+ }
570
+ layer {
571
+ name: "inception_4a/5x5"
572
+ type: "Convolution"
573
+ bottom: "inception_4a/5x5_reduce"
574
+ top: "inception_4a/5x5"
575
+ param {
576
+ lr_mult: 1
577
+ decay_mult: 1
578
+ }
579
+ param {
580
+ lr_mult: 2
581
+ decay_mult: 0
582
+ }
583
+ convolution_param {
584
+ num_output: 48
585
+ pad: 2
586
+ kernel_size: 5
587
+ }
588
+ }
589
+ layer {
590
+ name: "inception_4a/relu_5x5"
591
+ type: "ReLU"
592
+ bottom: "inception_4a/5x5"
593
+ top: "inception_4a/5x5"
594
+ }
595
+ layer {
596
+ name: "inception_4a/pool"
597
+ type: "Pooling"
598
+ bottom: "pool3/3x3_s2"
599
+ top: "inception_4a/pool"
600
+ pooling_param {
601
+ pool: MAX
602
+ kernel_size: 3
603
+ stride: 1
604
+ pad: 1
605
+ }
606
+ }
607
+ layer {
608
+ name: "inception_4a/pool_proj"
609
+ type: "Convolution"
610
+ bottom: "inception_4a/pool"
611
+ top: "inception_4a/pool_proj"
612
+ param {
613
+ lr_mult: 1
614
+ decay_mult: 1
615
+ }
616
+ param {
617
+ lr_mult: 2
618
+ decay_mult: 0
619
+ }
620
+ convolution_param {
621
+ num_output: 64
622
+ kernel_size: 1
623
+ }
624
+ }
625
+ layer {
626
+ name: "inception_4a/relu_pool_proj"
627
+ type: "ReLU"
628
+ bottom: "inception_4a/pool_proj"
629
+ top: "inception_4a/pool_proj"
630
+ }
631
+ layer {
632
+ name: "inception_4a/output"
633
+ type: "Concat"
634
+ bottom: "inception_4a/1x1"
635
+ bottom: "inception_4a/3x3"
636
+ bottom: "inception_4a/5x5"
637
+ bottom: "inception_4a/pool_proj"
638
+ top: "inception_4a/output"
639
+ }
640
+ layer {
641
+ name: "inception_4b/1x1"
642
+ type: "Convolution"
643
+ bottom: "inception_4a/output"
644
+ top: "inception_4b/1x1"
645
+ param {
646
+ lr_mult: 1
647
+ decay_mult: 1
648
+ }
649
+ param {
650
+ lr_mult: 2
651
+ decay_mult: 0
652
+ }
653
+ convolution_param {
654
+ num_output: 160
655
+ kernel_size: 1
656
+ }
657
+ }
658
+ layer {
659
+ name: "inception_4b/relu_1x1"
660
+ type: "ReLU"
661
+ bottom: "inception_4b/1x1"
662
+ top: "inception_4b/1x1"
663
+ }
664
+ layer {
665
+ name: "inception_4b/3x3_reduce"
666
+ type: "Convolution"
667
+ bottom: "inception_4a/output"
668
+ top: "inception_4b/3x3_reduce"
669
+ param {
670
+ lr_mult: 1
671
+ decay_mult: 1
672
+ }
673
+ param {
674
+ lr_mult: 2
675
+ decay_mult: 0
676
+ }
677
+ convolution_param {
678
+ num_output: 112
679
+ kernel_size: 1
680
+ }
681
+ }
682
+ layer {
683
+ name: "inception_4b/relu_3x3_reduce"
684
+ type: "ReLU"
685
+ bottom: "inception_4b/3x3_reduce"
686
+ top: "inception_4b/3x3_reduce"
687
+ }
688
+ layer {
689
+ name: "inception_4b/3x3"
690
+ type: "Convolution"
691
+ bottom: "inception_4b/3x3_reduce"
692
+ top: "inception_4b/3x3"
693
+ param {
694
+ lr_mult: 1
695
+ decay_mult: 1
696
+ }
697
+ param {
698
+ lr_mult: 2
699
+ decay_mult: 0
700
+ }
701
+ convolution_param {
702
+ num_output: 224
703
+ pad: 1
704
+ kernel_size: 3
705
+ }
706
+ }
707
+ layer {
708
+ name: "inception_4b/relu_3x3"
709
+ type: "ReLU"
710
+ bottom: "inception_4b/3x3"
711
+ top: "inception_4b/3x3"
712
+ }
713
+ layer {
714
+ name: "inception_4b/5x5_reduce"
715
+ type: "Convolution"
716
+ bottom: "inception_4a/output"
717
+ top: "inception_4b/5x5_reduce"
718
+ param {
719
+ lr_mult: 1
720
+ decay_mult: 1
721
+ }
722
+ param {
723
+ lr_mult: 2
724
+ decay_mult: 0
725
+ }
726
+ convolution_param {
727
+ num_output: 24
728
+ kernel_size: 1
729
+ }
730
+ }
731
+ layer {
732
+ name: "inception_4b/relu_5x5_reduce"
733
+ type: "ReLU"
734
+ bottom: "inception_4b/5x5_reduce"
735
+ top: "inception_4b/5x5_reduce"
736
+ }
737
+ layer {
738
+ name: "inception_4b/5x5"
739
+ type: "Convolution"
740
+ bottom: "inception_4b/5x5_reduce"
741
+ top: "inception_4b/5x5"
742
+ param {
743
+ lr_mult: 1
744
+ decay_mult: 1
745
+ }
746
+ param {
747
+ lr_mult: 2
748
+ decay_mult: 0
749
+ }
750
+ convolution_param {
751
+ num_output: 64
752
+ pad: 2
753
+ kernel_size: 5
754
+ }
755
+ }
756
+ layer {
757
+ name: "inception_4b/relu_5x5"
758
+ type: "ReLU"
759
+ bottom: "inception_4b/5x5"
760
+ top: "inception_4b/5x5"
761
+ }
762
+ layer {
763
+ name: "inception_4b/pool"
764
+ type: "Pooling"
765
+ bottom: "inception_4a/output"
766
+ top: "inception_4b/pool"
767
+ pooling_param {
768
+ pool: MAX
769
+ kernel_size: 3
770
+ stride: 1
771
+ pad: 1
772
+ }
773
+ }
774
+ layer {
775
+ name: "inception_4b/pool_proj"
776
+ type: "Convolution"
777
+ bottom: "inception_4b/pool"
778
+ top: "inception_4b/pool_proj"
779
+ param {
780
+ lr_mult: 1
781
+ decay_mult: 1
782
+ }
783
+ param {
784
+ lr_mult: 2
785
+ decay_mult: 0
786
+ }
787
+ convolution_param {
788
+ num_output: 64
789
+ kernel_size: 1
790
+ }
791
+ }
792
+ layer {
793
+ name: "inception_4b/relu_pool_proj"
794
+ type: "ReLU"
795
+ bottom: "inception_4b/pool_proj"
796
+ top: "inception_4b/pool_proj"
797
+ }
798
+ layer {
799
+ name: "inception_4b/output"
800
+ type: "Concat"
801
+ bottom: "inception_4b/1x1"
802
+ bottom: "inception_4b/3x3"
803
+ bottom: "inception_4b/5x5"
804
+ bottom: "inception_4b/pool_proj"
805
+ top: "inception_4b/output"
806
+ }
807
+ layer {
808
+ name: "inception_4c/1x1"
809
+ type: "Convolution"
810
+ bottom: "inception_4b/output"
811
+ top: "inception_4c/1x1"
812
+ param {
813
+ lr_mult: 1
814
+ decay_mult: 1
815
+ }
816
+ param {
817
+ lr_mult: 2
818
+ decay_mult: 0
819
+ }
820
+ convolution_param {
821
+ num_output: 128
822
+ kernel_size: 1
823
+ }
824
+ }
825
+ layer {
826
+ name: "inception_4c/relu_1x1"
827
+ type: "ReLU"
828
+ bottom: "inception_4c/1x1"
829
+ top: "inception_4c/1x1"
830
+ }
831
+ layer {
832
+ name: "inception_4c/3x3_reduce"
833
+ type: "Convolution"
834
+ bottom: "inception_4b/output"
835
+ top: "inception_4c/3x3_reduce"
836
+ param {
837
+ lr_mult: 1
838
+ decay_mult: 1
839
+ }
840
+ param {
841
+ lr_mult: 2
842
+ decay_mult: 0
843
+ }
844
+ convolution_param {
845
+ num_output: 128
846
+ kernel_size: 1
847
+ }
848
+ }
849
+ layer {
850
+ name: "inception_4c/relu_3x3_reduce"
851
+ type: "ReLU"
852
+ bottom: "inception_4c/3x3_reduce"
853
+ top: "inception_4c/3x3_reduce"
854
+ }
855
+ layer {
856
+ name: "inception_4c/3x3"
857
+ type: "Convolution"
858
+ bottom: "inception_4c/3x3_reduce"
859
+ top: "inception_4c/3x3"
860
+ param {
861
+ lr_mult: 1
862
+ decay_mult: 1
863
+ }
864
+ param {
865
+ lr_mult: 2
866
+ decay_mult: 0
867
+ }
868
+ convolution_param {
869
+ num_output: 256
870
+ pad: 1
871
+ kernel_size: 3
872
+ }
873
+ }
874
+ layer {
875
+ name: "inception_4c/relu_3x3"
876
+ type: "ReLU"
877
+ bottom: "inception_4c/3x3"
878
+ top: "inception_4c/3x3"
879
+ }
880
+ layer {
881
+ name: "inception_4c/5x5_reduce"
882
+ type: "Convolution"
883
+ bottom: "inception_4b/output"
884
+ top: "inception_4c/5x5_reduce"
885
+ param {
886
+ lr_mult: 1
887
+ decay_mult: 1
888
+ }
889
+ param {
890
+ lr_mult: 2
891
+ decay_mult: 0
892
+ }
893
+ convolution_param {
894
+ num_output: 24
895
+ kernel_size: 1
896
+ }
897
+ }
898
+ layer {
899
+ name: "inception_4c/relu_5x5_reduce"
900
+ type: "ReLU"
901
+ bottom: "inception_4c/5x5_reduce"
902
+ top: "inception_4c/5x5_reduce"
903
+ }
904
+ layer {
905
+ name: "inception_4c/5x5"
906
+ type: "Convolution"
907
+ bottom: "inception_4c/5x5_reduce"
908
+ top: "inception_4c/5x5"
909
+ param {
910
+ lr_mult: 1
911
+ decay_mult: 1
912
+ }
913
+ param {
914
+ lr_mult: 2
915
+ decay_mult: 0
916
+ }
917
+ convolution_param {
918
+ num_output: 64
919
+ pad: 2
920
+ kernel_size: 5
921
+ }
922
+ }
923
+ layer {
924
+ name: "inception_4c/relu_5x5"
925
+ type: "ReLU"
926
+ bottom: "inception_4c/5x5"
927
+ top: "inception_4c/5x5"
928
+ }
929
+ layer {
930
+ name: "inception_4c/pool"
931
+ type: "Pooling"
932
+ bottom: "inception_4b/output"
933
+ top: "inception_4c/pool"
934
+ pooling_param {
935
+ pool: MAX
936
+ kernel_size: 3
937
+ stride: 1
938
+ pad: 1
939
+ }
940
+ }
941
+ layer {
942
+ name: "inception_4c/pool_proj"
943
+ type: "Convolution"
944
+ bottom: "inception_4c/pool"
945
+ top: "inception_4c/pool_proj"
946
+ param {
947
+ lr_mult: 1
948
+ decay_mult: 1
949
+ }
950
+ param {
951
+ lr_mult: 2
952
+ decay_mult: 0
953
+ }
954
+ convolution_param {
955
+ num_output: 64
956
+ kernel_size: 1
957
+ }
958
+ }
959
+ layer {
960
+ name: "inception_4c/relu_pool_proj"
961
+ type: "ReLU"
962
+ bottom: "inception_4c/pool_proj"
963
+ top: "inception_4c/pool_proj"
964
+ }
965
+ layer {
966
+ name: "inception_4c/output"
967
+ type: "Concat"
968
+ bottom: "inception_4c/1x1"
969
+ bottom: "inception_4c/3x3"
970
+ bottom: "inception_4c/5x5"
971
+ bottom: "inception_4c/pool_proj"
972
+ top: "inception_4c/output"
973
+ }
974
+ layer {
975
+ name: "inception_4d/1x1"
976
+ type: "Convolution"
977
+ bottom: "inception_4c/output"
978
+ top: "inception_4d/1x1"
979
+ param {
980
+ lr_mult: 1
981
+ decay_mult: 1
982
+ }
983
+ param {
984
+ lr_mult: 2
985
+ decay_mult: 0
986
+ }
987
+ convolution_param {
988
+ num_output: 112
989
+ kernel_size: 1
990
+ }
991
+ }
992
+ layer {
993
+ name: "inception_4d/relu_1x1"
994
+ type: "ReLU"
995
+ bottom: "inception_4d/1x1"
996
+ top: "inception_4d/1x1"
997
+ }
998
+ layer {
999
+ name: "inception_4d/3x3_reduce"
1000
+ type: "Convolution"
1001
+ bottom: "inception_4c/output"
1002
+ top: "inception_4d/3x3_reduce"
1003
+ param {
1004
+ lr_mult: 1
1005
+ decay_mult: 1
1006
+ }
1007
+ param {
1008
+ lr_mult: 2
1009
+ decay_mult: 0
1010
+ }
1011
+ convolution_param {
1012
+ num_output: 144
1013
+ kernel_size: 1
1014
+ }
1015
+ }
1016
+ layer {
1017
+ name: "inception_4d/relu_3x3_reduce"
1018
+ type: "ReLU"
1019
+ bottom: "inception_4d/3x3_reduce"
1020
+ top: "inception_4d/3x3_reduce"
1021
+ }
1022
+ layer {
1023
+ name: "inception_4d/3x3"
1024
+ type: "Convolution"
1025
+ bottom: "inception_4d/3x3_reduce"
1026
+ top: "inception_4d/3x3"
1027
+ param {
1028
+ lr_mult: 1
1029
+ decay_mult: 1
1030
+ }
1031
+ param {
1032
+ lr_mult: 2
1033
+ decay_mult: 0
1034
+ }
1035
+ convolution_param {
1036
+ num_output: 288
1037
+ pad: 1
1038
+ kernel_size: 3
1039
+ }
1040
+ }
1041
+ layer {
1042
+ name: "inception_4d/relu_3x3"
1043
+ type: "ReLU"
1044
+ bottom: "inception_4d/3x3"
1045
+ top: "inception_4d/3x3"
1046
+ }
1047
+ layer {
1048
+ name: "inception_4d/5x5_reduce"
1049
+ type: "Convolution"
1050
+ bottom: "inception_4c/output"
1051
+ top: "inception_4d/5x5_reduce"
1052
+ param {
1053
+ lr_mult: 1
1054
+ decay_mult: 1
1055
+ }
1056
+ param {
1057
+ lr_mult: 2
1058
+ decay_mult: 0
1059
+ }
1060
+ convolution_param {
1061
+ num_output: 32
1062
+ kernel_size: 1
1063
+ }
1064
+ }
1065
+ layer {
1066
+ name: "inception_4d/relu_5x5_reduce"
1067
+ type: "ReLU"
1068
+ bottom: "inception_4d/5x5_reduce"
1069
+ top: "inception_4d/5x5_reduce"
1070
+ }
1071
+ layer {
1072
+ name: "inception_4d/5x5"
1073
+ type: "Convolution"
1074
+ bottom: "inception_4d/5x5_reduce"
1075
+ top: "inception_4d/5x5"
1076
+ param {
1077
+ lr_mult: 1
1078
+ decay_mult: 1
1079
+ }
1080
+ param {
1081
+ lr_mult: 2
1082
+ decay_mult: 0
1083
+ }
1084
+ convolution_param {
1085
+ num_output: 64
1086
+ pad: 2
1087
+ kernel_size: 5
1088
+ }
1089
+ }
1090
+ layer {
1091
+ name: "inception_4d/relu_5x5"
1092
+ type: "ReLU"
1093
+ bottom: "inception_4d/5x5"
1094
+ top: "inception_4d/5x5"
1095
+ }
1096
+ layer {
1097
+ name: "inception_4d/pool"
1098
+ type: "Pooling"
1099
+ bottom: "inception_4c/output"
1100
+ top: "inception_4d/pool"
1101
+ pooling_param {
1102
+ pool: MAX
1103
+ kernel_size: 3
1104
+ stride: 1
1105
+ pad: 1
1106
+ }
1107
+ }
1108
+ layer {
1109
+ name: "inception_4d/pool_proj"
1110
+ type: "Convolution"
1111
+ bottom: "inception_4d/pool"
1112
+ top: "inception_4d/pool_proj"
1113
+ param {
1114
+ lr_mult: 1
1115
+ decay_mult: 1
1116
+ }
1117
+ param {
1118
+ lr_mult: 2
1119
+ decay_mult: 0
1120
+ }
1121
+ convolution_param {
1122
+ num_output: 64
1123
+ kernel_size: 1
1124
+ }
1125
+ }
1126
+ layer {
1127
+ name: "inception_4d/relu_pool_proj"
1128
+ type: "ReLU"
1129
+ bottom: "inception_4d/pool_proj"
1130
+ top: "inception_4d/pool_proj"
1131
+ }
1132
+ layer {
1133
+ name: "inception_4d/output"
1134
+ type: "Concat"
1135
+ bottom: "inception_4d/1x1"
1136
+ bottom: "inception_4d/3x3"
1137
+ bottom: "inception_4d/5x5"
1138
+ bottom: "inception_4d/pool_proj"
1139
+ top: "inception_4d/output"
1140
+ }
1141
+ layer {
1142
+ name: "inception_4e/1x1"
1143
+ type: "Convolution"
1144
+ bottom: "inception_4d/output"
1145
+ top: "inception_4e/1x1"
1146
+ param {
1147
+ lr_mult: 1
1148
+ decay_mult: 1
1149
+ }
1150
+ param {
1151
+ lr_mult: 2
1152
+ decay_mult: 0
1153
+ }
1154
+ convolution_param {
1155
+ num_output: 256
1156
+ kernel_size: 1
1157
+ }
1158
+ }
1159
+ layer {
1160
+ name: "inception_4e/relu_1x1"
1161
+ type: "ReLU"
1162
+ bottom: "inception_4e/1x1"
1163
+ top: "inception_4e/1x1"
1164
+ }
1165
+ layer {
1166
+ name: "inception_4e/3x3_reduce"
1167
+ type: "Convolution"
1168
+ bottom: "inception_4d/output"
1169
+ top: "inception_4e/3x3_reduce"
1170
+ param {
1171
+ lr_mult: 1
1172
+ decay_mult: 1
1173
+ }
1174
+ param {
1175
+ lr_mult: 2
1176
+ decay_mult: 0
1177
+ }
1178
+ convolution_param {
1179
+ num_output: 160
1180
+ kernel_size: 1
1181
+ }
1182
+ }
1183
+ layer {
1184
+ name: "inception_4e/relu_3x3_reduce"
1185
+ type: "ReLU"
1186
+ bottom: "inception_4e/3x3_reduce"
1187
+ top: "inception_4e/3x3_reduce"
1188
+ }
1189
+ layer {
1190
+ name: "inception_4e/3x3"
1191
+ type: "Convolution"
1192
+ bottom: "inception_4e/3x3_reduce"
1193
+ top: "inception_4e/3x3"
1194
+ param {
1195
+ lr_mult: 1
1196
+ decay_mult: 1
1197
+ }
1198
+ param {
1199
+ lr_mult: 2
1200
+ decay_mult: 0
1201
+ }
1202
+ convolution_param {
1203
+ num_output: 320
1204
+ pad: 1
1205
+ kernel_size: 3
1206
+ }
1207
+ }
1208
+ layer {
1209
+ name: "inception_4e/relu_3x3"
1210
+ type: "ReLU"
1211
+ bottom: "inception_4e/3x3"
1212
+ top: "inception_4e/3x3"
1213
+ }
1214
+ layer {
1215
+ name: "inception_4e/5x5_reduce"
1216
+ type: "Convolution"
1217
+ bottom: "inception_4d/output"
1218
+ top: "inception_4e/5x5_reduce"
1219
+ param {
1220
+ lr_mult: 1
1221
+ decay_mult: 1
1222
+ }
1223
+ param {
1224
+ lr_mult: 2
1225
+ decay_mult: 0
1226
+ }
1227
+ convolution_param {
1228
+ num_output: 32
1229
+ kernel_size: 1
1230
+ }
1231
+ }
1232
+ layer {
1233
+ name: "inception_4e/relu_5x5_reduce"
1234
+ type: "ReLU"
1235
+ bottom: "inception_4e/5x5_reduce"
1236
+ top: "inception_4e/5x5_reduce"
1237
+ }
1238
+ layer {
1239
+ name: "inception_4e/5x5"
1240
+ type: "Convolution"
1241
+ bottom: "inception_4e/5x5_reduce"
1242
+ top: "inception_4e/5x5"
1243
+ param {
1244
+ lr_mult: 1
1245
+ decay_mult: 1
1246
+ }
1247
+ param {
1248
+ lr_mult: 2
1249
+ decay_mult: 0
1250
+ }
1251
+ convolution_param {
1252
+ num_output: 128
1253
+ pad: 2
1254
+ kernel_size: 5
1255
+ }
1256
+ }
1257
+ layer {
1258
+ name: "inception_4e/relu_5x5"
1259
+ type: "ReLU"
1260
+ bottom: "inception_4e/5x5"
1261
+ top: "inception_4e/5x5"
1262
+ }
1263
+ layer {
1264
+ name: "inception_4e/pool"
1265
+ type: "Pooling"
1266
+ bottom: "inception_4d/output"
1267
+ top: "inception_4e/pool"
1268
+ pooling_param {
1269
+ pool: MAX
1270
+ kernel_size: 3
1271
+ stride: 1
1272
+ pad: 1
1273
+ }
1274
+ }
1275
+ layer {
1276
+ name: "inception_4e/pool_proj"
1277
+ type: "Convolution"
1278
+ bottom: "inception_4e/pool"
1279
+ top: "inception_4e/pool_proj"
1280
+ param {
1281
+ lr_mult: 1
1282
+ decay_mult: 1
1283
+ }
1284
+ param {
1285
+ lr_mult: 2
1286
+ decay_mult: 0
1287
+ }
1288
+ convolution_param {
1289
+ num_output: 128
1290
+ kernel_size: 1
1291
+ }
1292
+ }
1293
+ layer {
1294
+ name: "inception_4e/relu_pool_proj"
1295
+ type: "ReLU"
1296
+ bottom: "inception_4e/pool_proj"
1297
+ top: "inception_4e/pool_proj"
1298
+ }
1299
+ layer {
1300
+ name: "inception_4e/output"
1301
+ type: "Concat"
1302
+ bottom: "inception_4e/1x1"
1303
+ bottom: "inception_4e/3x3"
1304
+ bottom: "inception_4e/5x5"
1305
+ bottom: "inception_4e/pool_proj"
1306
+ top: "inception_4e/output"
1307
+ }
1308
+ layer {
1309
+ name: "pool4/3x3_s2"
1310
+ type: "Pooling"
1311
+ bottom: "inception_4e/output"
1312
+ top: "pool4/3x3_s2"
1313
+ pooling_param {
1314
+ pool: MAX
1315
+ kernel_size: 3
1316
+ stride: 2
1317
+ }
1318
+ }
1319
+ layer {
1320
+ name: "inception_5a/1x1"
1321
+ type: "Convolution"
1322
+ bottom: "pool4/3x3_s2"
1323
+ top: "inception_5a/1x1"
1324
+ param {
1325
+ lr_mult: 1
1326
+ decay_mult: 1
1327
+ }
1328
+ param {
1329
+ lr_mult: 2
1330
+ decay_mult: 0
1331
+ }
1332
+ convolution_param {
1333
+ num_output: 256
1334
+ kernel_size: 1
1335
+ }
1336
+ }
1337
+ layer {
1338
+ name: "inception_5a/relu_1x1"
1339
+ type: "ReLU"
1340
+ bottom: "inception_5a/1x1"
1341
+ top: "inception_5a/1x1"
1342
+ }
1343
+ layer {
1344
+ name: "inception_5a/3x3_reduce"
1345
+ type: "Convolution"
1346
+ bottom: "pool4/3x3_s2"
1347
+ top: "inception_5a/3x3_reduce"
1348
+ param {
1349
+ lr_mult: 1
1350
+ decay_mult: 1
1351
+ }
1352
+ param {
1353
+ lr_mult: 2
1354
+ decay_mult: 0
1355
+ }
1356
+ convolution_param {
1357
+ num_output: 160
1358
+ kernel_size: 1
1359
+ }
1360
+ }
1361
+ layer {
1362
+ name: "inception_5a/relu_3x3_reduce"
1363
+ type: "ReLU"
1364
+ bottom: "inception_5a/3x3_reduce"
1365
+ top: "inception_5a/3x3_reduce"
1366
+ }
1367
+ layer {
1368
+ name: "inception_5a/3x3"
1369
+ type: "Convolution"
1370
+ bottom: "inception_5a/3x3_reduce"
1371
+ top: "inception_5a/3x3"
1372
+ param {
1373
+ lr_mult: 1
1374
+ decay_mult: 1
1375
+ }
1376
+ param {
1377
+ lr_mult: 2
1378
+ decay_mult: 0
1379
+ }
1380
+ convolution_param {
1381
+ num_output: 320
1382
+ pad: 1
1383
+ kernel_size: 3
1384
+ }
1385
+ }
1386
+ layer {
1387
+ name: "inception_5a/relu_3x3"
1388
+ type: "ReLU"
1389
+ bottom: "inception_5a/3x3"
1390
+ top: "inception_5a/3x3"
1391
+ }
1392
+ layer {
1393
+ name: "inception_5a/5x5_reduce"
1394
+ type: "Convolution"
1395
+ bottom: "pool4/3x3_s2"
1396
+ top: "inception_5a/5x5_reduce"
1397
+ param {
1398
+ lr_mult: 1
1399
+ decay_mult: 1
1400
+ }
1401
+ param {
1402
+ lr_mult: 2
1403
+ decay_mult: 0
1404
+ }
1405
+ convolution_param {
1406
+ num_output: 32
1407
+ kernel_size: 1
1408
+ }
1409
+ }
1410
+ layer {
1411
+ name: "inception_5a/relu_5x5_reduce"
1412
+ type: "ReLU"
1413
+ bottom: "inception_5a/5x5_reduce"
1414
+ top: "inception_5a/5x5_reduce"
1415
+ }
1416
+ layer {
1417
+ name: "inception_5a/5x5"
1418
+ type: "Convolution"
1419
+ bottom: "inception_5a/5x5_reduce"
1420
+ top: "inception_5a/5x5"
1421
+ param {
1422
+ lr_mult: 1
1423
+ decay_mult: 1
1424
+ }
1425
+ param {
1426
+ lr_mult: 2
1427
+ decay_mult: 0
1428
+ }
1429
+ convolution_param {
1430
+ num_output: 128
1431
+ pad: 2
1432
+ kernel_size: 5
1433
+ }
1434
+ }
1435
+ layer {
1436
+ name: "inception_5a/relu_5x5"
1437
+ type: "ReLU"
1438
+ bottom: "inception_5a/5x5"
1439
+ top: "inception_5a/5x5"
1440
+ }
1441
+ layer {
1442
+ name: "inception_5a/pool"
1443
+ type: "Pooling"
1444
+ bottom: "pool4/3x3_s2"
1445
+ top: "inception_5a/pool"
1446
+ pooling_param {
1447
+ pool: MAX
1448
+ kernel_size: 3
1449
+ stride: 1
1450
+ pad: 1
1451
+ }
1452
+ }
1453
+ layer {
1454
+ name: "inception_5a/pool_proj"
1455
+ type: "Convolution"
1456
+ bottom: "inception_5a/pool"
1457
+ top: "inception_5a/pool_proj"
1458
+ param {
1459
+ lr_mult: 1
1460
+ decay_mult: 1
1461
+ }
1462
+ param {
1463
+ lr_mult: 2
1464
+ decay_mult: 0
1465
+ }
1466
+ convolution_param {
1467
+ num_output: 128
1468
+ kernel_size: 1
1469
+ }
1470
+ }
1471
+ layer {
1472
+ name: "inception_5a/relu_pool_proj"
1473
+ type: "ReLU"
1474
+ bottom: "inception_5a/pool_proj"
1475
+ top: "inception_5a/pool_proj"
1476
+ }
1477
+ layer {
1478
+ name: "inception_5a/output"
1479
+ type: "Concat"
1480
+ bottom: "inception_5a/1x1"
1481
+ bottom: "inception_5a/3x3"
1482
+ bottom: "inception_5a/5x5"
1483
+ bottom: "inception_5a/pool_proj"
1484
+ top: "inception_5a/output"
1485
+ }
1486
+ layer {
1487
+ name: "inception_5b/1x1"
1488
+ type: "Convolution"
1489
+ bottom: "inception_5a/output"
1490
+ top: "inception_5b/1x1"
1491
+ param {
1492
+ lr_mult: 1
1493
+ decay_mult: 1
1494
+ }
1495
+ param {
1496
+ lr_mult: 2
1497
+ decay_mult: 0
1498
+ }
1499
+ convolution_param {
1500
+ num_output: 384
1501
+ kernel_size: 1
1502
+ }
1503
+ }
1504
+ layer {
1505
+ name: "inception_5b/relu_1x1"
1506
+ type: "ReLU"
1507
+ bottom: "inception_5b/1x1"
1508
+ top: "inception_5b/1x1"
1509
+ }
1510
+ layer {
1511
+ name: "inception_5b/3x3_reduce"
1512
+ type: "Convolution"
1513
+ bottom: "inception_5a/output"
1514
+ top: "inception_5b/3x3_reduce"
1515
+ param {
1516
+ lr_mult: 1
1517
+ decay_mult: 1
1518
+ }
1519
+ param {
1520
+ lr_mult: 2
1521
+ decay_mult: 0
1522
+ }
1523
+ convolution_param {
1524
+ num_output: 192
1525
+ kernel_size: 1
1526
+ }
1527
+ }
1528
+ layer {
1529
+ name: "inception_5b/relu_3x3_reduce"
1530
+ type: "ReLU"
1531
+ bottom: "inception_5b/3x3_reduce"
1532
+ top: "inception_5b/3x3_reduce"
1533
+ }
1534
+ layer {
1535
+ name: "inception_5b/3x3"
1536
+ type: "Convolution"
1537
+ bottom: "inception_5b/3x3_reduce"
1538
+ top: "inception_5b/3x3"
1539
+ param {
1540
+ lr_mult: 1
1541
+ decay_mult: 1
1542
+ }
1543
+ param {
1544
+ lr_mult: 2
1545
+ decay_mult: 0
1546
+ }
1547
+ convolution_param {
1548
+ num_output: 384
1549
+ pad: 1
1550
+ kernel_size: 3
1551
+ }
1552
+ }
1553
+ layer {
1554
+ name: "inception_5b/relu_3x3"
1555
+ type: "ReLU"
1556
+ bottom: "inception_5b/3x3"
1557
+ top: "inception_5b/3x3"
1558
+ }
1559
+ layer {
1560
+ name: "inception_5b/5x5_reduce"
1561
+ type: "Convolution"
1562
+ bottom: "inception_5a/output"
1563
+ top: "inception_5b/5x5_reduce"
1564
+ param {
1565
+ lr_mult: 1
1566
+ decay_mult: 1
1567
+ }
1568
+ param {
1569
+ lr_mult: 2
1570
+ decay_mult: 0
1571
+ }
1572
+ convolution_param {
1573
+ num_output: 48
1574
+ kernel_size: 1
1575
+ }
1576
+ }
1577
+ layer {
1578
+ name: "inception_5b/relu_5x5_reduce"
1579
+ type: "ReLU"
1580
+ bottom: "inception_5b/5x5_reduce"
1581
+ top: "inception_5b/5x5_reduce"
1582
+ }
1583
+ layer {
1584
+ name: "inception_5b/5x5"
1585
+ type: "Convolution"
1586
+ bottom: "inception_5b/5x5_reduce"
1587
+ top: "inception_5b/5x5"
1588
+ param {
1589
+ lr_mult: 1
1590
+ decay_mult: 1
1591
+ }
1592
+ param {
1593
+ lr_mult: 2
1594
+ decay_mult: 0
1595
+ }
1596
+ convolution_param {
1597
+ num_output: 128
1598
+ pad: 2
1599
+ kernel_size: 5
1600
+ }
1601
+ }
1602
+ layer {
1603
+ name: "inception_5b/relu_5x5"
1604
+ type: "ReLU"
1605
+ bottom: "inception_5b/5x5"
1606
+ top: "inception_5b/5x5"
1607
+ }
1608
+ layer {
1609
+ name: "inception_5b/pool"
1610
+ type: "Pooling"
1611
+ bottom: "inception_5a/output"
1612
+ top: "inception_5b/pool"
1613
+ pooling_param {
1614
+ pool: MAX
1615
+ kernel_size: 3
1616
+ stride: 1
1617
+ pad: 1
1618
+ }
1619
+ }
1620
+ layer {
1621
+ name: "inception_5b/pool_proj"
1622
+ type: "Convolution"
1623
+ bottom: "inception_5b/pool"
1624
+ top: "inception_5b/pool_proj"
1625
+ param {
1626
+ lr_mult: 1
1627
+ decay_mult: 1
1628
+ }
1629
+ param {
1630
+ lr_mult: 2
1631
+ decay_mult: 0
1632
+ }
1633
+ convolution_param {
1634
+ num_output: 128
1635
+ kernel_size: 1
1636
+ }
1637
+ }
1638
+ layer {
1639
+ name: "inception_5b/relu_pool_proj"
1640
+ type: "ReLU"
1641
+ bottom: "inception_5b/pool_proj"
1642
+ top: "inception_5b/pool_proj"
1643
+ }
1644
+ layer {
1645
+ name: "inception_5b/output"
1646
+ type: "Concat"
1647
+ bottom: "inception_5b/1x1"
1648
+ bottom: "inception_5b/3x3"
1649
+ bottom: "inception_5b/5x5"
1650
+ bottom: "inception_5b/pool_proj"
1651
+ top: "inception_5b/output"
1652
+ }
1653
+ layer {
1654
+ name: "pool5/7x7_s1"
1655
+ type: "Pooling"
1656
+ bottom: "inception_5b/output"
1657
+ top: "pool5/7x7_s1"
1658
+ pooling_param {
1659
+ pool: AVE
1660
+ kernel_size: 7
1661
+ stride: 1
1662
+ }
1663
+ }
1664
+ layer {
1665
+ name: "pool5/drop_7x7_s1"
1666
+ type: "Dropout"
1667
+ bottom: "pool5/7x7_s1"
1668
+ top: "pool5/7x7_s1"
1669
+ dropout_param {
1670
+ dropout_ratio: 0.4
1671
+ }
1672
+ }
1673
+ layer {
1674
+ name: "loss3/classifier_agexgender"
1675
+ type: "InnerProduct"
1676
+ bottom: "pool5/7x7_s1"
1677
+ top: "loss3/classifier_agexgender"
1678
+ param {
1679
+ lr_mult: 1
1680
+ decay_mult: 1
1681
+ }
1682
+ param {
1683
+ lr_mult: 2
1684
+ decay_mult: 0
1685
+ }
1686
+ inner_product_param {
1687
+ num_output: 8
1688
+ }
1689
+ }
1690
+ layer {
1691
+ name: "loss3/loss3"
1692
+ type: "Softmax"
1693
+ bottom: "loss3/classifier_agexgender"
1694
+ top: "loss3/loss3"
1695
+ loss_weight: 1
1696
+ }
beauty_resnet.caffemodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:27d1dbdbc27663cda3c222181d207e02a0560e2c6f7fdd6c01ed9bd5db552404
3
+ size 44774443
beauty_resnet.prototxt ADDED
@@ -0,0 +1,1231 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: "ResNet-18-deploy"
2
+ input: "data"
3
+ input_dim: 1
4
+ input_dim: 3
5
+ input_dim: 224
6
+ input_dim: 224
7
+
8
+
9
+
10
+ layer {
11
+ bottom: "data"
12
+ top: "conv1"
13
+ name: "conv1"
14
+ type: "Convolution"
15
+ param {
16
+ name: "conv1_w"
17
+ lr_mult: 1
18
+ decay_mult: 1
19
+ }
20
+ convolution_param {
21
+ num_output: 64
22
+ kernel_size: 7
23
+ pad: 3
24
+ stride: 2
25
+ weight_filler {
26
+ type: "msra"
27
+ }
28
+ bias_term: false
29
+
30
+ }
31
+ }
32
+
33
+ layer {
34
+ bottom: "conv1"
35
+ top: "conv1"
36
+ name: "bn_conv1"
37
+ type: "BatchNorm"
38
+ batch_norm_param {
39
+ # moving_average_fraction: 0.9
40
+ use_global_stats: true
41
+ }
42
+
43
+ }
44
+
45
+ layer {
46
+ bottom: "conv1"
47
+ top: "conv1"
48
+ name: "scale_conv1"
49
+ type: "Scale"
50
+ scale_param {
51
+ bias_term: true
52
+ }
53
+ }
54
+
55
+ layer {
56
+ bottom: "conv1"
57
+ top: "conv1"
58
+ name: "conv1_relu"
59
+ type: "ReLU"
60
+ }
61
+
62
+ layer {
63
+ bottom: "conv1"
64
+ top: "pool1"
65
+ name: "pool1"
66
+ type: "Pooling"
67
+ pooling_param {
68
+ kernel_size: 3
69
+ stride: 2
70
+ pool: MAX
71
+ }
72
+ }
73
+
74
+ layer {
75
+ bottom: "pool1"
76
+ top: "res2a_branch1"
77
+ name: "res2a_branch1"
78
+ type: "Convolution"
79
+ param {
80
+ name: "res2a_branch1_w"
81
+ lr_mult: 1
82
+ decay_mult: 1
83
+ }
84
+ convolution_param {
85
+ num_output: 64
86
+ kernel_size: 1
87
+ pad: 0
88
+ stride: 1
89
+ weight_filler {
90
+ type: "msra"
91
+ }
92
+ bias_term: false
93
+
94
+ }
95
+ }
96
+
97
+ layer {
98
+ bottom: "res2a_branch1"
99
+ top: "res2a_branch1"
100
+ name: "bn2a_branch1"
101
+ type: "BatchNorm"
102
+ batch_norm_param {
103
+ # moving_average_fraction: 0.9
104
+ use_global_stats: true
105
+ }
106
+
107
+
108
+ }
109
+
110
+ layer {
111
+ bottom: "res2a_branch1"
112
+ top: "res2a_branch1"
113
+ name: "scale2a_branch1"
114
+ type: "Scale"
115
+ scale_param {
116
+ bias_term: true
117
+ }
118
+ }
119
+
120
+ layer {
121
+ bottom: "pool1"
122
+ top: "res2a_branch2a"
123
+ name: "res2a_branch2a"
124
+ type: "Convolution"
125
+ param {
126
+ name: "res2a_branch2a_w"
127
+ lr_mult: 1
128
+ decay_mult: 1
129
+ }
130
+ convolution_param {
131
+ num_output: 64
132
+ kernel_size: 3
133
+ pad: 1
134
+ stride: 1
135
+ weight_filler {
136
+ type: "msra"
137
+ }
138
+ bias_term: false
139
+
140
+ }
141
+ }
142
+
143
+ layer {
144
+ bottom: "res2a_branch2a"
145
+ top: "res2a_branch2a"
146
+ name: "bn2a_branch2a"
147
+ type: "BatchNorm"
148
+ batch_norm_param {
149
+ # moving_average_fraction: 0.9
150
+ use_global_stats: true
151
+ }
152
+
153
+
154
+ }
155
+
156
+ layer {
157
+ bottom: "res2a_branch2a"
158
+ top: "res2a_branch2a"
159
+ name: "scale2a_branch2a"
160
+ type: "Scale"
161
+ scale_param {
162
+ bias_term: true
163
+ }
164
+ }
165
+
166
+ layer {
167
+ bottom: "res2a_branch2a"
168
+ top: "res2a_branch2a"
169
+ name: "res2a_branch2a_relu"
170
+ type: "ReLU"
171
+ }
172
+
173
+ layer {
174
+ bottom: "res2a_branch2a"
175
+ top: "res2a_branch2b"
176
+ name: "res2a_branch2b"
177
+ type: "Convolution"
178
+ param {
179
+ name: "res2a_branch2b_w"
180
+ lr_mult: 1
181
+ decay_mult: 1
182
+ }
183
+ convolution_param {
184
+ num_output: 64
185
+ kernel_size: 3
186
+ pad: 1
187
+ stride: 1
188
+ weight_filler {
189
+ type: "msra"
190
+ }
191
+ bias_term: false
192
+
193
+ }
194
+ }
195
+
196
+ layer {
197
+ bottom: "res2a_branch2b"
198
+ top: "res2a_branch2b"
199
+ name: "bn2a_branch2b"
200
+ type: "BatchNorm"
201
+ batch_norm_param {
202
+ # moving_average_fraction: 0.9
203
+ use_global_stats: true
204
+ }
205
+
206
+
207
+ }
208
+
209
+ layer {
210
+ bottom: "res2a_branch2b"
211
+ top: "res2a_branch2b"
212
+ name: "scale2a_branch2b"
213
+ type: "Scale"
214
+ scale_param {
215
+ bias_term: true
216
+ }
217
+ }
218
+
219
+ layer {
220
+ bottom: "res2a_branch1"
221
+ bottom: "res2a_branch2b"
222
+ top: "res2a"
223
+ name: "res2a"
224
+ type: "Eltwise"
225
+ eltwise_param {
226
+ operation: SUM
227
+ }
228
+ }
229
+
230
+ layer {
231
+ bottom: "res2a"
232
+ top: "res2a"
233
+ name: "res2a_relu"
234
+ type: "ReLU"
235
+ }
236
+
237
+ layer {
238
+ bottom: "res2a"
239
+ top: "res2b_branch2a"
240
+ name: "res2b_branch2a"
241
+ type: "Convolution"
242
+ param {
243
+ name: "res2b_branch2a_w"
244
+ lr_mult: 1
245
+ decay_mult: 1
246
+ }
247
+ convolution_param {
248
+ num_output: 64
249
+ kernel_size: 3
250
+ pad: 1
251
+ stride: 1
252
+ weight_filler {
253
+ type: "msra"
254
+ }
255
+ bias_term: false
256
+
257
+ }
258
+ }
259
+
260
+ layer {
261
+ bottom: "res2b_branch2a"
262
+ top: "res2b_branch2a"
263
+ name: "bn2b_branch2a"
264
+ type: "BatchNorm"
265
+ batch_norm_param {
266
+ # moving_average_fraction: 0.9
267
+ use_global_stats: true
268
+ }
269
+
270
+
271
+ }
272
+
273
+ layer {
274
+ bottom: "res2b_branch2a"
275
+ top: "res2b_branch2a"
276
+ name: "scale2b_branch2a"
277
+ type: "Scale"
278
+ scale_param {
279
+ bias_term: true
280
+ }
281
+ }
282
+
283
+ layer {
284
+ bottom: "res2b_branch2a"
285
+ top: "res2b_branch2a"
286
+ name: "res2b_branch2a_relu"
287
+ type: "ReLU"
288
+ }
289
+
290
+ layer {
291
+ bottom: "res2b_branch2a"
292
+ top: "res2b_branch2b"
293
+ name: "res2b_branch2b"
294
+ type: "Convolution"
295
+ param {
296
+ name: "res2b_branch2b_w"
297
+ lr_mult: 1
298
+ decay_mult: 1
299
+ }
300
+ convolution_param {
301
+ num_output: 64
302
+ kernel_size: 3
303
+ pad: 1
304
+ stride: 1
305
+ weight_filler {
306
+ type: "msra"
307
+ }
308
+ bias_term: false
309
+
310
+ }
311
+ }
312
+
313
+ layer {
314
+ bottom: "res2b_branch2b"
315
+ top: "res2b_branch2b"
316
+ name: "bn2b_branch2b"
317
+ type: "BatchNorm"
318
+ batch_norm_param {
319
+ # moving_average_fraction: 0.9
320
+ use_global_stats: true
321
+ }
322
+
323
+
324
+ }
325
+
326
+ layer {
327
+ bottom: "res2b_branch2b"
328
+ top: "res2b_branch2b"
329
+ name: "scale2b_branch2b"
330
+ type: "Scale"
331
+ scale_param {
332
+ bias_term: true
333
+ }
334
+ }
335
+
336
+ layer {
337
+ bottom: "res2a"
338
+ bottom: "res2b_branch2b"
339
+ top: "res2b"
340
+ name: "res2b"
341
+ type: "Eltwise"
342
+ eltwise_param {
343
+ operation: SUM
344
+ }
345
+ }
346
+
347
+ layer {
348
+ bottom: "res2b"
349
+ top: "res2b"
350
+ name: "res2b_relu"
351
+ type: "ReLU"
352
+ }
353
+
354
+ layer {
355
+ bottom: "res2b"
356
+ top: "res3a_branch1"
357
+ name: "res3a_branch1"
358
+ type: "Convolution"
359
+ param {
360
+ name: "res3a_branch1_w"
361
+ lr_mult: 1
362
+ decay_mult: 1
363
+ }
364
+ convolution_param {
365
+ num_output: 128
366
+ kernel_size: 1
367
+ pad: 0
368
+ stride: 2
369
+ weight_filler {
370
+ type: "msra"
371
+ }
372
+ bias_term: false
373
+
374
+ }
375
+ }
376
+
377
+ layer {
378
+ bottom: "res3a_branch1"
379
+ top: "res3a_branch1"
380
+ name: "bn3a_branch1"
381
+ type: "BatchNorm"
382
+ batch_norm_param {
383
+ # moving_average_fraction: 0.9
384
+ use_global_stats: true
385
+ }
386
+
387
+
388
+ }
389
+
390
+ layer {
391
+ bottom: "res3a_branch1"
392
+ top: "res3a_branch1"
393
+ name: "scale3a_branch1"
394
+ type: "Scale"
395
+ scale_param {
396
+ bias_term: true
397
+ }
398
+ }
399
+
400
+ layer {
401
+ bottom: "res2b"
402
+ top: "res3a_branch2a"
403
+ name: "res3a_branch2a"
404
+ type: "Convolution"
405
+ param {
406
+ name: "res3a_branch2a_w"
407
+ lr_mult: 1
408
+ decay_mult: 1
409
+ }
410
+ convolution_param {
411
+ num_output: 128
412
+ kernel_size: 3
413
+ pad: 1
414
+ stride: 2
415
+ weight_filler {
416
+ type: "msra"
417
+ }
418
+ bias_term: false
419
+
420
+ }
421
+ }
422
+
423
+ layer {
424
+ bottom: "res3a_branch2a"
425
+ top: "res3a_branch2a"
426
+ name: "bn3a_branch2a"
427
+ type: "BatchNorm"
428
+ batch_norm_param {
429
+ # moving_average_fraction: 0.9
430
+ use_global_stats: true
431
+ }
432
+
433
+
434
+ }
435
+
436
+ layer {
437
+ bottom: "res3a_branch2a"
438
+ top: "res3a_branch2a"
439
+ name: "scale3a_branch2a"
440
+ type: "Scale"
441
+ scale_param {
442
+ bias_term: true
443
+ }
444
+ }
445
+
446
+ layer {
447
+ bottom: "res3a_branch2a"
448
+ top: "res3a_branch2a"
449
+ name: "res3a_branch2a_relu"
450
+ type: "ReLU"
451
+ }
452
+
453
+ layer {
454
+ bottom: "res3a_branch2a"
455
+ top: "res3a_branch2b"
456
+ name: "res3a_branch2b"
457
+ type: "Convolution"
458
+ param {
459
+ name: "res3a_branch2b_w"
460
+ lr_mult: 1
461
+ decay_mult: 1
462
+ }
463
+ convolution_param {
464
+ num_output: 128
465
+ kernel_size: 3
466
+ pad: 1
467
+ stride: 1
468
+ weight_filler {
469
+ type: "msra"
470
+ }
471
+ bias_term: false
472
+
473
+ }
474
+ }
475
+
476
+ layer {
477
+ bottom: "res3a_branch2b"
478
+ top: "res3a_branch2b"
479
+ name: "bn3a_branch2b"
480
+ type: "BatchNorm"
481
+ batch_norm_param {
482
+ # moving_average_fraction: 0.9
483
+ use_global_stats: true
484
+ }
485
+
486
+
487
+ }
488
+
489
+ layer {
490
+ bottom: "res3a_branch2b"
491
+ top: "res3a_branch2b"
492
+ name: "scale3a_branch2b"
493
+ type: "Scale"
494
+ scale_param {
495
+ bias_term: true
496
+ }
497
+ }
498
+
499
+ layer {
500
+ bottom: "res3a_branch1"
501
+ bottom: "res3a_branch2b"
502
+ top: "res3a"
503
+ name: "res3a"
504
+ type: "Eltwise"
505
+ eltwise_param {
506
+ operation: SUM
507
+ }
508
+ }
509
+
510
+ layer {
511
+ bottom: "res3a"
512
+ top: "res3a"
513
+ name: "res3a_relu"
514
+ type: "ReLU"
515
+ }
516
+
517
+ layer {
518
+ bottom: "res3a"
519
+ top: "res3b_branch2a"
520
+ name: "res3b_branch2a"
521
+ type: "Convolution"
522
+ param {
523
+ name: "res3b_branch2a_w"
524
+ lr_mult: 1
525
+ decay_mult: 1
526
+ }
527
+ convolution_param {
528
+ num_output: 128
529
+ kernel_size: 3
530
+ pad: 1
531
+ stride: 1
532
+ weight_filler {
533
+ type: "msra"
534
+ }
535
+ bias_term: false
536
+
537
+ }
538
+ }
539
+
540
+ layer {
541
+ bottom: "res3b_branch2a"
542
+ top: "res3b_branch2a"
543
+ name: "bn3b_branch2a"
544
+ type: "BatchNorm"
545
+ batch_norm_param {
546
+ # moving_average_fraction: 0.9
547
+ use_global_stats: true
548
+ }
549
+
550
+
551
+ }
552
+
553
+ layer {
554
+ bottom: "res3b_branch2a"
555
+ top: "res3b_branch2a"
556
+ name: "scale3b_branch2a"
557
+ type: "Scale"
558
+ scale_param {
559
+ bias_term: true
560
+ }
561
+ }
562
+
563
+ layer {
564
+ bottom: "res3b_branch2a"
565
+ top: "res3b_branch2a"
566
+ name: "res3b_branch2a_relu"
567
+ type: "ReLU"
568
+ }
569
+
570
+ layer {
571
+ bottom: "res3b_branch2a"
572
+ top: "res3b_branch2b"
573
+ name: "res3b_branch2b"
574
+ type: "Convolution"
575
+ param {
576
+ name: "res3b_branch2b_w"
577
+ lr_mult: 1
578
+ decay_mult: 1
579
+ }
580
+ convolution_param {
581
+ num_output: 128
582
+ kernel_size: 3
583
+ pad: 1
584
+ stride: 1
585
+ weight_filler {
586
+ type: "msra"
587
+ }
588
+ bias_term: false
589
+
590
+ }
591
+ }
592
+
593
+ layer {
594
+ bottom: "res3b_branch2b"
595
+ top: "res3b_branch2b"
596
+ name: "bn3b_branch2b"
597
+ type: "BatchNorm"
598
+ batch_norm_param {
599
+ # moving_average_fraction: 0.9
600
+ use_global_stats: true
601
+ }
602
+
603
+
604
+ }
605
+
606
+ layer {
607
+ bottom: "res3b_branch2b"
608
+ top: "res3b_branch2b"
609
+ name: "scale3b_branch2b"
610
+ type: "Scale"
611
+ scale_param {
612
+ bias_term: true
613
+ }
614
+ }
615
+
616
+ layer {
617
+ bottom: "res3a"
618
+ bottom: "res3b_branch2b"
619
+ top: "res3b"
620
+ name: "res3b"
621
+ type: "Eltwise"
622
+ eltwise_param {
623
+ operation: SUM
624
+ }
625
+ }
626
+
627
+ layer {
628
+ bottom: "res3b"
629
+ top: "res3b"
630
+ name: "res3b_relu"
631
+ type: "ReLU"
632
+ }
633
+
634
+ layer {
635
+ bottom: "res3b"
636
+ top: "res4a_branch1"
637
+ name: "res4a_branch1"
638
+ type: "Convolution"
639
+ param {
640
+ name: "res4a_branch1_w"
641
+ lr_mult: 1
642
+ decay_mult: 1
643
+ }
644
+ convolution_param {
645
+ num_output: 256
646
+ kernel_size: 1
647
+ pad: 0
648
+ stride: 2
649
+ weight_filler {
650
+ type: "msra"
651
+ }
652
+ bias_term: false
653
+
654
+ }
655
+ }
656
+
657
+ layer {
658
+ bottom: "res4a_branch1"
659
+ top: "res4a_branch1"
660
+ name: "bn4a_branch1"
661
+ type: "BatchNorm"
662
+ batch_norm_param {
663
+ # moving_average_fraction: 0.9
664
+ use_global_stats: true
665
+ }
666
+
667
+
668
+ }
669
+
670
+ layer {
671
+ bottom: "res4a_branch1"
672
+ top: "res4a_branch1"
673
+ name: "scale4a_branch1"
674
+ type: "Scale"
675
+ scale_param {
676
+ bias_term: true
677
+ }
678
+ }
679
+
680
+ layer {
681
+ bottom: "res3b"
682
+ top: "res4a_branch2a"
683
+ name: "res4a_branch2a"
684
+ type: "Convolution"
685
+ param {
686
+ name: "res4a_branch2a_w"
687
+ lr_mult: 1
688
+ decay_mult: 1
689
+ }
690
+ convolution_param {
691
+ num_output: 256
692
+ kernel_size: 3
693
+ pad: 1
694
+ stride: 2
695
+ weight_filler {
696
+ type: "msra"
697
+ }
698
+ bias_term: false
699
+
700
+ }
701
+ }
702
+
703
+ layer {
704
+ bottom: "res4a_branch2a"
705
+ top: "res4a_branch2a"
706
+ name: "bn4a_branch2a"
707
+ type: "BatchNorm"
708
+ batch_norm_param {
709
+ # moving_average_fraction: 0.9
710
+ use_global_stats: true
711
+ }
712
+
713
+
714
+ }
715
+
716
+ layer {
717
+ bottom: "res4a_branch2a"
718
+ top: "res4a_branch2a"
719
+ name: "scale4a_branch2a"
720
+ type: "Scale"
721
+ scale_param {
722
+ bias_term: true
723
+ }
724
+ }
725
+
726
+ layer {
727
+ bottom: "res4a_branch2a"
728
+ top: "res4a_branch2a"
729
+ name: "res4a_branch2a_relu"
730
+ type: "ReLU"
731
+ }
732
+
733
+ layer {
734
+ bottom: "res4a_branch2a"
735
+ top: "res4a_branch2b"
736
+ name: "res4a_branch2b"
737
+ type: "Convolution"
738
+ param {
739
+ name: "res4a_branch2b_w"
740
+ lr_mult: 1
741
+ decay_mult: 1
742
+ }
743
+ convolution_param {
744
+ num_output: 256
745
+ kernel_size: 3
746
+ pad: 1
747
+ stride: 1
748
+ weight_filler {
749
+ type: "msra"
750
+ }
751
+ bias_term: false
752
+
753
+ }
754
+ }
755
+
756
+ layer {
757
+ bottom: "res4a_branch2b"
758
+ top: "res4a_branch2b"
759
+ name: "bn4a_branch2b"
760
+ type: "BatchNorm"
761
+ batch_norm_param {
762
+ # moving_average_fraction: 0.9
763
+ use_global_stats: true
764
+ }
765
+
766
+
767
+ }
768
+
769
+ layer {
770
+ bottom: "res4a_branch2b"
771
+ top: "res4a_branch2b"
772
+ name: "scale4a_branch2b"
773
+ type: "Scale"
774
+ scale_param {
775
+ bias_term: true
776
+ }
777
+ }
778
+
779
+ layer {
780
+ bottom: "res4a_branch1"
781
+ bottom: "res4a_branch2b"
782
+ top: "res4a"
783
+ name: "res4a"
784
+ type: "Eltwise"
785
+ eltwise_param {
786
+ operation: SUM
787
+ }
788
+ }
789
+
790
+ layer {
791
+ bottom: "res4a"
792
+ top: "res4a"
793
+ name: "res4a_relu"
794
+ type: "ReLU"
795
+ }
796
+
797
+ layer {
798
+ bottom: "res4a"
799
+ top: "res4b_branch2a"
800
+ name: "res4b_branch2a"
801
+ type: "Convolution"
802
+ param {
803
+ name: "res4b_branch2a_w"
804
+ lr_mult: 1
805
+ decay_mult: 1
806
+ }
807
+ convolution_param {
808
+ num_output: 256
809
+ kernel_size: 3
810
+ pad: 1
811
+ stride: 1
812
+ weight_filler {
813
+ type: "msra"
814
+ }
815
+ bias_term: false
816
+
817
+ }
818
+ }
819
+
820
+ layer {
821
+ bottom: "res4b_branch2a"
822
+ top: "res4b_branch2a"
823
+ name: "bn4b_branch2a"
824
+ type: "BatchNorm"
825
+ batch_norm_param {
826
+ # moving_average_fraction: 0.9
827
+ use_global_stats: true
828
+ }
829
+
830
+
831
+ }
832
+
833
+ layer {
834
+ bottom: "res4b_branch2a"
835
+ top: "res4b_branch2a"
836
+ name: "scale4b_branch2a"
837
+ type: "Scale"
838
+ scale_param {
839
+ bias_term: true
840
+ }
841
+ }
842
+
843
+ layer {
844
+ bottom: "res4b_branch2a"
845
+ top: "res4b_branch2a"
846
+ name: "res4b_branch2a_relu"
847
+ type: "ReLU"
848
+ }
849
+
850
+ layer {
851
+ bottom: "res4b_branch2a"
852
+ top: "res4b_branch2b"
853
+ name: "res4b_branch2b"
854
+ type: "Convolution"
855
+ param {
856
+ name: "res4b_branch2b_w"
857
+ lr_mult: 1
858
+ decay_mult: 1
859
+ }
860
+ convolution_param {
861
+ num_output: 256
862
+ kernel_size: 3
863
+ pad: 1
864
+ stride: 1
865
+ weight_filler {
866
+ type: "msra"
867
+ }
868
+ bias_term: false
869
+
870
+ }
871
+ }
872
+
873
+ layer {
874
+ bottom: "res4b_branch2b"
875
+ top: "res4b_branch2b"
876
+ name: "bn4b_branch2b"
877
+ type: "BatchNorm"
878
+ batch_norm_param {
879
+ # moving_average_fraction: 0.9
880
+ use_global_stats: true
881
+ }
882
+
883
+
884
+ }
885
+
886
+ layer {
887
+ bottom: "res4b_branch2b"
888
+ top: "res4b_branch2b"
889
+ name: "scale4b_branch2b"
890
+ type: "Scale"
891
+ scale_param {
892
+ bias_term: true
893
+ }
894
+ }
895
+
896
+ layer {
897
+ bottom: "res4a"
898
+ bottom: "res4b_branch2b"
899
+ top: "res4b"
900
+ name: "res4b"
901
+ type: "Eltwise"
902
+ eltwise_param {
903
+ operation: SUM
904
+ }
905
+ }
906
+
907
+ layer {
908
+ bottom: "res4b"
909
+ top: "res4b"
910
+ name: "res4b_relu"
911
+ type: "ReLU"
912
+ }
913
+
914
+ layer {
915
+ bottom: "res4b"
916
+ top: "res5a_branch1"
917
+ name: "res5a_branch1"
918
+ type: "Convolution"
919
+ param {
920
+ name: "res5a_branch1_w"
921
+ lr_mult: 1
922
+ decay_mult: 1
923
+ }
924
+ convolution_param {
925
+ num_output: 512
926
+ kernel_size: 1
927
+ pad: 0
928
+ stride: 2
929
+ weight_filler {
930
+ type: "msra"
931
+ }
932
+ bias_term: false
933
+
934
+ }
935
+ }
936
+
937
+ layer {
938
+ bottom: "res5a_branch1"
939
+ top: "res5a_branch1"
940
+ name: "bn5a_branch1"
941
+ type: "BatchNorm"
942
+ batch_norm_param {
943
+ # moving_average_fraction: 0.9
944
+ use_global_stats: true
945
+ }
946
+
947
+
948
+ }
949
+
950
+ layer {
951
+ bottom: "res5a_branch1"
952
+ top: "res5a_branch1"
953
+ name: "scale5a_branch1"
954
+ type: "Scale"
955
+ scale_param {
956
+ bias_term: true
957
+ }
958
+ }
959
+
960
+ layer {
961
+ bottom: "res4b"
962
+ top: "res5a_branch2a"
963
+ name: "res5a_branch2a"
964
+ type: "Convolution"
965
+ param {
966
+ name: "res5a_branch2a_w"
967
+ lr_mult: 1
968
+ decay_mult: 1
969
+ }
970
+ convolution_param {
971
+ num_output: 512
972
+ kernel_size: 3
973
+ pad: 1
974
+ stride: 2
975
+ weight_filler {
976
+ type: "msra"
977
+ }
978
+ bias_term: false
979
+
980
+ }
981
+ }
982
+
983
+ layer {
984
+ bottom: "res5a_branch2a"
985
+ top: "res5a_branch2a"
986
+ name: "bn5a_branch2a"
987
+ type: "BatchNorm"
988
+ batch_norm_param {
989
+ # moving_average_fraction: 0.9
990
+ use_global_stats: true
991
+ }
992
+
993
+
994
+ }
995
+
996
+ layer {
997
+ bottom: "res5a_branch2a"
998
+ top: "res5a_branch2a"
999
+ name: "scale5a_branch2a"
1000
+ type: "Scale"
1001
+ scale_param {
1002
+ bias_term: true
1003
+ }
1004
+ }
1005
+
1006
+ layer {
1007
+ bottom: "res5a_branch2a"
1008
+ top: "res5a_branch2a"
1009
+ name: "res5a_branch2a_relu"
1010
+ type: "ReLU"
1011
+ }
1012
+
1013
+ layer {
1014
+ bottom: "res5a_branch2a"
1015
+ top: "res5a_branch2b"
1016
+ name: "res5a_branch2b"
1017
+ type: "Convolution"
1018
+ param {
1019
+ name: "res5a_branch2b_w"
1020
+ lr_mult: 1
1021
+ decay_mult: 1
1022
+ }
1023
+ convolution_param {
1024
+ num_output: 512
1025
+ kernel_size: 3
1026
+ pad: 1
1027
+ stride: 1
1028
+ weight_filler {
1029
+ type: "msra"
1030
+ }
1031
+ bias_term: false
1032
+
1033
+ }
1034
+ }
1035
+
1036
+ layer {
1037
+ bottom: "res5a_branch2b"
1038
+ top: "res5a_branch2b"
1039
+ name: "bn5a_branch2b"
1040
+ type: "BatchNorm"
1041
+ batch_norm_param {
1042
+ # moving_average_fraction: 0.9
1043
+ use_global_stats: true
1044
+ }
1045
+
1046
+
1047
+ }
1048
+
1049
+ layer {
1050
+ bottom: "res5a_branch2b"
1051
+ top: "res5a_branch2b"
1052
+ name: "scale5a_branch2b"
1053
+ type: "Scale"
1054
+ scale_param {
1055
+ bias_term: true
1056
+ }
1057
+ }
1058
+
1059
+ layer {
1060
+ bottom: "res5a_branch1"
1061
+ bottom: "res5a_branch2b"
1062
+ top: "res5a"
1063
+ name: "res5a"
1064
+ type: "Eltwise"
1065
+ eltwise_param {
1066
+ operation: SUM
1067
+ }
1068
+ }
1069
+
1070
+ layer {
1071
+ bottom: "res5a"
1072
+ top: "res5a"
1073
+ name: "res5a_relu"
1074
+ type: "ReLU"
1075
+ }
1076
+
1077
+ layer {
1078
+ bottom: "res5a"
1079
+ top: "res5b_branch2a"
1080
+ name: "res5b_branch2a"
1081
+ type: "Convolution"
1082
+ param {
1083
+ name: "res5b_branch2a_w"
1084
+ lr_mult: 1
1085
+ decay_mult: 1
1086
+ }
1087
+ convolution_param {
1088
+ num_output: 512
1089
+ kernel_size: 3
1090
+ pad: 1
1091
+ stride: 1
1092
+ weight_filler {
1093
+ type: "msra"
1094
+ }
1095
+ bias_term: false
1096
+
1097
+ }
1098
+ }
1099
+
1100
+ layer {
1101
+ bottom: "res5b_branch2a"
1102
+ top: "res5b_branch2a"
1103
+ name: "bn5b_branch2a"
1104
+ type: "BatchNorm"
1105
+ batch_norm_param {
1106
+ # moving_average_fraction: 0.9
1107
+ use_global_stats: true
1108
+ }
1109
+
1110
+
1111
+ }
1112
+
1113
+ layer {
1114
+ bottom: "res5b_branch2a"
1115
+ top: "res5b_branch2a"
1116
+ name: "scale5b_branch2a"
1117
+ type: "Scale"
1118
+ scale_param {
1119
+ bias_term: true
1120
+ }
1121
+ }
1122
+
1123
+ layer {
1124
+ bottom: "res5b_branch2a"
1125
+ top: "res5b_branch2a"
1126
+ name: "res5b_branch2a_relu"
1127
+ type: "ReLU"
1128
+ }
1129
+
1130
+ layer {
1131
+ bottom: "res5b_branch2a"
1132
+ top: "res5b_branch2b"
1133
+ name: "res5b_branch2b"
1134
+ type: "Convolution"
1135
+ param {
1136
+ name: "res5b_branch2b_w"
1137
+ lr_mult: 1
1138
+ decay_mult: 1
1139
+ }
1140
+ convolution_param {
1141
+ num_output: 512
1142
+ kernel_size: 3
1143
+ pad: 1
1144
+ stride: 1
1145
+ weight_filler {
1146
+ type: "msra"
1147
+ }
1148
+ bias_term: false
1149
+
1150
+ }
1151
+ }
1152
+
1153
+ layer {
1154
+ bottom: "res5b_branch2b"
1155
+ top: "res5b_branch2b"
1156
+ name: "bn5b_branch2b"
1157
+ type: "BatchNorm"
1158
+ batch_norm_param {
1159
+ # moving_average_fraction: 0.9
1160
+ use_global_stats: true
1161
+ }
1162
+
1163
+
1164
+ }
1165
+
1166
+ layer {
1167
+ bottom: "res5b_branch2b"
1168
+ top: "res5b_branch2b"
1169
+ name: "scale5b_branch2b"
1170
+ type: "Scale"
1171
+ scale_param {
1172
+ bias_term: true
1173
+ }
1174
+ }
1175
+
1176
+ layer {
1177
+ bottom: "res5a"
1178
+ bottom: "res5b_branch2b"
1179
+ top: "res5b"
1180
+ name: "res5b"
1181
+ type: "Eltwise"
1182
+ eltwise_param {
1183
+ operation: SUM
1184
+ }
1185
+ }
1186
+
1187
+ layer {
1188
+ bottom: "res5b"
1189
+ top: "res5b"
1190
+ name: "res5b_relu"
1191
+ type: "ReLU"
1192
+ }
1193
+
1194
+ layer {
1195
+ bottom: "res5b"
1196
+ top: "pool5"
1197
+ name: "pool5"
1198
+ type: "Pooling"
1199
+ pooling_param {
1200
+ kernel_size: 7
1201
+ stride: 1
1202
+ pool: AVE
1203
+ }
1204
+ }
1205
+
1206
+
1207
+ layer {
1208
+ name: "feat1"
1209
+ type: "InnerProduct"
1210
+ bottom: "pool5"
1211
+ top: "feat1"
1212
+ param {
1213
+ name: "feat1_w"
1214
+ }
1215
+ param {
1216
+ name: "feat1_b"
1217
+ }
1218
+ inner_product_param {
1219
+ num_output: 1
1220
+ weight_filler {
1221
+ type: "msra"
1222
+ std: 0.01
1223
+ }
1224
+ bias_filler {
1225
+ type: "constant"
1226
+ value: 0
1227
+ }
1228
+ }
1229
+ }
1230
+
1231
+
gender_googlenet.caffemodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0c4d566857ba21f646fbce054962e50bf4b6da431bce081259d354b05ededc18
3
+ size 41260491
gender_googlenet.prototxt ADDED
@@ -0,0 +1,1696 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: "GoogleNet"
2
+ input: "data"
3
+ input_shape {
4
+ dim: 1
5
+ dim: 3
6
+ dim: 224
7
+ dim: 224
8
+ }
9
+ layer {
10
+ name: "conv1/7x7_s2"
11
+ type: "Convolution"
12
+ bottom: "data"
13
+ top: "conv1/7x7_s2"
14
+ param {
15
+ lr_mult: 1
16
+ decay_mult: 1
17
+ }
18
+ param {
19
+ lr_mult: 2
20
+ decay_mult: 0
21
+ }
22
+ convolution_param {
23
+ num_output: 64
24
+ pad: 3
25
+ kernel_size: 7
26
+ stride: 2
27
+ }
28
+ }
29
+ layer {
30
+ name: "conv1/relu_7x7"
31
+ type: "ReLU"
32
+ bottom: "conv1/7x7_s2"
33
+ top: "conv1/7x7_s2"
34
+ }
35
+ layer {
36
+ name: "pool1/3x3_s2"
37
+ type: "Pooling"
38
+ bottom: "conv1/7x7_s2"
39
+ top: "pool1/3x3_s2"
40
+ pooling_param {
41
+ pool: MAX
42
+ kernel_size: 3
43
+ stride: 2
44
+ }
45
+ }
46
+ layer {
47
+ name: "pool1/norm1"
48
+ type: "LRN"
49
+ bottom: "pool1/3x3_s2"
50
+ top: "pool1/norm1"
51
+ lrn_param {
52
+ local_size: 5
53
+ alpha: 0.0001
54
+ beta: 0.75
55
+ }
56
+ }
57
+ layer {
58
+ name: "conv2/3x3_reduce"
59
+ type: "Convolution"
60
+ bottom: "pool1/norm1"
61
+ top: "conv2/3x3_reduce"
62
+ param {
63
+ lr_mult: 1
64
+ decay_mult: 1
65
+ }
66
+ param {
67
+ lr_mult: 2
68
+ decay_mult: 0
69
+ }
70
+ convolution_param {
71
+ num_output: 64
72
+ kernel_size: 1
73
+ }
74
+ }
75
+ layer {
76
+ name: "conv2/relu_3x3_reduce"
77
+ type: "ReLU"
78
+ bottom: "conv2/3x3_reduce"
79
+ top: "conv2/3x3_reduce"
80
+ }
81
+ layer {
82
+ name: "conv2/3x3"
83
+ type: "Convolution"
84
+ bottom: "conv2/3x3_reduce"
85
+ top: "conv2/3x3"
86
+ param {
87
+ lr_mult: 1
88
+ decay_mult: 1
89
+ }
90
+ param {
91
+ lr_mult: 2
92
+ decay_mult: 0
93
+ }
94
+ convolution_param {
95
+ num_output: 192
96
+ pad: 1
97
+ kernel_size: 3
98
+ }
99
+ }
100
+ layer {
101
+ name: "conv2/relu_3x3"
102
+ type: "ReLU"
103
+ bottom: "conv2/3x3"
104
+ top: "conv2/3x3"
105
+ }
106
+ layer {
107
+ name: "conv2/norm2"
108
+ type: "LRN"
109
+ bottom: "conv2/3x3"
110
+ top: "conv2/norm2"
111
+ lrn_param {
112
+ local_size: 5
113
+ alpha: 0.0001
114
+ beta: 0.75
115
+ }
116
+ }
117
+ layer {
118
+ name: "pool2/3x3_s2"
119
+ type: "Pooling"
120
+ bottom: "conv2/norm2"
121
+ top: "pool2/3x3_s2"
122
+ pooling_param {
123
+ pool: MAX
124
+ kernel_size: 3
125
+ stride: 2
126
+ }
127
+ }
128
+ layer {
129
+ name: "inception_3a/1x1"
130
+ type: "Convolution"
131
+ bottom: "pool2/3x3_s2"
132
+ top: "inception_3a/1x1"
133
+ param {
134
+ lr_mult: 1
135
+ decay_mult: 1
136
+ }
137
+ param {
138
+ lr_mult: 2
139
+ decay_mult: 0
140
+ }
141
+ convolution_param {
142
+ num_output: 64
143
+ kernel_size: 1
144
+ }
145
+ }
146
+ layer {
147
+ name: "inception_3a/relu_1x1"
148
+ type: "ReLU"
149
+ bottom: "inception_3a/1x1"
150
+ top: "inception_3a/1x1"
151
+ }
152
+ layer {
153
+ name: "inception_3a/3x3_reduce"
154
+ type: "Convolution"
155
+ bottom: "pool2/3x3_s2"
156
+ top: "inception_3a/3x3_reduce"
157
+ param {
158
+ lr_mult: 1
159
+ decay_mult: 1
160
+ }
161
+ param {
162
+ lr_mult: 2
163
+ decay_mult: 0
164
+ }
165
+ convolution_param {
166
+ num_output: 96
167
+ kernel_size: 1
168
+ }
169
+ }
170
+ layer {
171
+ name: "inception_3a/relu_3x3_reduce"
172
+ type: "ReLU"
173
+ bottom: "inception_3a/3x3_reduce"
174
+ top: "inception_3a/3x3_reduce"
175
+ }
176
+ layer {
177
+ name: "inception_3a/3x3"
178
+ type: "Convolution"
179
+ bottom: "inception_3a/3x3_reduce"
180
+ top: "inception_3a/3x3"
181
+ param {
182
+ lr_mult: 1
183
+ decay_mult: 1
184
+ }
185
+ param {
186
+ lr_mult: 2
187
+ decay_mult: 0
188
+ }
189
+ convolution_param {
190
+ num_output: 128
191
+ pad: 1
192
+ kernel_size: 3
193
+ }
194
+ }
195
+ layer {
196
+ name: "inception_3a/relu_3x3"
197
+ type: "ReLU"
198
+ bottom: "inception_3a/3x3"
199
+ top: "inception_3a/3x3"
200
+ }
201
+ layer {
202
+ name: "inception_3a/5x5_reduce"
203
+ type: "Convolution"
204
+ bottom: "pool2/3x3_s2"
205
+ top: "inception_3a/5x5_reduce"
206
+ param {
207
+ lr_mult: 1
208
+ decay_mult: 1
209
+ }
210
+ param {
211
+ lr_mult: 2
212
+ decay_mult: 0
213
+ }
214
+ convolution_param {
215
+ num_output: 16
216
+ kernel_size: 1
217
+ }
218
+ }
219
+ layer {
220
+ name: "inception_3a/relu_5x5_reduce"
221
+ type: "ReLU"
222
+ bottom: "inception_3a/5x5_reduce"
223
+ top: "inception_3a/5x5_reduce"
224
+ }
225
+ layer {
226
+ name: "inception_3a/5x5"
227
+ type: "Convolution"
228
+ bottom: "inception_3a/5x5_reduce"
229
+ top: "inception_3a/5x5"
230
+ param {
231
+ lr_mult: 1
232
+ decay_mult: 1
233
+ }
234
+ param {
235
+ lr_mult: 2
236
+ decay_mult: 0
237
+ }
238
+ convolution_param {
239
+ num_output: 32
240
+ pad: 2
241
+ kernel_size: 5
242
+ }
243
+ }
244
+ layer {
245
+ name: "inception_3a/relu_5x5"
246
+ type: "ReLU"
247
+ bottom: "inception_3a/5x5"
248
+ top: "inception_3a/5x5"
249
+ }
250
+ layer {
251
+ name: "inception_3a/pool"
252
+ type: "Pooling"
253
+ bottom: "pool2/3x3_s2"
254
+ top: "inception_3a/pool"
255
+ pooling_param {
256
+ pool: MAX
257
+ kernel_size: 3
258
+ stride: 1
259
+ pad: 1
260
+ }
261
+ }
262
+ layer {
263
+ name: "inception_3a/pool_proj"
264
+ type: "Convolution"
265
+ bottom: "inception_3a/pool"
266
+ top: "inception_3a/pool_proj"
267
+ param {
268
+ lr_mult: 1
269
+ decay_mult: 1
270
+ }
271
+ param {
272
+ lr_mult: 2
273
+ decay_mult: 0
274
+ }
275
+ convolution_param {
276
+ num_output: 32
277
+ kernel_size: 1
278
+ }
279
+ }
280
+ layer {
281
+ name: "inception_3a/relu_pool_proj"
282
+ type: "ReLU"
283
+ bottom: "inception_3a/pool_proj"
284
+ top: "inception_3a/pool_proj"
285
+ }
286
+ layer {
287
+ name: "inception_3a/output"
288
+ type: "Concat"
289
+ bottom: "inception_3a/1x1"
290
+ bottom: "inception_3a/3x3"
291
+ bottom: "inception_3a/5x5"
292
+ bottom: "inception_3a/pool_proj"
293
+ top: "inception_3a/output"
294
+ }
295
+ layer {
296
+ name: "inception_3b/1x1"
297
+ type: "Convolution"
298
+ bottom: "inception_3a/output"
299
+ top: "inception_3b/1x1"
300
+ param {
301
+ lr_mult: 1
302
+ decay_mult: 1
303
+ }
304
+ param {
305
+ lr_mult: 2
306
+ decay_mult: 0
307
+ }
308
+ convolution_param {
309
+ num_output: 128
310
+ kernel_size: 1
311
+ }
312
+ }
313
+ layer {
314
+ name: "inception_3b/relu_1x1"
315
+ type: "ReLU"
316
+ bottom: "inception_3b/1x1"
317
+ top: "inception_3b/1x1"
318
+ }
319
+ layer {
320
+ name: "inception_3b/3x3_reduce"
321
+ type: "Convolution"
322
+ bottom: "inception_3a/output"
323
+ top: "inception_3b/3x3_reduce"
324
+ param {
325
+ lr_mult: 1
326
+ decay_mult: 1
327
+ }
328
+ param {
329
+ lr_mult: 2
330
+ decay_mult: 0
331
+ }
332
+ convolution_param {
333
+ num_output: 128
334
+ kernel_size: 1
335
+ }
336
+ }
337
+ layer {
338
+ name: "inception_3b/relu_3x3_reduce"
339
+ type: "ReLU"
340
+ bottom: "inception_3b/3x3_reduce"
341
+ top: "inception_3b/3x3_reduce"
342
+ }
343
+ layer {
344
+ name: "inception_3b/3x3"
345
+ type: "Convolution"
346
+ bottom: "inception_3b/3x3_reduce"
347
+ top: "inception_3b/3x3"
348
+ param {
349
+ lr_mult: 1
350
+ decay_mult: 1
351
+ }
352
+ param {
353
+ lr_mult: 2
354
+ decay_mult: 0
355
+ }
356
+ convolution_param {
357
+ num_output: 192
358
+ pad: 1
359
+ kernel_size: 3
360
+ }
361
+ }
362
+ layer {
363
+ name: "inception_3b/relu_3x3"
364
+ type: "ReLU"
365
+ bottom: "inception_3b/3x3"
366
+ top: "inception_3b/3x3"
367
+ }
368
+ layer {
369
+ name: "inception_3b/5x5_reduce"
370
+ type: "Convolution"
371
+ bottom: "inception_3a/output"
372
+ top: "inception_3b/5x5_reduce"
373
+ param {
374
+ lr_mult: 1
375
+ decay_mult: 1
376
+ }
377
+ param {
378
+ lr_mult: 2
379
+ decay_mult: 0
380
+ }
381
+ convolution_param {
382
+ num_output: 32
383
+ kernel_size: 1
384
+ }
385
+ }
386
+ layer {
387
+ name: "inception_3b/relu_5x5_reduce"
388
+ type: "ReLU"
389
+ bottom: "inception_3b/5x5_reduce"
390
+ top: "inception_3b/5x5_reduce"
391
+ }
392
+ layer {
393
+ name: "inception_3b/5x5"
394
+ type: "Convolution"
395
+ bottom: "inception_3b/5x5_reduce"
396
+ top: "inception_3b/5x5"
397
+ param {
398
+ lr_mult: 1
399
+ decay_mult: 1
400
+ }
401
+ param {
402
+ lr_mult: 2
403
+ decay_mult: 0
404
+ }
405
+ convolution_param {
406
+ num_output: 96
407
+ pad: 2
408
+ kernel_size: 5
409
+ }
410
+ }
411
+ layer {
412
+ name: "inception_3b/relu_5x5"
413
+ type: "ReLU"
414
+ bottom: "inception_3b/5x5"
415
+ top: "inception_3b/5x5"
416
+ }
417
+ layer {
418
+ name: "inception_3b/pool"
419
+ type: "Pooling"
420
+ bottom: "inception_3a/output"
421
+ top: "inception_3b/pool"
422
+ pooling_param {
423
+ pool: MAX
424
+ kernel_size: 3
425
+ stride: 1
426
+ pad: 1
427
+ }
428
+ }
429
+ layer {
430
+ name: "inception_3b/pool_proj"
431
+ type: "Convolution"
432
+ bottom: "inception_3b/pool"
433
+ top: "inception_3b/pool_proj"
434
+ param {
435
+ lr_mult: 1
436
+ decay_mult: 1
437
+ }
438
+ param {
439
+ lr_mult: 2
440
+ decay_mult: 0
441
+ }
442
+ convolution_param {
443
+ num_output: 64
444
+ kernel_size: 1
445
+ }
446
+ }
447
+ layer {
448
+ name: "inception_3b/relu_pool_proj"
449
+ type: "ReLU"
450
+ bottom: "inception_3b/pool_proj"
451
+ top: "inception_3b/pool_proj"
452
+ }
453
+ layer {
454
+ name: "inception_3b/output"
455
+ type: "Concat"
456
+ bottom: "inception_3b/1x1"
457
+ bottom: "inception_3b/3x3"
458
+ bottom: "inception_3b/5x5"
459
+ bottom: "inception_3b/pool_proj"
460
+ top: "inception_3b/output"
461
+ }
462
+ layer {
463
+ name: "pool3/3x3_s2"
464
+ type: "Pooling"
465
+ bottom: "inception_3b/output"
466
+ top: "pool3/3x3_s2"
467
+ pooling_param {
468
+ pool: MAX
469
+ kernel_size: 3
470
+ stride: 2
471
+ }
472
+ }
473
+ layer {
474
+ name: "inception_4a/1x1"
475
+ type: "Convolution"
476
+ bottom: "pool3/3x3_s2"
477
+ top: "inception_4a/1x1"
478
+ param {
479
+ lr_mult: 1
480
+ decay_mult: 1
481
+ }
482
+ param {
483
+ lr_mult: 2
484
+ decay_mult: 0
485
+ }
486
+ convolution_param {
487
+ num_output: 192
488
+ kernel_size: 1
489
+ }
490
+ }
491
+ layer {
492
+ name: "inception_4a/relu_1x1"
493
+ type: "ReLU"
494
+ bottom: "inception_4a/1x1"
495
+ top: "inception_4a/1x1"
496
+ }
497
+ layer {
498
+ name: "inception_4a/3x3_reduce"
499
+ type: "Convolution"
500
+ bottom: "pool3/3x3_s2"
501
+ top: "inception_4a/3x3_reduce"
502
+ param {
503
+ lr_mult: 1
504
+ decay_mult: 1
505
+ }
506
+ param {
507
+ lr_mult: 2
508
+ decay_mult: 0
509
+ }
510
+ convolution_param {
511
+ num_output: 96
512
+ kernel_size: 1
513
+ }
514
+ }
515
+ layer {
516
+ name: "inception_4a/relu_3x3_reduce"
517
+ type: "ReLU"
518
+ bottom: "inception_4a/3x3_reduce"
519
+ top: "inception_4a/3x3_reduce"
520
+ }
521
+ layer {
522
+ name: "inception_4a/3x3"
523
+ type: "Convolution"
524
+ bottom: "inception_4a/3x3_reduce"
525
+ top: "inception_4a/3x3"
526
+ param {
527
+ lr_mult: 1
528
+ decay_mult: 1
529
+ }
530
+ param {
531
+ lr_mult: 2
532
+ decay_mult: 0
533
+ }
534
+ convolution_param {
535
+ num_output: 208
536
+ pad: 1
537
+ kernel_size: 3
538
+ }
539
+ }
540
+ layer {
541
+ name: "inception_4a/relu_3x3"
542
+ type: "ReLU"
543
+ bottom: "inception_4a/3x3"
544
+ top: "inception_4a/3x3"
545
+ }
546
+ layer {
547
+ name: "inception_4a/5x5_reduce"
548
+ type: "Convolution"
549
+ bottom: "pool3/3x3_s2"
550
+ top: "inception_4a/5x5_reduce"
551
+ param {
552
+ lr_mult: 1
553
+ decay_mult: 1
554
+ }
555
+ param {
556
+ lr_mult: 2
557
+ decay_mult: 0
558
+ }
559
+ convolution_param {
560
+ num_output: 16
561
+ kernel_size: 1
562
+ }
563
+ }
564
+ layer {
565
+ name: "inception_4a/relu_5x5_reduce"
566
+ type: "ReLU"
567
+ bottom: "inception_4a/5x5_reduce"
568
+ top: "inception_4a/5x5_reduce"
569
+ }
570
+ layer {
571
+ name: "inception_4a/5x5"
572
+ type: "Convolution"
573
+ bottom: "inception_4a/5x5_reduce"
574
+ top: "inception_4a/5x5"
575
+ param {
576
+ lr_mult: 1
577
+ decay_mult: 1
578
+ }
579
+ param {
580
+ lr_mult: 2
581
+ decay_mult: 0
582
+ }
583
+ convolution_param {
584
+ num_output: 48
585
+ pad: 2
586
+ kernel_size: 5
587
+ }
588
+ }
589
+ layer {
590
+ name: "inception_4a/relu_5x5"
591
+ type: "ReLU"
592
+ bottom: "inception_4a/5x5"
593
+ top: "inception_4a/5x5"
594
+ }
595
+ layer {
596
+ name: "inception_4a/pool"
597
+ type: "Pooling"
598
+ bottom: "pool3/3x3_s2"
599
+ top: "inception_4a/pool"
600
+ pooling_param {
601
+ pool: MAX
602
+ kernel_size: 3
603
+ stride: 1
604
+ pad: 1
605
+ }
606
+ }
607
+ layer {
608
+ name: "inception_4a/pool_proj"
609
+ type: "Convolution"
610
+ bottom: "inception_4a/pool"
611
+ top: "inception_4a/pool_proj"
612
+ param {
613
+ lr_mult: 1
614
+ decay_mult: 1
615
+ }
616
+ param {
617
+ lr_mult: 2
618
+ decay_mult: 0
619
+ }
620
+ convolution_param {
621
+ num_output: 64
622
+ kernel_size: 1
623
+ }
624
+ }
625
+ layer {
626
+ name: "inception_4a/relu_pool_proj"
627
+ type: "ReLU"
628
+ bottom: "inception_4a/pool_proj"
629
+ top: "inception_4a/pool_proj"
630
+ }
631
+ layer {
632
+ name: "inception_4a/output"
633
+ type: "Concat"
634
+ bottom: "inception_4a/1x1"
635
+ bottom: "inception_4a/3x3"
636
+ bottom: "inception_4a/5x5"
637
+ bottom: "inception_4a/pool_proj"
638
+ top: "inception_4a/output"
639
+ }
640
+ layer {
641
+ name: "inception_4b/1x1"
642
+ type: "Convolution"
643
+ bottom: "inception_4a/output"
644
+ top: "inception_4b/1x1"
645
+ param {
646
+ lr_mult: 1
647
+ decay_mult: 1
648
+ }
649
+ param {
650
+ lr_mult: 2
651
+ decay_mult: 0
652
+ }
653
+ convolution_param {
654
+ num_output: 160
655
+ kernel_size: 1
656
+ }
657
+ }
658
+ layer {
659
+ name: "inception_4b/relu_1x1"
660
+ type: "ReLU"
661
+ bottom: "inception_4b/1x1"
662
+ top: "inception_4b/1x1"
663
+ }
664
+ layer {
665
+ name: "inception_4b/3x3_reduce"
666
+ type: "Convolution"
667
+ bottom: "inception_4a/output"
668
+ top: "inception_4b/3x3_reduce"
669
+ param {
670
+ lr_mult: 1
671
+ decay_mult: 1
672
+ }
673
+ param {
674
+ lr_mult: 2
675
+ decay_mult: 0
676
+ }
677
+ convolution_param {
678
+ num_output: 112
679
+ kernel_size: 1
680
+ }
681
+ }
682
+ layer {
683
+ name: "inception_4b/relu_3x3_reduce"
684
+ type: "ReLU"
685
+ bottom: "inception_4b/3x3_reduce"
686
+ top: "inception_4b/3x3_reduce"
687
+ }
688
+ layer {
689
+ name: "inception_4b/3x3"
690
+ type: "Convolution"
691
+ bottom: "inception_4b/3x3_reduce"
692
+ top: "inception_4b/3x3"
693
+ param {
694
+ lr_mult: 1
695
+ decay_mult: 1
696
+ }
697
+ param {
698
+ lr_mult: 2
699
+ decay_mult: 0
700
+ }
701
+ convolution_param {
702
+ num_output: 224
703
+ pad: 1
704
+ kernel_size: 3
705
+ }
706
+ }
707
+ layer {
708
+ name: "inception_4b/relu_3x3"
709
+ type: "ReLU"
710
+ bottom: "inception_4b/3x3"
711
+ top: "inception_4b/3x3"
712
+ }
713
+ layer {
714
+ name: "inception_4b/5x5_reduce"
715
+ type: "Convolution"
716
+ bottom: "inception_4a/output"
717
+ top: "inception_4b/5x5_reduce"
718
+ param {
719
+ lr_mult: 1
720
+ decay_mult: 1
721
+ }
722
+ param {
723
+ lr_mult: 2
724
+ decay_mult: 0
725
+ }
726
+ convolution_param {
727
+ num_output: 24
728
+ kernel_size: 1
729
+ }
730
+ }
731
+ layer {
732
+ name: "inception_4b/relu_5x5_reduce"
733
+ type: "ReLU"
734
+ bottom: "inception_4b/5x5_reduce"
735
+ top: "inception_4b/5x5_reduce"
736
+ }
737
+ layer {
738
+ name: "inception_4b/5x5"
739
+ type: "Convolution"
740
+ bottom: "inception_4b/5x5_reduce"
741
+ top: "inception_4b/5x5"
742
+ param {
743
+ lr_mult: 1
744
+ decay_mult: 1
745
+ }
746
+ param {
747
+ lr_mult: 2
748
+ decay_mult: 0
749
+ }
750
+ convolution_param {
751
+ num_output: 64
752
+ pad: 2
753
+ kernel_size: 5
754
+ }
755
+ }
756
+ layer {
757
+ name: "inception_4b/relu_5x5"
758
+ type: "ReLU"
759
+ bottom: "inception_4b/5x5"
760
+ top: "inception_4b/5x5"
761
+ }
762
+ layer {
763
+ name: "inception_4b/pool"
764
+ type: "Pooling"
765
+ bottom: "inception_4a/output"
766
+ top: "inception_4b/pool"
767
+ pooling_param {
768
+ pool: MAX
769
+ kernel_size: 3
770
+ stride: 1
771
+ pad: 1
772
+ }
773
+ }
774
+ layer {
775
+ name: "inception_4b/pool_proj"
776
+ type: "Convolution"
777
+ bottom: "inception_4b/pool"
778
+ top: "inception_4b/pool_proj"
779
+ param {
780
+ lr_mult: 1
781
+ decay_mult: 1
782
+ }
783
+ param {
784
+ lr_mult: 2
785
+ decay_mult: 0
786
+ }
787
+ convolution_param {
788
+ num_output: 64
789
+ kernel_size: 1
790
+ }
791
+ }
792
+ layer {
793
+ name: "inception_4b/relu_pool_proj"
794
+ type: "ReLU"
795
+ bottom: "inception_4b/pool_proj"
796
+ top: "inception_4b/pool_proj"
797
+ }
798
+ layer {
799
+ name: "inception_4b/output"
800
+ type: "Concat"
801
+ bottom: "inception_4b/1x1"
802
+ bottom: "inception_4b/3x3"
803
+ bottom: "inception_4b/5x5"
804
+ bottom: "inception_4b/pool_proj"
805
+ top: "inception_4b/output"
806
+ }
807
+ layer {
808
+ name: "inception_4c/1x1"
809
+ type: "Convolution"
810
+ bottom: "inception_4b/output"
811
+ top: "inception_4c/1x1"
812
+ param {
813
+ lr_mult: 1
814
+ decay_mult: 1
815
+ }
816
+ param {
817
+ lr_mult: 2
818
+ decay_mult: 0
819
+ }
820
+ convolution_param {
821
+ num_output: 128
822
+ kernel_size: 1
823
+ }
824
+ }
825
+ layer {
826
+ name: "inception_4c/relu_1x1"
827
+ type: "ReLU"
828
+ bottom: "inception_4c/1x1"
829
+ top: "inception_4c/1x1"
830
+ }
831
+ layer {
832
+ name: "inception_4c/3x3_reduce"
833
+ type: "Convolution"
834
+ bottom: "inception_4b/output"
835
+ top: "inception_4c/3x3_reduce"
836
+ param {
837
+ lr_mult: 1
838
+ decay_mult: 1
839
+ }
840
+ param {
841
+ lr_mult: 2
842
+ decay_mult: 0
843
+ }
844
+ convolution_param {
845
+ num_output: 128
846
+ kernel_size: 1
847
+ }
848
+ }
849
+ layer {
850
+ name: "inception_4c/relu_3x3_reduce"
851
+ type: "ReLU"
852
+ bottom: "inception_4c/3x3_reduce"
853
+ top: "inception_4c/3x3_reduce"
854
+ }
855
+ layer {
856
+ name: "inception_4c/3x3"
857
+ type: "Convolution"
858
+ bottom: "inception_4c/3x3_reduce"
859
+ top: "inception_4c/3x3"
860
+ param {
861
+ lr_mult: 1
862
+ decay_mult: 1
863
+ }
864
+ param {
865
+ lr_mult: 2
866
+ decay_mult: 0
867
+ }
868
+ convolution_param {
869
+ num_output: 256
870
+ pad: 1
871
+ kernel_size: 3
872
+ }
873
+ }
874
+ layer {
875
+ name: "inception_4c/relu_3x3"
876
+ type: "ReLU"
877
+ bottom: "inception_4c/3x3"
878
+ top: "inception_4c/3x3"
879
+ }
880
+ layer {
881
+ name: "inception_4c/5x5_reduce"
882
+ type: "Convolution"
883
+ bottom: "inception_4b/output"
884
+ top: "inception_4c/5x5_reduce"
885
+ param {
886
+ lr_mult: 1
887
+ decay_mult: 1
888
+ }
889
+ param {
890
+ lr_mult: 2
891
+ decay_mult: 0
892
+ }
893
+ convolution_param {
894
+ num_output: 24
895
+ kernel_size: 1
896
+ }
897
+ }
898
+ layer {
899
+ name: "inception_4c/relu_5x5_reduce"
900
+ type: "ReLU"
901
+ bottom: "inception_4c/5x5_reduce"
902
+ top: "inception_4c/5x5_reduce"
903
+ }
904
+ layer {
905
+ name: "inception_4c/5x5"
906
+ type: "Convolution"
907
+ bottom: "inception_4c/5x5_reduce"
908
+ top: "inception_4c/5x5"
909
+ param {
910
+ lr_mult: 1
911
+ decay_mult: 1
912
+ }
913
+ param {
914
+ lr_mult: 2
915
+ decay_mult: 0
916
+ }
917
+ convolution_param {
918
+ num_output: 64
919
+ pad: 2
920
+ kernel_size: 5
921
+ }
922
+ }
923
+ layer {
924
+ name: "inception_4c/relu_5x5"
925
+ type: "ReLU"
926
+ bottom: "inception_4c/5x5"
927
+ top: "inception_4c/5x5"
928
+ }
929
+ layer {
930
+ name: "inception_4c/pool"
931
+ type: "Pooling"
932
+ bottom: "inception_4b/output"
933
+ top: "inception_4c/pool"
934
+ pooling_param {
935
+ pool: MAX
936
+ kernel_size: 3
937
+ stride: 1
938
+ pad: 1
939
+ }
940
+ }
941
+ layer {
942
+ name: "inception_4c/pool_proj"
943
+ type: "Convolution"
944
+ bottom: "inception_4c/pool"
945
+ top: "inception_4c/pool_proj"
946
+ param {
947
+ lr_mult: 1
948
+ decay_mult: 1
949
+ }
950
+ param {
951
+ lr_mult: 2
952
+ decay_mult: 0
953
+ }
954
+ convolution_param {
955
+ num_output: 64
956
+ kernel_size: 1
957
+ }
958
+ }
959
+ layer {
960
+ name: "inception_4c/relu_pool_proj"
961
+ type: "ReLU"
962
+ bottom: "inception_4c/pool_proj"
963
+ top: "inception_4c/pool_proj"
964
+ }
965
+ layer {
966
+ name: "inception_4c/output"
967
+ type: "Concat"
968
+ bottom: "inception_4c/1x1"
969
+ bottom: "inception_4c/3x3"
970
+ bottom: "inception_4c/5x5"
971
+ bottom: "inception_4c/pool_proj"
972
+ top: "inception_4c/output"
973
+ }
974
+ layer {
975
+ name: "inception_4d/1x1"
976
+ type: "Convolution"
977
+ bottom: "inception_4c/output"
978
+ top: "inception_4d/1x1"
979
+ param {
980
+ lr_mult: 1
981
+ decay_mult: 1
982
+ }
983
+ param {
984
+ lr_mult: 2
985
+ decay_mult: 0
986
+ }
987
+ convolution_param {
988
+ num_output: 112
989
+ kernel_size: 1
990
+ }
991
+ }
992
+ layer {
993
+ name: "inception_4d/relu_1x1"
994
+ type: "ReLU"
995
+ bottom: "inception_4d/1x1"
996
+ top: "inception_4d/1x1"
997
+ }
998
+ layer {
999
+ name: "inception_4d/3x3_reduce"
1000
+ type: "Convolution"
1001
+ bottom: "inception_4c/output"
1002
+ top: "inception_4d/3x3_reduce"
1003
+ param {
1004
+ lr_mult: 1
1005
+ decay_mult: 1
1006
+ }
1007
+ param {
1008
+ lr_mult: 2
1009
+ decay_mult: 0
1010
+ }
1011
+ convolution_param {
1012
+ num_output: 144
1013
+ kernel_size: 1
1014
+ }
1015
+ }
1016
+ layer {
1017
+ name: "inception_4d/relu_3x3_reduce"
1018
+ type: "ReLU"
1019
+ bottom: "inception_4d/3x3_reduce"
1020
+ top: "inception_4d/3x3_reduce"
1021
+ }
1022
+ layer {
1023
+ name: "inception_4d/3x3"
1024
+ type: "Convolution"
1025
+ bottom: "inception_4d/3x3_reduce"
1026
+ top: "inception_4d/3x3"
1027
+ param {
1028
+ lr_mult: 1
1029
+ decay_mult: 1
1030
+ }
1031
+ param {
1032
+ lr_mult: 2
1033
+ decay_mult: 0
1034
+ }
1035
+ convolution_param {
1036
+ num_output: 288
1037
+ pad: 1
1038
+ kernel_size: 3
1039
+ }
1040
+ }
1041
+ layer {
1042
+ name: "inception_4d/relu_3x3"
1043
+ type: "ReLU"
1044
+ bottom: "inception_4d/3x3"
1045
+ top: "inception_4d/3x3"
1046
+ }
1047
+ layer {
1048
+ name: "inception_4d/5x5_reduce"
1049
+ type: "Convolution"
1050
+ bottom: "inception_4c/output"
1051
+ top: "inception_4d/5x5_reduce"
1052
+ param {
1053
+ lr_mult: 1
1054
+ decay_mult: 1
1055
+ }
1056
+ param {
1057
+ lr_mult: 2
1058
+ decay_mult: 0
1059
+ }
1060
+ convolution_param {
1061
+ num_output: 32
1062
+ kernel_size: 1
1063
+ }
1064
+ }
1065
+ layer {
1066
+ name: "inception_4d/relu_5x5_reduce"
1067
+ type: "ReLU"
1068
+ bottom: "inception_4d/5x5_reduce"
1069
+ top: "inception_4d/5x5_reduce"
1070
+ }
1071
+ layer {
1072
+ name: "inception_4d/5x5"
1073
+ type: "Convolution"
1074
+ bottom: "inception_4d/5x5_reduce"
1075
+ top: "inception_4d/5x5"
1076
+ param {
1077
+ lr_mult: 1
1078
+ decay_mult: 1
1079
+ }
1080
+ param {
1081
+ lr_mult: 2
1082
+ decay_mult: 0
1083
+ }
1084
+ convolution_param {
1085
+ num_output: 64
1086
+ pad: 2
1087
+ kernel_size: 5
1088
+ }
1089
+ }
1090
+ layer {
1091
+ name: "inception_4d/relu_5x5"
1092
+ type: "ReLU"
1093
+ bottom: "inception_4d/5x5"
1094
+ top: "inception_4d/5x5"
1095
+ }
1096
+ layer {
1097
+ name: "inception_4d/pool"
1098
+ type: "Pooling"
1099
+ bottom: "inception_4c/output"
1100
+ top: "inception_4d/pool"
1101
+ pooling_param {
1102
+ pool: MAX
1103
+ kernel_size: 3
1104
+ stride: 1
1105
+ pad: 1
1106
+ }
1107
+ }
1108
+ layer {
1109
+ name: "inception_4d/pool_proj"
1110
+ type: "Convolution"
1111
+ bottom: "inception_4d/pool"
1112
+ top: "inception_4d/pool_proj"
1113
+ param {
1114
+ lr_mult: 1
1115
+ decay_mult: 1
1116
+ }
1117
+ param {
1118
+ lr_mult: 2
1119
+ decay_mult: 0
1120
+ }
1121
+ convolution_param {
1122
+ num_output: 64
1123
+ kernel_size: 1
1124
+ }
1125
+ }
1126
+ layer {
1127
+ name: "inception_4d/relu_pool_proj"
1128
+ type: "ReLU"
1129
+ bottom: "inception_4d/pool_proj"
1130
+ top: "inception_4d/pool_proj"
1131
+ }
1132
+ layer {
1133
+ name: "inception_4d/output"
1134
+ type: "Concat"
1135
+ bottom: "inception_4d/1x1"
1136
+ bottom: "inception_4d/3x3"
1137
+ bottom: "inception_4d/5x5"
1138
+ bottom: "inception_4d/pool_proj"
1139
+ top: "inception_4d/output"
1140
+ }
1141
+ layer {
1142
+ name: "inception_4e/1x1"
1143
+ type: "Convolution"
1144
+ bottom: "inception_4d/output"
1145
+ top: "inception_4e/1x1"
1146
+ param {
1147
+ lr_mult: 1
1148
+ decay_mult: 1
1149
+ }
1150
+ param {
1151
+ lr_mult: 2
1152
+ decay_mult: 0
1153
+ }
1154
+ convolution_param {
1155
+ num_output: 256
1156
+ kernel_size: 1
1157
+ }
1158
+ }
1159
+ layer {
1160
+ name: "inception_4e/relu_1x1"
1161
+ type: "ReLU"
1162
+ bottom: "inception_4e/1x1"
1163
+ top: "inception_4e/1x1"
1164
+ }
1165
+ layer {
1166
+ name: "inception_4e/3x3_reduce"
1167
+ type: "Convolution"
1168
+ bottom: "inception_4d/output"
1169
+ top: "inception_4e/3x3_reduce"
1170
+ param {
1171
+ lr_mult: 1
1172
+ decay_mult: 1
1173
+ }
1174
+ param {
1175
+ lr_mult: 2
1176
+ decay_mult: 0
1177
+ }
1178
+ convolution_param {
1179
+ num_output: 160
1180
+ kernel_size: 1
1181
+ }
1182
+ }
1183
+ layer {
1184
+ name: "inception_4e/relu_3x3_reduce"
1185
+ type: "ReLU"
1186
+ bottom: "inception_4e/3x3_reduce"
1187
+ top: "inception_4e/3x3_reduce"
1188
+ }
1189
+ layer {
1190
+ name: "inception_4e/3x3"
1191
+ type: "Convolution"
1192
+ bottom: "inception_4e/3x3_reduce"
1193
+ top: "inception_4e/3x3"
1194
+ param {
1195
+ lr_mult: 1
1196
+ decay_mult: 1
1197
+ }
1198
+ param {
1199
+ lr_mult: 2
1200
+ decay_mult: 0
1201
+ }
1202
+ convolution_param {
1203
+ num_output: 320
1204
+ pad: 1
1205
+ kernel_size: 3
1206
+ }
1207
+ }
1208
+ layer {
1209
+ name: "inception_4e/relu_3x3"
1210
+ type: "ReLU"
1211
+ bottom: "inception_4e/3x3"
1212
+ top: "inception_4e/3x3"
1213
+ }
1214
+ layer {
1215
+ name: "inception_4e/5x5_reduce"
1216
+ type: "Convolution"
1217
+ bottom: "inception_4d/output"
1218
+ top: "inception_4e/5x5_reduce"
1219
+ param {
1220
+ lr_mult: 1
1221
+ decay_mult: 1
1222
+ }
1223
+ param {
1224
+ lr_mult: 2
1225
+ decay_mult: 0
1226
+ }
1227
+ convolution_param {
1228
+ num_output: 32
1229
+ kernel_size: 1
1230
+ }
1231
+ }
1232
+ layer {
1233
+ name: "inception_4e/relu_5x5_reduce"
1234
+ type: "ReLU"
1235
+ bottom: "inception_4e/5x5_reduce"
1236
+ top: "inception_4e/5x5_reduce"
1237
+ }
1238
+ layer {
1239
+ name: "inception_4e/5x5"
1240
+ type: "Convolution"
1241
+ bottom: "inception_4e/5x5_reduce"
1242
+ top: "inception_4e/5x5"
1243
+ param {
1244
+ lr_mult: 1
1245
+ decay_mult: 1
1246
+ }
1247
+ param {
1248
+ lr_mult: 2
1249
+ decay_mult: 0
1250
+ }
1251
+ convolution_param {
1252
+ num_output: 128
1253
+ pad: 2
1254
+ kernel_size: 5
1255
+ }
1256
+ }
1257
+ layer {
1258
+ name: "inception_4e/relu_5x5"
1259
+ type: "ReLU"
1260
+ bottom: "inception_4e/5x5"
1261
+ top: "inception_4e/5x5"
1262
+ }
1263
+ layer {
1264
+ name: "inception_4e/pool"
1265
+ type: "Pooling"
1266
+ bottom: "inception_4d/output"
1267
+ top: "inception_4e/pool"
1268
+ pooling_param {
1269
+ pool: MAX
1270
+ kernel_size: 3
1271
+ stride: 1
1272
+ pad: 1
1273
+ }
1274
+ }
1275
+ layer {
1276
+ name: "inception_4e/pool_proj"
1277
+ type: "Convolution"
1278
+ bottom: "inception_4e/pool"
1279
+ top: "inception_4e/pool_proj"
1280
+ param {
1281
+ lr_mult: 1
1282
+ decay_mult: 1
1283
+ }
1284
+ param {
1285
+ lr_mult: 2
1286
+ decay_mult: 0
1287
+ }
1288
+ convolution_param {
1289
+ num_output: 128
1290
+ kernel_size: 1
1291
+ }
1292
+ }
1293
+ layer {
1294
+ name: "inception_4e/relu_pool_proj"
1295
+ type: "ReLU"
1296
+ bottom: "inception_4e/pool_proj"
1297
+ top: "inception_4e/pool_proj"
1298
+ }
1299
+ layer {
1300
+ name: "inception_4e/output"
1301
+ type: "Concat"
1302
+ bottom: "inception_4e/1x1"
1303
+ bottom: "inception_4e/3x3"
1304
+ bottom: "inception_4e/5x5"
1305
+ bottom: "inception_4e/pool_proj"
1306
+ top: "inception_4e/output"
1307
+ }
1308
+ layer {
1309
+ name: "pool4/3x3_s2"
1310
+ type: "Pooling"
1311
+ bottom: "inception_4e/output"
1312
+ top: "pool4/3x3_s2"
1313
+ pooling_param {
1314
+ pool: MAX
1315
+ kernel_size: 3
1316
+ stride: 2
1317
+ }
1318
+ }
1319
+ layer {
1320
+ name: "inception_5a/1x1"
1321
+ type: "Convolution"
1322
+ bottom: "pool4/3x3_s2"
1323
+ top: "inception_5a/1x1"
1324
+ param {
1325
+ lr_mult: 1
1326
+ decay_mult: 1
1327
+ }
1328
+ param {
1329
+ lr_mult: 2
1330
+ decay_mult: 0
1331
+ }
1332
+ convolution_param {
1333
+ num_output: 256
1334
+ kernel_size: 1
1335
+ }
1336
+ }
1337
+ layer {
1338
+ name: "inception_5a/relu_1x1"
1339
+ type: "ReLU"
1340
+ bottom: "inception_5a/1x1"
1341
+ top: "inception_5a/1x1"
1342
+ }
1343
+ layer {
1344
+ name: "inception_5a/3x3_reduce"
1345
+ type: "Convolution"
1346
+ bottom: "pool4/3x3_s2"
1347
+ top: "inception_5a/3x3_reduce"
1348
+ param {
1349
+ lr_mult: 1
1350
+ decay_mult: 1
1351
+ }
1352
+ param {
1353
+ lr_mult: 2
1354
+ decay_mult: 0
1355
+ }
1356
+ convolution_param {
1357
+ num_output: 160
1358
+ kernel_size: 1
1359
+ }
1360
+ }
1361
+ layer {
1362
+ name: "inception_5a/relu_3x3_reduce"
1363
+ type: "ReLU"
1364
+ bottom: "inception_5a/3x3_reduce"
1365
+ top: "inception_5a/3x3_reduce"
1366
+ }
1367
+ layer {
1368
+ name: "inception_5a/3x3"
1369
+ type: "Convolution"
1370
+ bottom: "inception_5a/3x3_reduce"
1371
+ top: "inception_5a/3x3"
1372
+ param {
1373
+ lr_mult: 1
1374
+ decay_mult: 1
1375
+ }
1376
+ param {
1377
+ lr_mult: 2
1378
+ decay_mult: 0
1379
+ }
1380
+ convolution_param {
1381
+ num_output: 320
1382
+ pad: 1
1383
+ kernel_size: 3
1384
+ }
1385
+ }
1386
+ layer {
1387
+ name: "inception_5a/relu_3x3"
1388
+ type: "ReLU"
1389
+ bottom: "inception_5a/3x3"
1390
+ top: "inception_5a/3x3"
1391
+ }
1392
+ layer {
1393
+ name: "inception_5a/5x5_reduce"
1394
+ type: "Convolution"
1395
+ bottom: "pool4/3x3_s2"
1396
+ top: "inception_5a/5x5_reduce"
1397
+ param {
1398
+ lr_mult: 1
1399
+ decay_mult: 1
1400
+ }
1401
+ param {
1402
+ lr_mult: 2
1403
+ decay_mult: 0
1404
+ }
1405
+ convolution_param {
1406
+ num_output: 32
1407
+ kernel_size: 1
1408
+ }
1409
+ }
1410
+ layer {
1411
+ name: "inception_5a/relu_5x5_reduce"
1412
+ type: "ReLU"
1413
+ bottom: "inception_5a/5x5_reduce"
1414
+ top: "inception_5a/5x5_reduce"
1415
+ }
1416
+ layer {
1417
+ name: "inception_5a/5x5"
1418
+ type: "Convolution"
1419
+ bottom: "inception_5a/5x5_reduce"
1420
+ top: "inception_5a/5x5"
1421
+ param {
1422
+ lr_mult: 1
1423
+ decay_mult: 1
1424
+ }
1425
+ param {
1426
+ lr_mult: 2
1427
+ decay_mult: 0
1428
+ }
1429
+ convolution_param {
1430
+ num_output: 128
1431
+ pad: 2
1432
+ kernel_size: 5
1433
+ }
1434
+ }
1435
+ layer {
1436
+ name: "inception_5a/relu_5x5"
1437
+ type: "ReLU"
1438
+ bottom: "inception_5a/5x5"
1439
+ top: "inception_5a/5x5"
1440
+ }
1441
+ layer {
1442
+ name: "inception_5a/pool"
1443
+ type: "Pooling"
1444
+ bottom: "pool4/3x3_s2"
1445
+ top: "inception_5a/pool"
1446
+ pooling_param {
1447
+ pool: MAX
1448
+ kernel_size: 3
1449
+ stride: 1
1450
+ pad: 1
1451
+ }
1452
+ }
1453
+ layer {
1454
+ name: "inception_5a/pool_proj"
1455
+ type: "Convolution"
1456
+ bottom: "inception_5a/pool"
1457
+ top: "inception_5a/pool_proj"
1458
+ param {
1459
+ lr_mult: 1
1460
+ decay_mult: 1
1461
+ }
1462
+ param {
1463
+ lr_mult: 2
1464
+ decay_mult: 0
1465
+ }
1466
+ convolution_param {
1467
+ num_output: 128
1468
+ kernel_size: 1
1469
+ }
1470
+ }
1471
+ layer {
1472
+ name: "inception_5a/relu_pool_proj"
1473
+ type: "ReLU"
1474
+ bottom: "inception_5a/pool_proj"
1475
+ top: "inception_5a/pool_proj"
1476
+ }
1477
+ layer {
1478
+ name: "inception_5a/output"
1479
+ type: "Concat"
1480
+ bottom: "inception_5a/1x1"
1481
+ bottom: "inception_5a/3x3"
1482
+ bottom: "inception_5a/5x5"
1483
+ bottom: "inception_5a/pool_proj"
1484
+ top: "inception_5a/output"
1485
+ }
1486
+ layer {
1487
+ name: "inception_5b/1x1"
1488
+ type: "Convolution"
1489
+ bottom: "inception_5a/output"
1490
+ top: "inception_5b/1x1"
1491
+ param {
1492
+ lr_mult: 1
1493
+ decay_mult: 1
1494
+ }
1495
+ param {
1496
+ lr_mult: 2
1497
+ decay_mult: 0
1498
+ }
1499
+ convolution_param {
1500
+ num_output: 384
1501
+ kernel_size: 1
1502
+ }
1503
+ }
1504
+ layer {
1505
+ name: "inception_5b/relu_1x1"
1506
+ type: "ReLU"
1507
+ bottom: "inception_5b/1x1"
1508
+ top: "inception_5b/1x1"
1509
+ }
1510
+ layer {
1511
+ name: "inception_5b/3x3_reduce"
1512
+ type: "Convolution"
1513
+ bottom: "inception_5a/output"
1514
+ top: "inception_5b/3x3_reduce"
1515
+ param {
1516
+ lr_mult: 1
1517
+ decay_mult: 1
1518
+ }
1519
+ param {
1520
+ lr_mult: 2
1521
+ decay_mult: 0
1522
+ }
1523
+ convolution_param {
1524
+ num_output: 192
1525
+ kernel_size: 1
1526
+ }
1527
+ }
1528
+ layer {
1529
+ name: "inception_5b/relu_3x3_reduce"
1530
+ type: "ReLU"
1531
+ bottom: "inception_5b/3x3_reduce"
1532
+ top: "inception_5b/3x3_reduce"
1533
+ }
1534
+ layer {
1535
+ name: "inception_5b/3x3"
1536
+ type: "Convolution"
1537
+ bottom: "inception_5b/3x3_reduce"
1538
+ top: "inception_5b/3x3"
1539
+ param {
1540
+ lr_mult: 1
1541
+ decay_mult: 1
1542
+ }
1543
+ param {
1544
+ lr_mult: 2
1545
+ decay_mult: 0
1546
+ }
1547
+ convolution_param {
1548
+ num_output: 384
1549
+ pad: 1
1550
+ kernel_size: 3
1551
+ }
1552
+ }
1553
+ layer {
1554
+ name: "inception_5b/relu_3x3"
1555
+ type: "ReLU"
1556
+ bottom: "inception_5b/3x3"
1557
+ top: "inception_5b/3x3"
1558
+ }
1559
+ layer {
1560
+ name: "inception_5b/5x5_reduce"
1561
+ type: "Convolution"
1562
+ bottom: "inception_5a/output"
1563
+ top: "inception_5b/5x5_reduce"
1564
+ param {
1565
+ lr_mult: 1
1566
+ decay_mult: 1
1567
+ }
1568
+ param {
1569
+ lr_mult: 2
1570
+ decay_mult: 0
1571
+ }
1572
+ convolution_param {
1573
+ num_output: 48
1574
+ kernel_size: 1
1575
+ }
1576
+ }
1577
+ layer {
1578
+ name: "inception_5b/relu_5x5_reduce"
1579
+ type: "ReLU"
1580
+ bottom: "inception_5b/5x5_reduce"
1581
+ top: "inception_5b/5x5_reduce"
1582
+ }
1583
+ layer {
1584
+ name: "inception_5b/5x5"
1585
+ type: "Convolution"
1586
+ bottom: "inception_5b/5x5_reduce"
1587
+ top: "inception_5b/5x5"
1588
+ param {
1589
+ lr_mult: 1
1590
+ decay_mult: 1
1591
+ }
1592
+ param {
1593
+ lr_mult: 2
1594
+ decay_mult: 0
1595
+ }
1596
+ convolution_param {
1597
+ num_output: 128
1598
+ pad: 2
1599
+ kernel_size: 5
1600
+ }
1601
+ }
1602
+ layer {
1603
+ name: "inception_5b/relu_5x5"
1604
+ type: "ReLU"
1605
+ bottom: "inception_5b/5x5"
1606
+ top: "inception_5b/5x5"
1607
+ }
1608
+ layer {
1609
+ name: "inception_5b/pool"
1610
+ type: "Pooling"
1611
+ bottom: "inception_5a/output"
1612
+ top: "inception_5b/pool"
1613
+ pooling_param {
1614
+ pool: MAX
1615
+ kernel_size: 3
1616
+ stride: 1
1617
+ pad: 1
1618
+ }
1619
+ }
1620
+ layer {
1621
+ name: "inception_5b/pool_proj"
1622
+ type: "Convolution"
1623
+ bottom: "inception_5b/pool"
1624
+ top: "inception_5b/pool_proj"
1625
+ param {
1626
+ lr_mult: 1
1627
+ decay_mult: 1
1628
+ }
1629
+ param {
1630
+ lr_mult: 2
1631
+ decay_mult: 0
1632
+ }
1633
+ convolution_param {
1634
+ num_output: 128
1635
+ kernel_size: 1
1636
+ }
1637
+ }
1638
+ layer {
1639
+ name: "inception_5b/relu_pool_proj"
1640
+ type: "ReLU"
1641
+ bottom: "inception_5b/pool_proj"
1642
+ top: "inception_5b/pool_proj"
1643
+ }
1644
+ layer {
1645
+ name: "inception_5b/output"
1646
+ type: "Concat"
1647
+ bottom: "inception_5b/1x1"
1648
+ bottom: "inception_5b/3x3"
1649
+ bottom: "inception_5b/5x5"
1650
+ bottom: "inception_5b/pool_proj"
1651
+ top: "inception_5b/output"
1652
+ }
1653
+ layer {
1654
+ name: "pool5/7x7_s1"
1655
+ type: "Pooling"
1656
+ bottom: "inception_5b/output"
1657
+ top: "pool5/7x7_s1"
1658
+ pooling_param {
1659
+ pool: AVE
1660
+ kernel_size: 7
1661
+ stride: 1
1662
+ }
1663
+ }
1664
+ layer {
1665
+ name: "pool5/drop_7x7_s1"
1666
+ type: "Dropout"
1667
+ bottom: "pool5/7x7_s1"
1668
+ top: "pool5/7x7_s1"
1669
+ dropout_param {
1670
+ dropout_ratio: 0.4
1671
+ }
1672
+ }
1673
+ layer {
1674
+ name: "loss3/classifier_agexgender"
1675
+ type: "InnerProduct"
1676
+ bottom: "pool5/7x7_s1"
1677
+ top: "loss3/classifier_agexgender"
1678
+ param {
1679
+ lr_mult: 1
1680
+ decay_mult: 1
1681
+ }
1682
+ param {
1683
+ lr_mult: 2
1684
+ decay_mult: 0
1685
+ }
1686
+ inner_product_param {
1687
+ num_output: 2
1688
+ }
1689
+ }
1690
+ layer {
1691
+ name: "loss3/loss3"
1692
+ type: "Softmax"
1693
+ bottom: "loss3/classifier_agexgender"
1694
+ top: "loss3/loss3"
1695
+ loss_weight: 1
1696
+ }
opencv_face_detector.pbtxt ADDED
@@ -0,0 +1,2362 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ node {
2
+ name: "data"
3
+ op: "Placeholder"
4
+ attr {
5
+ key: "dtype"
6
+ value {
7
+ type: DT_FLOAT
8
+ }
9
+ }
10
+ }
11
+ node {
12
+ name: "data_bn/FusedBatchNorm"
13
+ op: "FusedBatchNorm"
14
+ input: "data:0"
15
+ input: "data_bn/gamma"
16
+ input: "data_bn/beta"
17
+ input: "data_bn/mean"
18
+ input: "data_bn/std"
19
+ attr {
20
+ key: "epsilon"
21
+ value {
22
+ f: 1.00099996416e-05
23
+ }
24
+ }
25
+ }
26
+ node {
27
+ name: "data_scale/Mul"
28
+ op: "Mul"
29
+ input: "data_bn/FusedBatchNorm"
30
+ input: "data_scale/mul"
31
+ }
32
+ node {
33
+ name: "data_scale/BiasAdd"
34
+ op: "BiasAdd"
35
+ input: "data_scale/Mul"
36
+ input: "data_scale/add"
37
+ }
38
+ node {
39
+ name: "SpaceToBatchND/block_shape"
40
+ op: "Const"
41
+ attr {
42
+ key: "value"
43
+ value {
44
+ tensor {
45
+ dtype: DT_INT32
46
+ tensor_shape {
47
+ dim {
48
+ size: 2
49
+ }
50
+ }
51
+ int_val: 1
52
+ int_val: 1
53
+ }
54
+ }
55
+ }
56
+ }
57
+ node {
58
+ name: "SpaceToBatchND/paddings"
59
+ op: "Const"
60
+ attr {
61
+ key: "value"
62
+ value {
63
+ tensor {
64
+ dtype: DT_INT32
65
+ tensor_shape {
66
+ dim {
67
+ size: 2
68
+ }
69
+ dim {
70
+ size: 2
71
+ }
72
+ }
73
+ int_val: 3
74
+ int_val: 3
75
+ int_val: 3
76
+ int_val: 3
77
+ }
78
+ }
79
+ }
80
+ }
81
+ node {
82
+ name: "Pad"
83
+ op: "SpaceToBatchND"
84
+ input: "data_scale/BiasAdd"
85
+ input: "SpaceToBatchND/block_shape"
86
+ input: "SpaceToBatchND/paddings"
87
+ }
88
+ node {
89
+ name: "conv1_h/Conv2D"
90
+ op: "Conv2D"
91
+ input: "Pad"
92
+ input: "conv1_h/weights"
93
+ attr {
94
+ key: "dilations"
95
+ value {
96
+ list {
97
+ i: 1
98
+ i: 1
99
+ i: 1
100
+ i: 1
101
+ }
102
+ }
103
+ }
104
+ attr {
105
+ key: "padding"
106
+ value {
107
+ s: "VALID"
108
+ }
109
+ }
110
+ attr {
111
+ key: "strides"
112
+ value {
113
+ list {
114
+ i: 1
115
+ i: 2
116
+ i: 2
117
+ i: 1
118
+ }
119
+ }
120
+ }
121
+ }
122
+ node {
123
+ name: "conv1_h/BiasAdd"
124
+ op: "BiasAdd"
125
+ input: "conv1_h/Conv2D"
126
+ input: "conv1_h/bias"
127
+ }
128
+ node {
129
+ name: "BatchToSpaceND"
130
+ op: "BatchToSpaceND"
131
+ input: "conv1_h/BiasAdd"
132
+ }
133
+ node {
134
+ name: "conv1_bn_h/FusedBatchNorm"
135
+ op: "FusedBatchNorm"
136
+ input: "BatchToSpaceND"
137
+ input: "conv1_bn_h/gamma"
138
+ input: "conv1_bn_h/beta"
139
+ input: "conv1_bn_h/mean"
140
+ input: "conv1_bn_h/std"
141
+ attr {
142
+ key: "epsilon"
143
+ value {
144
+ f: 1.00099996416e-05
145
+ }
146
+ }
147
+ }
148
+ node {
149
+ name: "conv1_scale_h/Mul"
150
+ op: "Mul"
151
+ input: "conv1_bn_h/FusedBatchNorm"
152
+ input: "conv1_scale_h/mul"
153
+ }
154
+ node {
155
+ name: "conv1_scale_h/BiasAdd"
156
+ op: "BiasAdd"
157
+ input: "conv1_scale_h/Mul"
158
+ input: "conv1_scale_h/add"
159
+ }
160
+ node {
161
+ name: "Relu"
162
+ op: "Relu"
163
+ input: "conv1_scale_h/BiasAdd"
164
+ }
165
+ node {
166
+ name: "conv1_pool/MaxPool"
167
+ op: "MaxPool"
168
+ input: "Relu"
169
+ attr {
170
+ key: "ksize"
171
+ value {
172
+ list {
173
+ i: 1
174
+ i: 3
175
+ i: 3
176
+ i: 1
177
+ }
178
+ }
179
+ }
180
+ attr {
181
+ key: "padding"
182
+ value {
183
+ s: "SAME"
184
+ }
185
+ }
186
+ attr {
187
+ key: "strides"
188
+ value {
189
+ list {
190
+ i: 1
191
+ i: 2
192
+ i: 2
193
+ i: 1
194
+ }
195
+ }
196
+ }
197
+ }
198
+ node {
199
+ name: "layer_64_1_conv1_h/Conv2D"
200
+ op: "Conv2D"
201
+ input: "conv1_pool/MaxPool"
202
+ input: "layer_64_1_conv1_h/weights"
203
+ attr {
204
+ key: "dilations"
205
+ value {
206
+ list {
207
+ i: 1
208
+ i: 1
209
+ i: 1
210
+ i: 1
211
+ }
212
+ }
213
+ }
214
+ attr {
215
+ key: "padding"
216
+ value {
217
+ s: "SAME"
218
+ }
219
+ }
220
+ attr {
221
+ key: "strides"
222
+ value {
223
+ list {
224
+ i: 1
225
+ i: 1
226
+ i: 1
227
+ i: 1
228
+ }
229
+ }
230
+ }
231
+ }
232
+ node {
233
+ name: "layer_64_1_bn2_h/FusedBatchNorm"
234
+ op: "BiasAdd"
235
+ input: "layer_64_1_conv1_h/Conv2D"
236
+ input: "layer_64_1_conv1_h/Conv2D_bn_offset"
237
+ }
238
+ node {
239
+ name: "layer_64_1_scale2_h/Mul"
240
+ op: "Mul"
241
+ input: "layer_64_1_bn2_h/FusedBatchNorm"
242
+ input: "layer_64_1_scale2_h/mul"
243
+ }
244
+ node {
245
+ name: "layer_64_1_scale2_h/BiasAdd"
246
+ op: "BiasAdd"
247
+ input: "layer_64_1_scale2_h/Mul"
248
+ input: "layer_64_1_scale2_h/add"
249
+ }
250
+ node {
251
+ name: "Relu_1"
252
+ op: "Relu"
253
+ input: "layer_64_1_scale2_h/BiasAdd"
254
+ }
255
+ node {
256
+ name: "layer_64_1_conv2_h/Conv2D"
257
+ op: "Conv2D"
258
+ input: "Relu_1"
259
+ input: "layer_64_1_conv2_h/weights"
260
+ attr {
261
+ key: "dilations"
262
+ value {
263
+ list {
264
+ i: 1
265
+ i: 1
266
+ i: 1
267
+ i: 1
268
+ }
269
+ }
270
+ }
271
+ attr {
272
+ key: "padding"
273
+ value {
274
+ s: "SAME"
275
+ }
276
+ }
277
+ attr {
278
+ key: "strides"
279
+ value {
280
+ list {
281
+ i: 1
282
+ i: 1
283
+ i: 1
284
+ i: 1
285
+ }
286
+ }
287
+ }
288
+ }
289
+ node {
290
+ name: "add"
291
+ op: "Add"
292
+ input: "layer_64_1_conv2_h/Conv2D"
293
+ input: "conv1_pool/MaxPool"
294
+ }
295
+ node {
296
+ name: "layer_128_1_bn1_h/FusedBatchNorm"
297
+ op: "FusedBatchNorm"
298
+ input: "add"
299
+ input: "layer_128_1_bn1_h/gamma"
300
+ input: "layer_128_1_bn1_h/beta"
301
+ input: "layer_128_1_bn1_h/mean"
302
+ input: "layer_128_1_bn1_h/std"
303
+ attr {
304
+ key: "epsilon"
305
+ value {
306
+ f: 1.00099996416e-05
307
+ }
308
+ }
309
+ }
310
+ node {
311
+ name: "layer_128_1_scale1_h/Mul"
312
+ op: "Mul"
313
+ input: "layer_128_1_bn1_h/FusedBatchNorm"
314
+ input: "layer_128_1_scale1_h/mul"
315
+ }
316
+ node {
317
+ name: "layer_128_1_scale1_h/BiasAdd"
318
+ op: "BiasAdd"
319
+ input: "layer_128_1_scale1_h/Mul"
320
+ input: "layer_128_1_scale1_h/add"
321
+ }
322
+ node {
323
+ name: "Relu_2"
324
+ op: "Relu"
325
+ input: "layer_128_1_scale1_h/BiasAdd"
326
+ }
327
+ node {
328
+ name: "layer_128_1_conv_expand_h/Conv2D"
329
+ op: "Conv2D"
330
+ input: "Relu_2"
331
+ input: "layer_128_1_conv_expand_h/weights"
332
+ attr {
333
+ key: "dilations"
334
+ value {
335
+ list {
336
+ i: 1
337
+ i: 1
338
+ i: 1
339
+ i: 1
340
+ }
341
+ }
342
+ }
343
+ attr {
344
+ key: "padding"
345
+ value {
346
+ s: "SAME"
347
+ }
348
+ }
349
+ attr {
350
+ key: "strides"
351
+ value {
352
+ list {
353
+ i: 1
354
+ i: 2
355
+ i: 2
356
+ i: 1
357
+ }
358
+ }
359
+ }
360
+ }
361
+ node {
362
+ name: "layer_128_1_conv1_h/Conv2D"
363
+ op: "Conv2D"
364
+ input: "Relu_2"
365
+ input: "layer_128_1_conv1_h/weights"
366
+ attr {
367
+ key: "dilations"
368
+ value {
369
+ list {
370
+ i: 1
371
+ i: 1
372
+ i: 1
373
+ i: 1
374
+ }
375
+ }
376
+ }
377
+ attr {
378
+ key: "padding"
379
+ value {
380
+ s: "SAME"
381
+ }
382
+ }
383
+ attr {
384
+ key: "strides"
385
+ value {
386
+ list {
387
+ i: 1
388
+ i: 2
389
+ i: 2
390
+ i: 1
391
+ }
392
+ }
393
+ }
394
+ }
395
+ node {
396
+ name: "layer_128_1_bn2/FusedBatchNorm"
397
+ op: "BiasAdd"
398
+ input: "layer_128_1_conv1_h/Conv2D"
399
+ input: "layer_128_1_conv1_h/Conv2D_bn_offset"
400
+ }
401
+ node {
402
+ name: "layer_128_1_scale2/Mul"
403
+ op: "Mul"
404
+ input: "layer_128_1_bn2/FusedBatchNorm"
405
+ input: "layer_128_1_scale2/mul"
406
+ }
407
+ node {
408
+ name: "layer_128_1_scale2/BiasAdd"
409
+ op: "BiasAdd"
410
+ input: "layer_128_1_scale2/Mul"
411
+ input: "layer_128_1_scale2/add"
412
+ }
413
+ node {
414
+ name: "Relu_3"
415
+ op: "Relu"
416
+ input: "layer_128_1_scale2/BiasAdd"
417
+ }
418
+ node {
419
+ name: "layer_128_1_conv2/Conv2D"
420
+ op: "Conv2D"
421
+ input: "Relu_3"
422
+ input: "layer_128_1_conv2/weights"
423
+ attr {
424
+ key: "dilations"
425
+ value {
426
+ list {
427
+ i: 1
428
+ i: 1
429
+ i: 1
430
+ i: 1
431
+ }
432
+ }
433
+ }
434
+ attr {
435
+ key: "padding"
436
+ value {
437
+ s: "SAME"
438
+ }
439
+ }
440
+ attr {
441
+ key: "strides"
442
+ value {
443
+ list {
444
+ i: 1
445
+ i: 1
446
+ i: 1
447
+ i: 1
448
+ }
449
+ }
450
+ }
451
+ }
452
+ node {
453
+ name: "add_1"
454
+ op: "Add"
455
+ input: "layer_128_1_conv2/Conv2D"
456
+ input: "layer_128_1_conv_expand_h/Conv2D"
457
+ }
458
+ node {
459
+ name: "layer_256_1_bn1/FusedBatchNorm"
460
+ op: "FusedBatchNorm"
461
+ input: "add_1"
462
+ input: "layer_256_1_bn1/gamma"
463
+ input: "layer_256_1_bn1/beta"
464
+ input: "layer_256_1_bn1/mean"
465
+ input: "layer_256_1_bn1/std"
466
+ attr {
467
+ key: "epsilon"
468
+ value {
469
+ f: 1.00099996416e-05
470
+ }
471
+ }
472
+ }
473
+ node {
474
+ name: "layer_256_1_scale1/Mul"
475
+ op: "Mul"
476
+ input: "layer_256_1_bn1/FusedBatchNorm"
477
+ input: "layer_256_1_scale1/mul"
478
+ }
479
+ node {
480
+ name: "layer_256_1_scale1/BiasAdd"
481
+ op: "BiasAdd"
482
+ input: "layer_256_1_scale1/Mul"
483
+ input: "layer_256_1_scale1/add"
484
+ }
485
+ node {
486
+ name: "Relu_4"
487
+ op: "Relu"
488
+ input: "layer_256_1_scale1/BiasAdd"
489
+ }
490
+ node {
491
+ name: "SpaceToBatchND_1/paddings"
492
+ op: "Const"
493
+ attr {
494
+ key: "value"
495
+ value {
496
+ tensor {
497
+ dtype: DT_INT32
498
+ tensor_shape {
499
+ dim {
500
+ size: 2
501
+ }
502
+ dim {
503
+ size: 2
504
+ }
505
+ }
506
+ int_val: 1
507
+ int_val: 1
508
+ int_val: 1
509
+ int_val: 1
510
+ }
511
+ }
512
+ }
513
+ }
514
+ node {
515
+ name: "layer_256_1_conv_expand/Conv2D"
516
+ op: "Conv2D"
517
+ input: "Relu_4"
518
+ input: "layer_256_1_conv_expand/weights"
519
+ attr {
520
+ key: "dilations"
521
+ value {
522
+ list {
523
+ i: 1
524
+ i: 1
525
+ i: 1
526
+ i: 1
527
+ }
528
+ }
529
+ }
530
+ attr {
531
+ key: "padding"
532
+ value {
533
+ s: "SAME"
534
+ }
535
+ }
536
+ attr {
537
+ key: "strides"
538
+ value {
539
+ list {
540
+ i: 1
541
+ i: 2
542
+ i: 2
543
+ i: 1
544
+ }
545
+ }
546
+ }
547
+ }
548
+ node {
549
+ name: "conv4_3_norm/l2_normalize"
550
+ op: "L2Normalize"
551
+ input: "Relu_4:0"
552
+ input: "conv4_3_norm/l2_normalize/Sum/reduction_indices"
553
+ }
554
+ node {
555
+ name: "conv4_3_norm/mul_1"
556
+ op: "Mul"
557
+ input: "conv4_3_norm/l2_normalize"
558
+ input: "conv4_3_norm/mul"
559
+ }
560
+ node {
561
+ name: "conv4_3_norm_mbox_loc/Conv2D"
562
+ op: "Conv2D"
563
+ input: "conv4_3_norm/mul_1"
564
+ input: "conv4_3_norm_mbox_loc/weights"
565
+ attr {
566
+ key: "dilations"
567
+ value {
568
+ list {
569
+ i: 1
570
+ i: 1
571
+ i: 1
572
+ i: 1
573
+ }
574
+ }
575
+ }
576
+ attr {
577
+ key: "padding"
578
+ value {
579
+ s: "SAME"
580
+ }
581
+ }
582
+ attr {
583
+ key: "strides"
584
+ value {
585
+ list {
586
+ i: 1
587
+ i: 1
588
+ i: 1
589
+ i: 1
590
+ }
591
+ }
592
+ }
593
+ }
594
+ node {
595
+ name: "conv4_3_norm_mbox_loc/BiasAdd"
596
+ op: "BiasAdd"
597
+ input: "conv4_3_norm_mbox_loc/Conv2D"
598
+ input: "conv4_3_norm_mbox_loc/bias"
599
+ }
600
+ node {
601
+ name: "flatten/Reshape"
602
+ op: "Flatten"
603
+ input: "conv4_3_norm_mbox_loc/BiasAdd"
604
+ }
605
+ node {
606
+ name: "conv4_3_norm_mbox_conf/Conv2D"
607
+ op: "Conv2D"
608
+ input: "conv4_3_norm/mul_1"
609
+ input: "conv4_3_norm_mbox_conf/weights"
610
+ attr {
611
+ key: "dilations"
612
+ value {
613
+ list {
614
+ i: 1
615
+ i: 1
616
+ i: 1
617
+ i: 1
618
+ }
619
+ }
620
+ }
621
+ attr {
622
+ key: "padding"
623
+ value {
624
+ s: "SAME"
625
+ }
626
+ }
627
+ attr {
628
+ key: "strides"
629
+ value {
630
+ list {
631
+ i: 1
632
+ i: 1
633
+ i: 1
634
+ i: 1
635
+ }
636
+ }
637
+ }
638
+ }
639
+ node {
640
+ name: "conv4_3_norm_mbox_conf/BiasAdd"
641
+ op: "BiasAdd"
642
+ input: "conv4_3_norm_mbox_conf/Conv2D"
643
+ input: "conv4_3_norm_mbox_conf/bias"
644
+ }
645
+ node {
646
+ name: "flatten_6/Reshape"
647
+ op: "Flatten"
648
+ input: "conv4_3_norm_mbox_conf/BiasAdd"
649
+ }
650
+ node {
651
+ name: "Pad_1"
652
+ op: "SpaceToBatchND"
653
+ input: "Relu_4"
654
+ input: "SpaceToBatchND/block_shape"
655
+ input: "SpaceToBatchND_1/paddings"
656
+ }
657
+ node {
658
+ name: "layer_256_1_conv1/Conv2D"
659
+ op: "Conv2D"
660
+ input: "Pad_1"
661
+ input: "layer_256_1_conv1/weights"
662
+ attr {
663
+ key: "dilations"
664
+ value {
665
+ list {
666
+ i: 1
667
+ i: 1
668
+ i: 1
669
+ i: 1
670
+ }
671
+ }
672
+ }
673
+ attr {
674
+ key: "padding"
675
+ value {
676
+ s: "VALID"
677
+ }
678
+ }
679
+ attr {
680
+ key: "strides"
681
+ value {
682
+ list {
683
+ i: 1
684
+ i: 2
685
+ i: 2
686
+ i: 1
687
+ }
688
+ }
689
+ }
690
+ }
691
+ node {
692
+ name: "layer_256_1_bn2/FusedBatchNorm"
693
+ op: "BiasAdd"
694
+ input: "layer_256_1_conv1/Conv2D"
695
+ input: "layer_256_1_conv1/Conv2D_bn_offset"
696
+ }
697
+ node {
698
+ name: "BatchToSpaceND_1"
699
+ op: "BatchToSpaceND"
700
+ input: "layer_256_1_bn2/FusedBatchNorm"
701
+ }
702
+ node {
703
+ name: "layer_256_1_scale2/Mul"
704
+ op: "Mul"
705
+ input: "BatchToSpaceND_1"
706
+ input: "layer_256_1_scale2/mul"
707
+ }
708
+ node {
709
+ name: "layer_256_1_scale2/BiasAdd"
710
+ op: "BiasAdd"
711
+ input: "layer_256_1_scale2/Mul"
712
+ input: "layer_256_1_scale2/add"
713
+ }
714
+ node {
715
+ name: "Relu_5"
716
+ op: "Relu"
717
+ input: "layer_256_1_scale2/BiasAdd"
718
+ }
719
+ node {
720
+ name: "layer_256_1_conv2/Conv2D"
721
+ op: "Conv2D"
722
+ input: "Relu_5"
723
+ input: "layer_256_1_conv2/weights"
724
+ attr {
725
+ key: "dilations"
726
+ value {
727
+ list {
728
+ i: 1
729
+ i: 1
730
+ i: 1
731
+ i: 1
732
+ }
733
+ }
734
+ }
735
+ attr {
736
+ key: "padding"
737
+ value {
738
+ s: "SAME"
739
+ }
740
+ }
741
+ attr {
742
+ key: "strides"
743
+ value {
744
+ list {
745
+ i: 1
746
+ i: 1
747
+ i: 1
748
+ i: 1
749
+ }
750
+ }
751
+ }
752
+ }
753
+ node {
754
+ name: "add_2"
755
+ op: "Add"
756
+ input: "layer_256_1_conv2/Conv2D"
757
+ input: "layer_256_1_conv_expand/Conv2D"
758
+ }
759
+ node {
760
+ name: "layer_512_1_bn1/FusedBatchNorm"
761
+ op: "FusedBatchNorm"
762
+ input: "add_2"
763
+ input: "layer_512_1_bn1/gamma"
764
+ input: "layer_512_1_bn1/beta"
765
+ input: "layer_512_1_bn1/mean"
766
+ input: "layer_512_1_bn1/std"
767
+ attr {
768
+ key: "epsilon"
769
+ value {
770
+ f: 1.00099996416e-05
771
+ }
772
+ }
773
+ }
774
+ node {
775
+ name: "layer_512_1_scale1/Mul"
776
+ op: "Mul"
777
+ input: "layer_512_1_bn1/FusedBatchNorm"
778
+ input: "layer_512_1_scale1/mul"
779
+ }
780
+ node {
781
+ name: "layer_512_1_scale1/BiasAdd"
782
+ op: "BiasAdd"
783
+ input: "layer_512_1_scale1/Mul"
784
+ input: "layer_512_1_scale1/add"
785
+ }
786
+ node {
787
+ name: "Relu_6"
788
+ op: "Relu"
789
+ input: "layer_512_1_scale1/BiasAdd"
790
+ }
791
+ node {
792
+ name: "layer_512_1_conv_expand_h/Conv2D"
793
+ op: "Conv2D"
794
+ input: "Relu_6"
795
+ input: "layer_512_1_conv_expand_h/weights"
796
+ attr {
797
+ key: "dilations"
798
+ value {
799
+ list {
800
+ i: 1
801
+ i: 1
802
+ i: 1
803
+ i: 1
804
+ }
805
+ }
806
+ }
807
+ attr {
808
+ key: "padding"
809
+ value {
810
+ s: "SAME"
811
+ }
812
+ }
813
+ attr {
814
+ key: "strides"
815
+ value {
816
+ list {
817
+ i: 1
818
+ i: 1
819
+ i: 1
820
+ i: 1
821
+ }
822
+ }
823
+ }
824
+ }
825
+ node {
826
+ name: "layer_512_1_conv1_h/Conv2D"
827
+ op: "Conv2D"
828
+ input: "Relu_6"
829
+ input: "layer_512_1_conv1_h/weights"
830
+ attr {
831
+ key: "dilations"
832
+ value {
833
+ list {
834
+ i: 1
835
+ i: 1
836
+ i: 1
837
+ i: 1
838
+ }
839
+ }
840
+ }
841
+ attr {
842
+ key: "padding"
843
+ value {
844
+ s: "SAME"
845
+ }
846
+ }
847
+ attr {
848
+ key: "strides"
849
+ value {
850
+ list {
851
+ i: 1
852
+ i: 1
853
+ i: 1
854
+ i: 1
855
+ }
856
+ }
857
+ }
858
+ }
859
+ node {
860
+ name: "layer_512_1_bn2_h/FusedBatchNorm"
861
+ op: "BiasAdd"
862
+ input: "layer_512_1_conv1_h/Conv2D"
863
+ input: "layer_512_1_conv1_h/Conv2D_bn_offset"
864
+ }
865
+ node {
866
+ name: "layer_512_1_scale2_h/Mul"
867
+ op: "Mul"
868
+ input: "layer_512_1_bn2_h/FusedBatchNorm"
869
+ input: "layer_512_1_scale2_h/mul"
870
+ }
871
+ node {
872
+ name: "layer_512_1_scale2_h/BiasAdd"
873
+ op: "BiasAdd"
874
+ input: "layer_512_1_scale2_h/Mul"
875
+ input: "layer_512_1_scale2_h/add"
876
+ }
877
+ node {
878
+ name: "Relu_7"
879
+ op: "Relu"
880
+ input: "layer_512_1_scale2_h/BiasAdd"
881
+ }
882
+ node {
883
+ name: "layer_512_1_conv2_h/convolution/SpaceToBatchND"
884
+ op: "SpaceToBatchND"
885
+ input: "Relu_7"
886
+ input: "layer_512_1_conv2_h/convolution/SpaceToBatchND/block_shape"
887
+ input: "layer_512_1_conv2_h/convolution/SpaceToBatchND/paddings"
888
+ }
889
+ node {
890
+ name: "layer_512_1_conv2_h/convolution"
891
+ op: "Conv2D"
892
+ input: "layer_512_1_conv2_h/convolution/SpaceToBatchND"
893
+ input: "layer_512_1_conv2_h/weights"
894
+ attr {
895
+ key: "dilations"
896
+ value {
897
+ list {
898
+ i: 1
899
+ i: 1
900
+ i: 1
901
+ i: 1
902
+ }
903
+ }
904
+ }
905
+ attr {
906
+ key: "padding"
907
+ value {
908
+ s: "VALID"
909
+ }
910
+ }
911
+ attr {
912
+ key: "strides"
913
+ value {
914
+ list {
915
+ i: 1
916
+ i: 1
917
+ i: 1
918
+ i: 1
919
+ }
920
+ }
921
+ }
922
+ }
923
+ node {
924
+ name: "layer_512_1_conv2_h/convolution/BatchToSpaceND"
925
+ op: "BatchToSpaceND"
926
+ input: "layer_512_1_conv2_h/convolution"
927
+ input: "layer_512_1_conv2_h/convolution/BatchToSpaceND/block_shape"
928
+ input: "layer_512_1_conv2_h/convolution/BatchToSpaceND/crops"
929
+ }
930
+ node {
931
+ name: "add_3"
932
+ op: "Add"
933
+ input: "layer_512_1_conv2_h/convolution/BatchToSpaceND"
934
+ input: "layer_512_1_conv_expand_h/Conv2D"
935
+ }
936
+ node {
937
+ name: "last_bn_h/FusedBatchNorm"
938
+ op: "FusedBatchNorm"
939
+ input: "add_3"
940
+ input: "last_bn_h/gamma"
941
+ input: "last_bn_h/beta"
942
+ input: "last_bn_h/mean"
943
+ input: "last_bn_h/std"
944
+ attr {
945
+ key: "epsilon"
946
+ value {
947
+ f: 1.00099996416e-05
948
+ }
949
+ }
950
+ }
951
+ node {
952
+ name: "last_scale_h/Mul"
953
+ op: "Mul"
954
+ input: "last_bn_h/FusedBatchNorm"
955
+ input: "last_scale_h/mul"
956
+ }
957
+ node {
958
+ name: "last_scale_h/BiasAdd"
959
+ op: "BiasAdd"
960
+ input: "last_scale_h/Mul"
961
+ input: "last_scale_h/add"
962
+ }
963
+ node {
964
+ name: "last_relu"
965
+ op: "Relu"
966
+ input: "last_scale_h/BiasAdd"
967
+ }
968
+ node {
969
+ name: "conv6_1_h/Conv2D"
970
+ op: "Conv2D"
971
+ input: "last_relu"
972
+ input: "conv6_1_h/weights"
973
+ attr {
974
+ key: "dilations"
975
+ value {
976
+ list {
977
+ i: 1
978
+ i: 1
979
+ i: 1
980
+ i: 1
981
+ }
982
+ }
983
+ }
984
+ attr {
985
+ key: "padding"
986
+ value {
987
+ s: "SAME"
988
+ }
989
+ }
990
+ attr {
991
+ key: "strides"
992
+ value {
993
+ list {
994
+ i: 1
995
+ i: 1
996
+ i: 1
997
+ i: 1
998
+ }
999
+ }
1000
+ }
1001
+ }
1002
+ node {
1003
+ name: "conv6_1_h/BiasAdd"
1004
+ op: "BiasAdd"
1005
+ input: "conv6_1_h/Conv2D"
1006
+ input: "conv6_1_h/bias"
1007
+ }
1008
+ node {
1009
+ name: "conv6_1_h/Relu"
1010
+ op: "Relu"
1011
+ input: "conv6_1_h/BiasAdd"
1012
+ }
1013
+ node {
1014
+ name: "conv6_2_h/Conv2D"
1015
+ op: "Conv2D"
1016
+ input: "conv6_1_h/Relu"
1017
+ input: "conv6_2_h/weights"
1018
+ attr {
1019
+ key: "dilations"
1020
+ value {
1021
+ list {
1022
+ i: 1
1023
+ i: 1
1024
+ i: 1
1025
+ i: 1
1026
+ }
1027
+ }
1028
+ }
1029
+ attr {
1030
+ key: "padding"
1031
+ value {
1032
+ s: "SAME"
1033
+ }
1034
+ }
1035
+ attr {
1036
+ key: "strides"
1037
+ value {
1038
+ list {
1039
+ i: 1
1040
+ i: 2
1041
+ i: 2
1042
+ i: 1
1043
+ }
1044
+ }
1045
+ }
1046
+ }
1047
+ node {
1048
+ name: "conv6_2_h/BiasAdd"
1049
+ op: "BiasAdd"
1050
+ input: "conv6_2_h/Conv2D"
1051
+ input: "conv6_2_h/bias"
1052
+ }
1053
+ node {
1054
+ name: "conv6_2_h/Relu"
1055
+ op: "Relu"
1056
+ input: "conv6_2_h/BiasAdd"
1057
+ }
1058
+ node {
1059
+ name: "conv7_1_h/Conv2D"
1060
+ op: "Conv2D"
1061
+ input: "conv6_2_h/Relu"
1062
+ input: "conv7_1_h/weights"
1063
+ attr {
1064
+ key: "dilations"
1065
+ value {
1066
+ list {
1067
+ i: 1
1068
+ i: 1
1069
+ i: 1
1070
+ i: 1
1071
+ }
1072
+ }
1073
+ }
1074
+ attr {
1075
+ key: "padding"
1076
+ value {
1077
+ s: "SAME"
1078
+ }
1079
+ }
1080
+ attr {
1081
+ key: "strides"
1082
+ value {
1083
+ list {
1084
+ i: 1
1085
+ i: 1
1086
+ i: 1
1087
+ i: 1
1088
+ }
1089
+ }
1090
+ }
1091
+ }
1092
+ node {
1093
+ name: "conv7_1_h/BiasAdd"
1094
+ op: "BiasAdd"
1095
+ input: "conv7_1_h/Conv2D"
1096
+ input: "conv7_1_h/bias"
1097
+ }
1098
+ node {
1099
+ name: "conv7_1_h/Relu"
1100
+ op: "Relu"
1101
+ input: "conv7_1_h/BiasAdd"
1102
+ }
1103
+ node {
1104
+ name: "Pad_2"
1105
+ op: "SpaceToBatchND"
1106
+ input: "conv7_1_h/Relu"
1107
+ input: "SpaceToBatchND/block_shape"
1108
+ input: "SpaceToBatchND_1/paddings"
1109
+ }
1110
+ node {
1111
+ name: "conv7_2_h/Conv2D"
1112
+ op: "Conv2D"
1113
+ input: "Pad_2"
1114
+ input: "conv7_2_h/weights"
1115
+ attr {
1116
+ key: "dilations"
1117
+ value {
1118
+ list {
1119
+ i: 1
1120
+ i: 1
1121
+ i: 1
1122
+ i: 1
1123
+ }
1124
+ }
1125
+ }
1126
+ attr {
1127
+ key: "padding"
1128
+ value {
1129
+ s: "VALID"
1130
+ }
1131
+ }
1132
+ attr {
1133
+ key: "strides"
1134
+ value {
1135
+ list {
1136
+ i: 1
1137
+ i: 2
1138
+ i: 2
1139
+ i: 1
1140
+ }
1141
+ }
1142
+ }
1143
+ }
1144
+ node {
1145
+ name: "conv7_2_h/BiasAdd"
1146
+ op: "BiasAdd"
1147
+ input: "conv7_2_h/Conv2D"
1148
+ input: "conv7_2_h/bias"
1149
+ }
1150
+ node {
1151
+ name: "BatchToSpaceND_2"
1152
+ op: "BatchToSpaceND"
1153
+ input: "conv7_2_h/BiasAdd"
1154
+ }
1155
+ node {
1156
+ name: "conv7_2_h/Relu"
1157
+ op: "Relu"
1158
+ input: "BatchToSpaceND_2"
1159
+ }
1160
+ node {
1161
+ name: "conv8_1_h/Conv2D"
1162
+ op: "Conv2D"
1163
+ input: "conv7_2_h/Relu"
1164
+ input: "conv8_1_h/weights"
1165
+ attr {
1166
+ key: "dilations"
1167
+ value {
1168
+ list {
1169
+ i: 1
1170
+ i: 1
1171
+ i: 1
1172
+ i: 1
1173
+ }
1174
+ }
1175
+ }
1176
+ attr {
1177
+ key: "padding"
1178
+ value {
1179
+ s: "SAME"
1180
+ }
1181
+ }
1182
+ attr {
1183
+ key: "strides"
1184
+ value {
1185
+ list {
1186
+ i: 1
1187
+ i: 1
1188
+ i: 1
1189
+ i: 1
1190
+ }
1191
+ }
1192
+ }
1193
+ }
1194
+ node {
1195
+ name: "conv8_1_h/BiasAdd"
1196
+ op: "BiasAdd"
1197
+ input: "conv8_1_h/Conv2D"
1198
+ input: "conv8_1_h/bias"
1199
+ }
1200
+ node {
1201
+ name: "conv8_1_h/Relu"
1202
+ op: "Relu"
1203
+ input: "conv8_1_h/BiasAdd"
1204
+ }
1205
+ node {
1206
+ name: "conv8_2_h/Conv2D"
1207
+ op: "Conv2D"
1208
+ input: "conv8_1_h/Relu"
1209
+ input: "conv8_2_h/weights"
1210
+ attr {
1211
+ key: "dilations"
1212
+ value {
1213
+ list {
1214
+ i: 1
1215
+ i: 1
1216
+ i: 1
1217
+ i: 1
1218
+ }
1219
+ }
1220
+ }
1221
+ attr {
1222
+ key: "padding"
1223
+ value {
1224
+ s: "SAME"
1225
+ }
1226
+ }
1227
+ attr {
1228
+ key: "strides"
1229
+ value {
1230
+ list {
1231
+ i: 1
1232
+ i: 1
1233
+ i: 1
1234
+ i: 1
1235
+ }
1236
+ }
1237
+ }
1238
+ }
1239
+ node {
1240
+ name: "conv8_2_h/BiasAdd"
1241
+ op: "BiasAdd"
1242
+ input: "conv8_2_h/Conv2D"
1243
+ input: "conv8_2_h/bias"
1244
+ }
1245
+ node {
1246
+ name: "conv8_2_h/Relu"
1247
+ op: "Relu"
1248
+ input: "conv8_2_h/BiasAdd"
1249
+ }
1250
+ node {
1251
+ name: "conv9_1_h/Conv2D"
1252
+ op: "Conv2D"
1253
+ input: "conv8_2_h/Relu"
1254
+ input: "conv9_1_h/weights"
1255
+ attr {
1256
+ key: "dilations"
1257
+ value {
1258
+ list {
1259
+ i: 1
1260
+ i: 1
1261
+ i: 1
1262
+ i: 1
1263
+ }
1264
+ }
1265
+ }
1266
+ attr {
1267
+ key: "padding"
1268
+ value {
1269
+ s: "SAME"
1270
+ }
1271
+ }
1272
+ attr {
1273
+ key: "strides"
1274
+ value {
1275
+ list {
1276
+ i: 1
1277
+ i: 1
1278
+ i: 1
1279
+ i: 1
1280
+ }
1281
+ }
1282
+ }
1283
+ }
1284
+ node {
1285
+ name: "conv9_1_h/BiasAdd"
1286
+ op: "BiasAdd"
1287
+ input: "conv9_1_h/Conv2D"
1288
+ input: "conv9_1_h/bias"
1289
+ }
1290
+ node {
1291
+ name: "conv9_1_h/Relu"
1292
+ op: "Relu"
1293
+ input: "conv9_1_h/BiasAdd"
1294
+ }
1295
+ node {
1296
+ name: "conv9_2_h/Conv2D"
1297
+ op: "Conv2D"
1298
+ input: "conv9_1_h/Relu"
1299
+ input: "conv9_2_h/weights"
1300
+ attr {
1301
+ key: "dilations"
1302
+ value {
1303
+ list {
1304
+ i: 1
1305
+ i: 1
1306
+ i: 1
1307
+ i: 1
1308
+ }
1309
+ }
1310
+ }
1311
+ attr {
1312
+ key: "padding"
1313
+ value {
1314
+ s: "SAME"
1315
+ }
1316
+ }
1317
+ attr {
1318
+ key: "strides"
1319
+ value {
1320
+ list {
1321
+ i: 1
1322
+ i: 1
1323
+ i: 1
1324
+ i: 1
1325
+ }
1326
+ }
1327
+ }
1328
+ }
1329
+ node {
1330
+ name: "conv9_2_h/BiasAdd"
1331
+ op: "BiasAdd"
1332
+ input: "conv9_2_h/Conv2D"
1333
+ input: "conv9_2_h/bias"
1334
+ }
1335
+ node {
1336
+ name: "conv9_2_h/Relu"
1337
+ op: "Relu"
1338
+ input: "conv9_2_h/BiasAdd"
1339
+ }
1340
+ node {
1341
+ name: "conv9_2_mbox_loc/Conv2D"
1342
+ op: "Conv2D"
1343
+ input: "conv9_2_h/Relu"
1344
+ input: "conv9_2_mbox_loc/weights"
1345
+ attr {
1346
+ key: "dilations"
1347
+ value {
1348
+ list {
1349
+ i: 1
1350
+ i: 1
1351
+ i: 1
1352
+ i: 1
1353
+ }
1354
+ }
1355
+ }
1356
+ attr {
1357
+ key: "padding"
1358
+ value {
1359
+ s: "SAME"
1360
+ }
1361
+ }
1362
+ attr {
1363
+ key: "strides"
1364
+ value {
1365
+ list {
1366
+ i: 1
1367
+ i: 1
1368
+ i: 1
1369
+ i: 1
1370
+ }
1371
+ }
1372
+ }
1373
+ }
1374
+ node {
1375
+ name: "conv9_2_mbox_loc/BiasAdd"
1376
+ op: "BiasAdd"
1377
+ input: "conv9_2_mbox_loc/Conv2D"
1378
+ input: "conv9_2_mbox_loc/bias"
1379
+ }
1380
+ node {
1381
+ name: "flatten_5/Reshape"
1382
+ op: "Flatten"
1383
+ input: "conv9_2_mbox_loc/BiasAdd"
1384
+ }
1385
+ node {
1386
+ name: "conv9_2_mbox_conf/Conv2D"
1387
+ op: "Conv2D"
1388
+ input: "conv9_2_h/Relu"
1389
+ input: "conv9_2_mbox_conf/weights"
1390
+ attr {
1391
+ key: "dilations"
1392
+ value {
1393
+ list {
1394
+ i: 1
1395
+ i: 1
1396
+ i: 1
1397
+ i: 1
1398
+ }
1399
+ }
1400
+ }
1401
+ attr {
1402
+ key: "padding"
1403
+ value {
1404
+ s: "SAME"
1405
+ }
1406
+ }
1407
+ attr {
1408
+ key: "strides"
1409
+ value {
1410
+ list {
1411
+ i: 1
1412
+ i: 1
1413
+ i: 1
1414
+ i: 1
1415
+ }
1416
+ }
1417
+ }
1418
+ }
1419
+ node {
1420
+ name: "conv9_2_mbox_conf/BiasAdd"
1421
+ op: "BiasAdd"
1422
+ input: "conv9_2_mbox_conf/Conv2D"
1423
+ input: "conv9_2_mbox_conf/bias"
1424
+ }
1425
+ node {
1426
+ name: "flatten_11/Reshape"
1427
+ op: "Flatten"
1428
+ input: "conv9_2_mbox_conf/BiasAdd"
1429
+ }
1430
+ node {
1431
+ name: "conv8_2_mbox_loc/Conv2D"
1432
+ op: "Conv2D"
1433
+ input: "conv8_2_h/Relu"
1434
+ input: "conv8_2_mbox_loc/weights"
1435
+ attr {
1436
+ key: "dilations"
1437
+ value {
1438
+ list {
1439
+ i: 1
1440
+ i: 1
1441
+ i: 1
1442
+ i: 1
1443
+ }
1444
+ }
1445
+ }
1446
+ attr {
1447
+ key: "padding"
1448
+ value {
1449
+ s: "SAME"
1450
+ }
1451
+ }
1452
+ attr {
1453
+ key: "strides"
1454
+ value {
1455
+ list {
1456
+ i: 1
1457
+ i: 1
1458
+ i: 1
1459
+ i: 1
1460
+ }
1461
+ }
1462
+ }
1463
+ }
1464
+ node {
1465
+ name: "conv8_2_mbox_loc/BiasAdd"
1466
+ op: "BiasAdd"
1467
+ input: "conv8_2_mbox_loc/Conv2D"
1468
+ input: "conv8_2_mbox_loc/bias"
1469
+ }
1470
+ node {
1471
+ name: "flatten_4/Reshape"
1472
+ op: "Flatten"
1473
+ input: "conv8_2_mbox_loc/BiasAdd"
1474
+ }
1475
+ node {
1476
+ name: "conv8_2_mbox_conf/Conv2D"
1477
+ op: "Conv2D"
1478
+ input: "conv8_2_h/Relu"
1479
+ input: "conv8_2_mbox_conf/weights"
1480
+ attr {
1481
+ key: "dilations"
1482
+ value {
1483
+ list {
1484
+ i: 1
1485
+ i: 1
1486
+ i: 1
1487
+ i: 1
1488
+ }
1489
+ }
1490
+ }
1491
+ attr {
1492
+ key: "padding"
1493
+ value {
1494
+ s: "SAME"
1495
+ }
1496
+ }
1497
+ attr {
1498
+ key: "strides"
1499
+ value {
1500
+ list {
1501
+ i: 1
1502
+ i: 1
1503
+ i: 1
1504
+ i: 1
1505
+ }
1506
+ }
1507
+ }
1508
+ }
1509
+ node {
1510
+ name: "conv8_2_mbox_conf/BiasAdd"
1511
+ op: "BiasAdd"
1512
+ input: "conv8_2_mbox_conf/Conv2D"
1513
+ input: "conv8_2_mbox_conf/bias"
1514
+ }
1515
+ node {
1516
+ name: "flatten_10/Reshape"
1517
+ op: "Flatten"
1518
+ input: "conv8_2_mbox_conf/BiasAdd"
1519
+ }
1520
+ node {
1521
+ name: "conv7_2_mbox_loc/Conv2D"
1522
+ op: "Conv2D"
1523
+ input: "conv7_2_h/Relu"
1524
+ input: "conv7_2_mbox_loc/weights"
1525
+ attr {
1526
+ key: "dilations"
1527
+ value {
1528
+ list {
1529
+ i: 1
1530
+ i: 1
1531
+ i: 1
1532
+ i: 1
1533
+ }
1534
+ }
1535
+ }
1536
+ attr {
1537
+ key: "padding"
1538
+ value {
1539
+ s: "SAME"
1540
+ }
1541
+ }
1542
+ attr {
1543
+ key: "strides"
1544
+ value {
1545
+ list {
1546
+ i: 1
1547
+ i: 1
1548
+ i: 1
1549
+ i: 1
1550
+ }
1551
+ }
1552
+ }
1553
+ }
1554
+ node {
1555
+ name: "conv7_2_mbox_loc/BiasAdd"
1556
+ op: "BiasAdd"
1557
+ input: "conv7_2_mbox_loc/Conv2D"
1558
+ input: "conv7_2_mbox_loc/bias"
1559
+ }
1560
+ node {
1561
+ name: "flatten_3/Reshape"
1562
+ op: "Flatten"
1563
+ input: "conv7_2_mbox_loc/BiasAdd"
1564
+ }
1565
+ node {
1566
+ name: "conv7_2_mbox_conf/Conv2D"
1567
+ op: "Conv2D"
1568
+ input: "conv7_2_h/Relu"
1569
+ input: "conv7_2_mbox_conf/weights"
1570
+ attr {
1571
+ key: "dilations"
1572
+ value {
1573
+ list {
1574
+ i: 1
1575
+ i: 1
1576
+ i: 1
1577
+ i: 1
1578
+ }
1579
+ }
1580
+ }
1581
+ attr {
1582
+ key: "padding"
1583
+ value {
1584
+ s: "SAME"
1585
+ }
1586
+ }
1587
+ attr {
1588
+ key: "strides"
1589
+ value {
1590
+ list {
1591
+ i: 1
1592
+ i: 1
1593
+ i: 1
1594
+ i: 1
1595
+ }
1596
+ }
1597
+ }
1598
+ }
1599
+ node {
1600
+ name: "conv7_2_mbox_conf/BiasAdd"
1601
+ op: "BiasAdd"
1602
+ input: "conv7_2_mbox_conf/Conv2D"
1603
+ input: "conv7_2_mbox_conf/bias"
1604
+ }
1605
+ node {
1606
+ name: "flatten_9/Reshape"
1607
+ op: "Flatten"
1608
+ input: "conv7_2_mbox_conf/BiasAdd"
1609
+ }
1610
+ node {
1611
+ name: "conv6_2_mbox_loc/Conv2D"
1612
+ op: "Conv2D"
1613
+ input: "conv6_2_h/Relu"
1614
+ input: "conv6_2_mbox_loc/weights"
1615
+ attr {
1616
+ key: "dilations"
1617
+ value {
1618
+ list {
1619
+ i: 1
1620
+ i: 1
1621
+ i: 1
1622
+ i: 1
1623
+ }
1624
+ }
1625
+ }
1626
+ attr {
1627
+ key: "padding"
1628
+ value {
1629
+ s: "SAME"
1630
+ }
1631
+ }
1632
+ attr {
1633
+ key: "strides"
1634
+ value {
1635
+ list {
1636
+ i: 1
1637
+ i: 1
1638
+ i: 1
1639
+ i: 1
1640
+ }
1641
+ }
1642
+ }
1643
+ }
1644
+ node {
1645
+ name: "conv6_2_mbox_loc/BiasAdd"
1646
+ op: "BiasAdd"
1647
+ input: "conv6_2_mbox_loc/Conv2D"
1648
+ input: "conv6_2_mbox_loc/bias"
1649
+ }
1650
+ node {
1651
+ name: "flatten_2/Reshape"
1652
+ op: "Flatten"
1653
+ input: "conv6_2_mbox_loc/BiasAdd"
1654
+ }
1655
+ node {
1656
+ name: "conv6_2_mbox_conf/Conv2D"
1657
+ op: "Conv2D"
1658
+ input: "conv6_2_h/Relu"
1659
+ input: "conv6_2_mbox_conf/weights"
1660
+ attr {
1661
+ key: "dilations"
1662
+ value {
1663
+ list {
1664
+ i: 1
1665
+ i: 1
1666
+ i: 1
1667
+ i: 1
1668
+ }
1669
+ }
1670
+ }
1671
+ attr {
1672
+ key: "padding"
1673
+ value {
1674
+ s: "SAME"
1675
+ }
1676
+ }
1677
+ attr {
1678
+ key: "strides"
1679
+ value {
1680
+ list {
1681
+ i: 1
1682
+ i: 1
1683
+ i: 1
1684
+ i: 1
1685
+ }
1686
+ }
1687
+ }
1688
+ }
1689
+ node {
1690
+ name: "conv6_2_mbox_conf/BiasAdd"
1691
+ op: "BiasAdd"
1692
+ input: "conv6_2_mbox_conf/Conv2D"
1693
+ input: "conv6_2_mbox_conf/bias"
1694
+ }
1695
+ node {
1696
+ name: "flatten_8/Reshape"
1697
+ op: "Flatten"
1698
+ input: "conv6_2_mbox_conf/BiasAdd"
1699
+ }
1700
+ node {
1701
+ name: "fc7_mbox_loc/Conv2D"
1702
+ op: "Conv2D"
1703
+ input: "last_relu"
1704
+ input: "fc7_mbox_loc/weights"
1705
+ attr {
1706
+ key: "dilations"
1707
+ value {
1708
+ list {
1709
+ i: 1
1710
+ i: 1
1711
+ i: 1
1712
+ i: 1
1713
+ }
1714
+ }
1715
+ }
1716
+ attr {
1717
+ key: "padding"
1718
+ value {
1719
+ s: "SAME"
1720
+ }
1721
+ }
1722
+ attr {
1723
+ key: "strides"
1724
+ value {
1725
+ list {
1726
+ i: 1
1727
+ i: 1
1728
+ i: 1
1729
+ i: 1
1730
+ }
1731
+ }
1732
+ }
1733
+ }
1734
+ node {
1735
+ name: "fc7_mbox_loc/BiasAdd"
1736
+ op: "BiasAdd"
1737
+ input: "fc7_mbox_loc/Conv2D"
1738
+ input: "fc7_mbox_loc/bias"
1739
+ }
1740
+ node {
1741
+ name: "flatten_1/Reshape"
1742
+ op: "Flatten"
1743
+ input: "fc7_mbox_loc/BiasAdd"
1744
+ }
1745
+ node {
1746
+ name: "mbox_loc"
1747
+ op: "ConcatV2"
1748
+ input: "flatten/Reshape"
1749
+ input: "flatten_1/Reshape"
1750
+ input: "flatten_2/Reshape"
1751
+ input: "flatten_3/Reshape"
1752
+ input: "flatten_4/Reshape"
1753
+ input: "flatten_5/Reshape"
1754
+ input: "mbox_loc/axis"
1755
+ }
1756
+ node {
1757
+ name: "fc7_mbox_conf/Conv2D"
1758
+ op: "Conv2D"
1759
+ input: "last_relu"
1760
+ input: "fc7_mbox_conf/weights"
1761
+ attr {
1762
+ key: "dilations"
1763
+ value {
1764
+ list {
1765
+ i: 1
1766
+ i: 1
1767
+ i: 1
1768
+ i: 1
1769
+ }
1770
+ }
1771
+ }
1772
+ attr {
1773
+ key: "padding"
1774
+ value {
1775
+ s: "SAME"
1776
+ }
1777
+ }
1778
+ attr {
1779
+ key: "strides"
1780
+ value {
1781
+ list {
1782
+ i: 1
1783
+ i: 1
1784
+ i: 1
1785
+ i: 1
1786
+ }
1787
+ }
1788
+ }
1789
+ }
1790
+ node {
1791
+ name: "fc7_mbox_conf/BiasAdd"
1792
+ op: "BiasAdd"
1793
+ input: "fc7_mbox_conf/Conv2D"
1794
+ input: "fc7_mbox_conf/bias"
1795
+ }
1796
+ node {
1797
+ name: "flatten_7/Reshape"
1798
+ op: "Flatten"
1799
+ input: "fc7_mbox_conf/BiasAdd"
1800
+ }
1801
+ node {
1802
+ name: "mbox_conf"
1803
+ op: "ConcatV2"
1804
+ input: "flatten_6/Reshape"
1805
+ input: "flatten_7/Reshape"
1806
+ input: "flatten_8/Reshape"
1807
+ input: "flatten_9/Reshape"
1808
+ input: "flatten_10/Reshape"
1809
+ input: "flatten_11/Reshape"
1810
+ input: "mbox_conf/axis"
1811
+ }
1812
+ node {
1813
+ name: "mbox_conf_reshape"
1814
+ op: "Reshape"
1815
+ input: "mbox_conf"
1816
+ input: "reshape_before_softmax"
1817
+ }
1818
+ node {
1819
+ name: "mbox_conf_softmax"
1820
+ op: "Softmax"
1821
+ input: "mbox_conf_reshape"
1822
+ attr {
1823
+ key: "axis"
1824
+ value {
1825
+ i: 2
1826
+ }
1827
+ }
1828
+ }
1829
+ node {
1830
+ name: "mbox_conf_flatten"
1831
+ op: "Flatten"
1832
+ input: "mbox_conf_softmax"
1833
+ }
1834
+ node {
1835
+ name: "PriorBox_0"
1836
+ op: "PriorBox"
1837
+ input: "conv4_3_norm/mul_1"
1838
+ input: "data"
1839
+ attr {
1840
+ key: "aspect_ratio"
1841
+ value {
1842
+ tensor {
1843
+ dtype: DT_FLOAT
1844
+ tensor_shape {
1845
+ dim {
1846
+ size: 1
1847
+ }
1848
+ }
1849
+ float_val: 2.0
1850
+ }
1851
+ }
1852
+ }
1853
+ attr {
1854
+ key: "clip"
1855
+ value {
1856
+ b: false
1857
+ }
1858
+ }
1859
+ attr {
1860
+ key: "flip"
1861
+ value {
1862
+ b: true
1863
+ }
1864
+ }
1865
+ attr {
1866
+ key: "max_size"
1867
+ value {
1868
+ i: 60
1869
+ }
1870
+ }
1871
+ attr {
1872
+ key: "min_size"
1873
+ value {
1874
+ i: 30
1875
+ }
1876
+ }
1877
+ attr {
1878
+ key: "offset"
1879
+ value {
1880
+ f: 0.5
1881
+ }
1882
+ }
1883
+ attr {
1884
+ key: "step"
1885
+ value {
1886
+ f: 8.0
1887
+ }
1888
+ }
1889
+ attr {
1890
+ key: "variance"
1891
+ value {
1892
+ tensor {
1893
+ dtype: DT_FLOAT
1894
+ tensor_shape {
1895
+ dim {
1896
+ size: 4
1897
+ }
1898
+ }
1899
+ float_val: 0.10000000149
1900
+ float_val: 0.10000000149
1901
+ float_val: 0.20000000298
1902
+ float_val: 0.20000000298
1903
+ }
1904
+ }
1905
+ }
1906
+ }
1907
+ node {
1908
+ name: "PriorBox_1"
1909
+ op: "PriorBox"
1910
+ input: "last_relu"
1911
+ input: "data"
1912
+ attr {
1913
+ key: "aspect_ratio"
1914
+ value {
1915
+ tensor {
1916
+ dtype: DT_FLOAT
1917
+ tensor_shape {
1918
+ dim {
1919
+ size: 2
1920
+ }
1921
+ }
1922
+ float_val: 2.0
1923
+ float_val: 3.0
1924
+ }
1925
+ }
1926
+ }
1927
+ attr {
1928
+ key: "clip"
1929
+ value {
1930
+ b: false
1931
+ }
1932
+ }
1933
+ attr {
1934
+ key: "flip"
1935
+ value {
1936
+ b: true
1937
+ }
1938
+ }
1939
+ attr {
1940
+ key: "max_size"
1941
+ value {
1942
+ i: 111
1943
+ }
1944
+ }
1945
+ attr {
1946
+ key: "min_size"
1947
+ value {
1948
+ i: 60
1949
+ }
1950
+ }
1951
+ attr {
1952
+ key: "offset"
1953
+ value {
1954
+ f: 0.5
1955
+ }
1956
+ }
1957
+ attr {
1958
+ key: "step"
1959
+ value {
1960
+ f: 16.0
1961
+ }
1962
+ }
1963
+ attr {
1964
+ key: "variance"
1965
+ value {
1966
+ tensor {
1967
+ dtype: DT_FLOAT
1968
+ tensor_shape {
1969
+ dim {
1970
+ size: 4
1971
+ }
1972
+ }
1973
+ float_val: 0.10000000149
1974
+ float_val: 0.10000000149
1975
+ float_val: 0.20000000298
1976
+ float_val: 0.20000000298
1977
+ }
1978
+ }
1979
+ }
1980
+ }
1981
+ node {
1982
+ name: "PriorBox_2"
1983
+ op: "PriorBox"
1984
+ input: "conv6_2_h/Relu"
1985
+ input: "data"
1986
+ attr {
1987
+ key: "aspect_ratio"
1988
+ value {
1989
+ tensor {
1990
+ dtype: DT_FLOAT
1991
+ tensor_shape {
1992
+ dim {
1993
+ size: 2
1994
+ }
1995
+ }
1996
+ float_val: 2.0
1997
+ float_val: 3.0
1998
+ }
1999
+ }
2000
+ }
2001
+ attr {
2002
+ key: "clip"
2003
+ value {
2004
+ b: false
2005
+ }
2006
+ }
2007
+ attr {
2008
+ key: "flip"
2009
+ value {
2010
+ b: true
2011
+ }
2012
+ }
2013
+ attr {
2014
+ key: "max_size"
2015
+ value {
2016
+ i: 162
2017
+ }
2018
+ }
2019
+ attr {
2020
+ key: "min_size"
2021
+ value {
2022
+ i: 111
2023
+ }
2024
+ }
2025
+ attr {
2026
+ key: "offset"
2027
+ value {
2028
+ f: 0.5
2029
+ }
2030
+ }
2031
+ attr {
2032
+ key: "step"
2033
+ value {
2034
+ f: 32.0
2035
+ }
2036
+ }
2037
+ attr {
2038
+ key: "variance"
2039
+ value {
2040
+ tensor {
2041
+ dtype: DT_FLOAT
2042
+ tensor_shape {
2043
+ dim {
2044
+ size: 4
2045
+ }
2046
+ }
2047
+ float_val: 0.10000000149
2048
+ float_val: 0.10000000149
2049
+ float_val: 0.20000000298
2050
+ float_val: 0.20000000298
2051
+ }
2052
+ }
2053
+ }
2054
+ }
2055
+ node {
2056
+ name: "PriorBox_3"
2057
+ op: "PriorBox"
2058
+ input: "conv7_2_h/Relu"
2059
+ input: "data"
2060
+ attr {
2061
+ key: "aspect_ratio"
2062
+ value {
2063
+ tensor {
2064
+ dtype: DT_FLOAT
2065
+ tensor_shape {
2066
+ dim {
2067
+ size: 2
2068
+ }
2069
+ }
2070
+ float_val: 2.0
2071
+ float_val: 3.0
2072
+ }
2073
+ }
2074
+ }
2075
+ attr {
2076
+ key: "clip"
2077
+ value {
2078
+ b: false
2079
+ }
2080
+ }
2081
+ attr {
2082
+ key: "flip"
2083
+ value {
2084
+ b: true
2085
+ }
2086
+ }
2087
+ attr {
2088
+ key: "max_size"
2089
+ value {
2090
+ i: 213
2091
+ }
2092
+ }
2093
+ attr {
2094
+ key: "min_size"
2095
+ value {
2096
+ i: 162
2097
+ }
2098
+ }
2099
+ attr {
2100
+ key: "offset"
2101
+ value {
2102
+ f: 0.5
2103
+ }
2104
+ }
2105
+ attr {
2106
+ key: "step"
2107
+ value {
2108
+ f: 64.0
2109
+ }
2110
+ }
2111
+ attr {
2112
+ key: "variance"
2113
+ value {
2114
+ tensor {
2115
+ dtype: DT_FLOAT
2116
+ tensor_shape {
2117
+ dim {
2118
+ size: 4
2119
+ }
2120
+ }
2121
+ float_val: 0.10000000149
2122
+ float_val: 0.10000000149
2123
+ float_val: 0.20000000298
2124
+ float_val: 0.20000000298
2125
+ }
2126
+ }
2127
+ }
2128
+ }
2129
+ node {
2130
+ name: "PriorBox_4"
2131
+ op: "PriorBox"
2132
+ input: "conv8_2_h/Relu"
2133
+ input: "data"
2134
+ attr {
2135
+ key: "aspect_ratio"
2136
+ value {
2137
+ tensor {
2138
+ dtype: DT_FLOAT
2139
+ tensor_shape {
2140
+ dim {
2141
+ size: 1
2142
+ }
2143
+ }
2144
+ float_val: 2.0
2145
+ }
2146
+ }
2147
+ }
2148
+ attr {
2149
+ key: "clip"
2150
+ value {
2151
+ b: false
2152
+ }
2153
+ }
2154
+ attr {
2155
+ key: "flip"
2156
+ value {
2157
+ b: true
2158
+ }
2159
+ }
2160
+ attr {
2161
+ key: "max_size"
2162
+ value {
2163
+ i: 264
2164
+ }
2165
+ }
2166
+ attr {
2167
+ key: "min_size"
2168
+ value {
2169
+ i: 213
2170
+ }
2171
+ }
2172
+ attr {
2173
+ key: "offset"
2174
+ value {
2175
+ f: 0.5
2176
+ }
2177
+ }
2178
+ attr {
2179
+ key: "step"
2180
+ value {
2181
+ f: 100.0
2182
+ }
2183
+ }
2184
+ attr {
2185
+ key: "variance"
2186
+ value {
2187
+ tensor {
2188
+ dtype: DT_FLOAT
2189
+ tensor_shape {
2190
+ dim {
2191
+ size: 4
2192
+ }
2193
+ }
2194
+ float_val: 0.10000000149
2195
+ float_val: 0.10000000149
2196
+ float_val: 0.20000000298
2197
+ float_val: 0.20000000298
2198
+ }
2199
+ }
2200
+ }
2201
+ }
2202
+ node {
2203
+ name: "PriorBox_5"
2204
+ op: "PriorBox"
2205
+ input: "conv9_2_h/Relu"
2206
+ input: "data"
2207
+ attr {
2208
+ key: "aspect_ratio"
2209
+ value {
2210
+ tensor {
2211
+ dtype: DT_FLOAT
2212
+ tensor_shape {
2213
+ dim {
2214
+ size: 1
2215
+ }
2216
+ }
2217
+ float_val: 2.0
2218
+ }
2219
+ }
2220
+ }
2221
+ attr {
2222
+ key: "clip"
2223
+ value {
2224
+ b: false
2225
+ }
2226
+ }
2227
+ attr {
2228
+ key: "flip"
2229
+ value {
2230
+ b: true
2231
+ }
2232
+ }
2233
+ attr {
2234
+ key: "max_size"
2235
+ value {
2236
+ i: 315
2237
+ }
2238
+ }
2239
+ attr {
2240
+ key: "min_size"
2241
+ value {
2242
+ i: 264
2243
+ }
2244
+ }
2245
+ attr {
2246
+ key: "offset"
2247
+ value {
2248
+ f: 0.5
2249
+ }
2250
+ }
2251
+ attr {
2252
+ key: "step"
2253
+ value {
2254
+ f: 300.0
2255
+ }
2256
+ }
2257
+ attr {
2258
+ key: "variance"
2259
+ value {
2260
+ tensor {
2261
+ dtype: DT_FLOAT
2262
+ tensor_shape {
2263
+ dim {
2264
+ size: 4
2265
+ }
2266
+ }
2267
+ float_val: 0.10000000149
2268
+ float_val: 0.10000000149
2269
+ float_val: 0.20000000298
2270
+ float_val: 0.20000000298
2271
+ }
2272
+ }
2273
+ }
2274
+ }
2275
+ node {
2276
+ name: "mbox_priorbox"
2277
+ op: "ConcatV2"
2278
+ input: "PriorBox_0"
2279
+ input: "PriorBox_1"
2280
+ input: "PriorBox_2"
2281
+ input: "PriorBox_3"
2282
+ input: "PriorBox_4"
2283
+ input: "PriorBox_5"
2284
+ input: "mbox_loc/axis"
2285
+ }
2286
+ node {
2287
+ name: "detection_out"
2288
+ op: "DetectionOutput"
2289
+ input: "mbox_loc"
2290
+ input: "mbox_conf_flatten"
2291
+ input: "mbox_priorbox"
2292
+ attr {
2293
+ key: "background_label_id"
2294
+ value {
2295
+ i: 0
2296
+ }
2297
+ }
2298
+ attr {
2299
+ key: "code_type"
2300
+ value {
2301
+ s: "CENTER_SIZE"
2302
+ }
2303
+ }
2304
+ attr {
2305
+ key: "confidence_threshold"
2306
+ value {
2307
+ f: 0.00999999977648
2308
+ }
2309
+ }
2310
+ attr {
2311
+ key: "keep_top_k"
2312
+ value {
2313
+ i: 200
2314
+ }
2315
+ }
2316
+ attr {
2317
+ key: "nms_threshold"
2318
+ value {
2319
+ f: 0.449999988079
2320
+ }
2321
+ }
2322
+ attr {
2323
+ key: "num_classes"
2324
+ value {
2325
+ i: 2
2326
+ }
2327
+ }
2328
+ attr {
2329
+ key: "share_location"
2330
+ value {
2331
+ b: true
2332
+ }
2333
+ }
2334
+ attr {
2335
+ key: "top_k"
2336
+ value {
2337
+ i: 400
2338
+ }
2339
+ }
2340
+ }
2341
+ node {
2342
+ name: "reshape_before_softmax"
2343
+ op: "Const"
2344
+ attr {
2345
+ key: "value"
2346
+ value {
2347
+ tensor {
2348
+ dtype: DT_INT32
2349
+ tensor_shape {
2350
+ dim {
2351
+ size: 3
2352
+ }
2353
+ }
2354
+ int_val: 0
2355
+ int_val: -1
2356
+ int_val: 2
2357
+ }
2358
+ }
2359
+ }
2360
+ }
2361
+ library {
2362
+ }
opencv_face_detector_uint8.pb ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5c71d752ef2cbf2f457ac82fdd580fcb2522fd04c5efdaed18eb6d9e2843fbed
3
+ size 2727750
shape_predictor_68_face_landmarks.dat ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fbdc2cb80eb9aa7a758672cbfdda32ba6300efe9b6e6c7a299ff7e736b11b92f
3
+ size 99693937
yolov11n-face.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9420a9d4933940d2202f511d45df1750e3c1546dd9efc7a3985caae3bbbf7ed2
3
+ size 5455955