1layer {
2  name: "data"
3  type: "Input"
4  top: "data"
5  input_param {
6    shape {
7      dim: 1
8      dim: 1
9      dim: 224
10      dim: 224
11    }
12  }
13}
14layer {
15  name: "conv0"
16  type: "Convolution"
17  bottom: "data"
18  top: "conv0"
19  param {
20    lr_mult: 1.0
21    decay_mult: 1.0
22  }
23  param {
24    lr_mult: 1.0
25    decay_mult: 0.0
26  }
27  convolution_param {
28    num_output: 32
29    bias_term: true
30    pad: 1
31    kernel_size: 3
32    group: 1
33    stride: 1
34    weight_filler {
35      type: "msra"
36    }
37  }
38}
39layer {
40  name: "conv0/lrelu"
41  type: "ReLU"
42  bottom: "conv0"
43  top: "conv0"
44  relu_param {
45    negative_slope: 0.05000000074505806
46  }
47}
48layer {
49  name: "db1/reduce"
50  type: "Convolution"
51  bottom: "conv0"
52  top: "db1/reduce"
53  param {
54    lr_mult: 1.0
55    decay_mult: 1.0
56  }
57  param {
58    lr_mult: 1.0
59    decay_mult: 0.0
60  }
61  convolution_param {
62    num_output: 8
63    bias_term: true
64    pad: 0
65    kernel_size: 1
66    group: 1
67    stride: 1
68    weight_filler {
69      type: "msra"
70    }
71  }
72}
73layer {
74  name: "db1/reduce/lrelu"
75  type: "ReLU"
76  bottom: "db1/reduce"
77  top: "db1/reduce"
78  relu_param {
79    negative_slope: 0.05000000074505806
80  }
81}
82layer {
83  name: "db1/3x3"
84  type: "Convolution"
85  bottom: "db1/reduce"
86  top: "db1/3x3"
87  param {
88    lr_mult: 1.0
89    decay_mult: 1.0
90  }
91  param {
92    lr_mult: 1.0
93    decay_mult: 0.0
94  }
95  convolution_param {
96    num_output: 8
97    bias_term: true
98    pad: 1
99    kernel_size: 3
100    group: 8
101    stride: 1
102    weight_filler {
103      type: "msra"
104    }
105  }
106}
107layer {
108  name: "db1/3x3/lrelu"
109  type: "ReLU"
110  bottom: "db1/3x3"
111  top: "db1/3x3"
112  relu_param {
113    negative_slope: 0.05000000074505806
114  }
115}
116layer {
117  name: "db1/1x1"
118  type: "Convolution"
119  bottom: "db1/3x3"
120  top: "db1/1x1"
121  param {
122    lr_mult: 1.0
123    decay_mult: 1.0
124  }
125  param {
126    lr_mult: 1.0
127    decay_mult: 0.0
128  }
129  convolution_param {
130    num_output: 32
131    bias_term: true
132    pad: 0
133    kernel_size: 1
134    group: 1
135    stride: 1
136    weight_filler {
137      type: "msra"
138    }
139  }
140}
141layer {
142  name: "db1/1x1/lrelu"
143  type: "ReLU"
144  bottom: "db1/1x1"
145  top: "db1/1x1"
146  relu_param {
147    negative_slope: 0.05000000074505806
148  }
149}
150layer {
151  name: "db1/concat"
152  type: "Concat"
153  bottom: "conv0"
154  bottom: "db1/1x1"
155  top: "db1/concat"
156  concat_param {
157    axis: 1
158  }
159}
160layer {
161  name: "db2/reduce"
162  type: "Convolution"
163  bottom: "db1/concat"
164  top: "db2/reduce"
165  param {
166    lr_mult: 1.0
167    decay_mult: 1.0
168  }
169  param {
170    lr_mult: 1.0
171    decay_mult: 0.0
172  }
173  convolution_param {
174    num_output: 8
175    bias_term: true
176    pad: 0
177    kernel_size: 1
178    group: 1
179    stride: 1
180    weight_filler {
181      type: "msra"
182    }
183  }
184}
185layer {
186  name: "db2/reduce/lrelu"
187  type: "ReLU"
188  bottom: "db2/reduce"
189  top: "db2/reduce"
190  relu_param {
191    negative_slope: 0.05000000074505806
192  }
193}
194layer {
195  name: "db2/3x3"
196  type: "Convolution"
197  bottom: "db2/reduce"
198  top: "db2/3x3"
199  param {
200    lr_mult: 1.0
201    decay_mult: 1.0
202  }
203  param {
204    lr_mult: 1.0
205    decay_mult: 0.0
206  }
207  convolution_param {
208    num_output: 8
209    bias_term: true
210    pad: 1
211    kernel_size: 3
212    group: 8
213    stride: 1
214    weight_filler {
215      type: "msra"
216    }
217  }
218}
219layer {
220  name: "db2/3x3/lrelu"
221  type: "ReLU"
222  bottom: "db2/3x3"
223  top: "db2/3x3"
224  relu_param {
225    negative_slope: 0.05000000074505806
226  }
227}
228layer {
229  name: "db2/1x1"
230  type: "Convolution"
231  bottom: "db2/3x3"
232  top: "db2/1x1"
233  param {
234    lr_mult: 1.0
235    decay_mult: 1.0
236  }
237  param {
238    lr_mult: 1.0
239    decay_mult: 0.0
240  }
241  convolution_param {
242    num_output: 32
243    bias_term: true
244    pad: 0
245    kernel_size: 1
246    group: 1
247    stride: 1
248    weight_filler {
249      type: "msra"
250    }
251  }
252}
253layer {
254  name: "db2/1x1/lrelu"
255  type: "ReLU"
256  bottom: "db2/1x1"
257  top: "db2/1x1"
258  relu_param {
259    negative_slope: 0.05000000074505806
260  }
261}
262layer {
263  name: "db2/concat"
264  type: "Concat"
265  bottom: "db1/concat"
266  bottom: "db2/1x1"
267  top: "db2/concat"
268  concat_param {
269    axis: 1
270  }
271}
272layer {
273  name: "upsample/reduce"
274  type: "Convolution"
275  bottom: "db2/concat"
276  top: "upsample/reduce"
277  param {
278    lr_mult: 1.0
279    decay_mult: 1.0
280  }
281  param {
282    lr_mult: 1.0
283    decay_mult: 0.0
284  }
285  convolution_param {
286    num_output: 32
287    bias_term: true
288    pad: 0
289    kernel_size: 1
290    group: 1
291    stride: 1
292    weight_filler {
293      type: "msra"
294    }
295  }
296}
297layer {
298  name: "upsample/reduce/lrelu"
299  type: "ReLU"
300  bottom: "upsample/reduce"
301  top: "upsample/reduce"
302  relu_param {
303    negative_slope: 0.05000000074505806
304  }
305}
306layer {
307  name: "upsample/deconv"
308  type: "Deconvolution"
309  bottom: "upsample/reduce"
310  top: "upsample/deconv"
311  param {
312    lr_mult: 1.0
313    decay_mult: 1.0
314  }
315  param {
316    lr_mult: 1.0
317    decay_mult: 0.0
318  }
319  convolution_param {
320    num_output: 32
321    bias_term: true
322    pad: 1
323    kernel_size: 3
324    group: 32
325    stride: 2
326    weight_filler {
327      type: "msra"
328    }
329  }
330}
331layer {
332  name: "upsample/lrelu"
333  type: "ReLU"
334  bottom: "upsample/deconv"
335  top: "upsample/deconv"
336  relu_param {
337    negative_slope: 0.05000000074505806
338  }
339}
340layer {
341  name: "upsample/rec"
342  type: "Convolution"
343  bottom: "upsample/deconv"
344  top: "upsample/rec"
345  param {
346    lr_mult: 1.0
347    decay_mult: 1.0
348  }
349  param {
350    lr_mult: 1.0
351    decay_mult: 0.0
352  }
353  convolution_param {
354    num_output: 1
355    bias_term: true
356    pad: 0
357    kernel_size: 1
358    group: 1
359    stride: 1
360    weight_filler {
361      type: "msra"
362    }
363  }
364}
365layer {
366  name: "nearest"
367  type: "Deconvolution"
368  bottom: "data"
369  top: "nearest"
370  param {
371    lr_mult: 0.0
372    decay_mult: 0.0
373  }
374  convolution_param {
375    num_output: 1
376    bias_term: false
377    pad: 0
378    kernel_size: 2
379    group: 1
380    stride: 2
381    weight_filler {
382      type: "constant"
383      value: 1.0
384    }
385  }
386}
387layer {
388  name: "Crop1"
389  type: "Crop"
390  bottom: "nearest"
391  bottom: "upsample/rec"
392  top: "Crop1"
393}
394layer {
395  name: "fc"
396  type: "Eltwise"
397  bottom: "Crop1"
398  bottom: "upsample/rec"
399  top: "fc"
400  eltwise_param {
401    operation: SUM
402  }
403}
404