├── .gitignore ├── demo.sh ├── vgg16.py ├── utils.py ├── convert_vgg16.py ├── convert_resnet152.py ├── VGG-Places365.prototxt ├── Places2_365_CNN.py └── Places2-365-CNN.prototxt /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | -------------------------------------------------------------------------------- /demo.sh: -------------------------------------------------------------------------------- 1 | export LD_PRELOAD=libmkl_rt.so 2 | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/nccl/build/lib 3 | 4 | CAFFE_ROOT=/home/lab-qiu.suo/devel/caffe 5 | export PYTHONPATH=$CAFFE_ROOT/python:$PYTHONPATH 6 | 7 | set -x 8 | set -e 9 | 10 | LOG=convert.log 11 | python convert_resnet152.py \ 12 | 2>&1 | tee -i $LOG -------------------------------------------------------------------------------- /vgg16.py: -------------------------------------------------------------------------------- 1 | import torch.nn as nn 2 | 3 | cfg = [64, 64, 'M', 128, 128, 'M', 256, 256, 256, 'M', 512, 512, 512, 'M', 512, 512, 512]#, 'M'] 4 | 5 | class VGG16(nn.Module): 6 | def __init__(self): 7 | super(VGG16, self).__init__() 8 | self.features = self.make_layers() 9 | 10 | def make_layers(self): 11 | features = nn.Sequential() 12 | in_channels = 3 13 | ith_block = 1 14 | ith_sublayer = 1 15 | for v in cfg: 16 | if v == 'M': 17 | features.add_module('pool%d'%ith_block, nn.MaxPool2d(kernel_size=2, stride=2)) 18 | ith_block += 1 19 | ith_sublayer = 1 20 | else: 21 | features.add_module('conv%d_%d'%(ith_block,ith_sublayer), 22 | nn.Conv2d(in_channels, v, kernel_size=3, padding=1)) 23 | features.add_module('relu%d_%d'%(ith_block,ith_sublayer), nn.ReLU(inplace=True)) 24 | ith_sublayer += 1 25 | in_channels = v 26 | return features 27 | 28 | def forward(self, x): 29 | x = self.features(x) 30 | return x 31 | 32 | -------------------------------------------------------------------------------- /utils.py: -------------------------------------------------------------------------------- 1 | import caffe 2 | 3 | def load_caffe(proto, weight): 4 | caffe.set_mode_cpu() 5 | net = caffe.Net(proto, weight, caffe.TEST) 6 | return net 7 | 8 | class CaffeParamProvider(): 9 | def __init__(self, caffe_net): 10 | self.caffe_net = caffe_net 11 | 12 | def conv_kernel(self, name): 13 | k = self.caffe_net.params[name][0].data 14 | return k 15 | 16 | def conv_biases(self, name): 17 | k = self.caffe_net.params[name][1].data 18 | return k 19 | 20 | def bn_gamma(self, name): 21 | return self.caffe_net.params[name][0].data 22 | 23 | def bn_beta(self, name): 24 | return self.caffe_net.params[name][1].data 25 | 26 | def bn_mean(self, name): 27 | return (self.caffe_net.params[name][0].data/self.caffe_net.params[name][2].data) 28 | 29 | def bn_variance(self, name): 30 | return (self.caffe_net.params[name][1].data/self.caffe_net.params[name][2].data) 31 | 32 | def fc_weights(self, name): 33 | w = self.caffe_net.params[name][0].data 34 | #w = w.transpose((1, 0)) 35 | return w 36 | 37 | def fc_biases(self, name): 38 | b = self.caffe_net.params[name][1].data 39 | return b -------------------------------------------------------------------------------- /convert_vgg16.py: -------------------------------------------------------------------------------- 1 | from utils import * 2 | import torch 3 | from collections import OrderedDict 4 | 5 | def parse_param_name(p, var_name): 6 | a = var_name.strip().split('.') 7 | name = a[-2] 8 | if a[-1] == 'weight': 9 | data = p.conv_kernel(name) 10 | if a[-1] == 'bias': 11 | data = p.conv_biases(name) 12 | return name, data 13 | 14 | if __name__ == '__main__': 15 | 16 | prototxt = 'VGG-Places365.prototxt' 17 | caffemodel = 'vgg16_places365.caffemodel' 18 | net = load_caffe(prototxt, caffemodel) 19 | caffe_keys = net.params.keys() 20 | print(caffe_keys) 21 | param_provider = CaffeParamProvider(net) 22 | record_caffe = dict.fromkeys(caffe_keys, 0) 23 | 24 | from vgg16 import VGG16 25 | model = VGG16() 26 | py_keys = model.state_dict().keys() 27 | print(py_keys) 28 | 29 | print('caffe: {} keys, pytoch: {} keys'.format(len(caffe_keys),len(py_keys))) 30 | 31 | new_state_dict = OrderedDict() 32 | for var_name in py_keys: 33 | name, data = parse_param_name(param_provider, var_name) 34 | new_state_dict[var_name] = torch.from_numpy(data).float() 35 | print('copy param from {} to {}'.format(name, var_name)) 36 | record_caffe[name] = record_caffe[name] + 1 37 | 38 | for key, val in record_caffe.items(): 39 | if val == 0: 40 | print('warning: ignoring {}'.format(key)) 41 | 42 | model_dict = model.state_dict() 43 | model_dict.update(new_state_dict) 44 | model.load_state_dict(model_dict) 45 | torch.save(model.state_dict(), 'VGG-Places365.pth') -------------------------------------------------------------------------------- /convert_resnet152.py: -------------------------------------------------------------------------------- 1 | from utils import * 2 | import torch 3 | from collections import OrderedDict 4 | 5 | def parse_param_name(p, var_name): 6 | name = 'conv%d_%d_%dx%d' 7 | 8 | a = var_name.strip().split('.') 9 | if len(a) == 2: 10 | subith_conv = int(int(a[0]) / 3) + 1 11 | name = name % (1, subith_conv, 3, 3) 12 | if subith_conv == 1: 13 | name = name + '_s2' 14 | if a[-1] == 'weight': 15 | if int(a[0]) % 3 == 0: 16 | data = p.conv_kernel(name) 17 | else: 18 | name = name + '/scale' 19 | data = p.bn_gamma(name) 20 | else: 21 | ith_conv = int(a[0]) - 8 22 | subith_conv = int(a[1]) + 1 23 | if int(a[3]) == 1: 24 | name = name % (ith_conv, subith_conv, 1, 1) + '_proj' 25 | else: 26 | subblock = int(int(a[4]) / 3) 27 | if subblock == 0: 28 | name = name % (ith_conv, subith_conv, 1, 1) + '_reduce' 29 | elif subblock == 1: 30 | name = name % (ith_conv, subith_conv, 3, 3) 31 | elif subblock == 2: 32 | name = name % (ith_conv, subith_conv, 1, 1) + '_increase' 33 | if a[-1] == 'weight': 34 | if int(a[4]) % 3 == 0: 35 | data = p.conv_kernel(name) 36 | else: 37 | name = name + '/scale' 38 | data = p.bn_gamma(name) 39 | if a[-1] == 'bias': 40 | name = name + '/scale' 41 | data = p.bn_beta(name) 42 | elif a[-1] == 'running_mean': 43 | name = name + '/bn' 44 | data = p.bn_mean(name) 45 | elif a[-1] == 'running_var': 46 | name = name + '/bn' 47 | data = p.bn_variance(name) 48 | 49 | return name, data 50 | 51 | if __name__ == '__main__': 52 | 53 | prototxt = 'Places2-365-CNN.prototxt' 54 | caffemodel = 'Places2-365-CNN.caffemodel' 55 | net = load_caffe(prototxt, caffemodel) 56 | caffe_keys = net.params.keys() 57 | print(caffe_keys) 58 | param_provider = CaffeParamProvider(net) 59 | record_caffe = dict.fromkeys(caffe_keys, 0) 60 | 61 | import Places2_365_CNN 62 | model = Places2_365_CNN.resnet152_places365 63 | py_keys = model.state_dict().keys() 64 | print(py_keys) 65 | 66 | print('caffe: {} keys, pytoch: {} keys'.format(len(caffe_keys),len(py_keys))) 67 | 68 | new_state_dict = OrderedDict() 69 | for var_name in py_keys: 70 | if var_name == '16.1.weight': 71 | break 72 | name, data = parse_param_name(param_provider, var_name) 73 | new_state_dict[var_name] = torch.from_numpy(data).float() 74 | print('copy param from {} to {}'.format(name, var_name)) 75 | record_caffe[name] = record_caffe[name] + 1 76 | 77 | for key, val in record_caffe.items(): 78 | if val == 0: 79 | print('warning: ignoring {}'.format(key)) 80 | 81 | model_dict = model.state_dict() 82 | model_dict.update(new_state_dict) 83 | model.load_state_dict(model_dict) 84 | torch.save(model.state_dict(), 'Places2_365_CNN.pth') -------------------------------------------------------------------------------- /VGG-Places365.prototxt: -------------------------------------------------------------------------------- 1 | name: "VGG-Places365" 2 | input: "data" 3 | input_dim: 10 4 | input_dim: 3 5 | input_dim: 224 6 | input_dim: 224 7 | layer { 8 | name: "conv1_1" 9 | type: "Convolution" 10 | bottom: "data" 11 | top: "conv1_1" 12 | param { 13 | lr_mult: 1.0 14 | decay_mult: 1.0 15 | } 16 | param { 17 | lr_mult: 2.0 18 | decay_mult: 0.0 19 | } 20 | convolution_param { 21 | num_output: 64 22 | pad: 1 23 | kernel_size: 3 24 | weight_filler { 25 | type: "gaussian" 26 | std: 0.01 27 | } 28 | bias_filler { 29 | type: "constant" 30 | value: 0.0 31 | } 32 | } 33 | } 34 | layer { 35 | name: "relu1_1" 36 | type: "ReLU" 37 | bottom: "conv1_1" 38 | top: "conv1_1" 39 | } 40 | layer { 41 | name: "conv1_2" 42 | type: "Convolution" 43 | bottom: "conv1_1" 44 | top: "conv1_2" 45 | param { 46 | lr_mult: 1.0 47 | decay_mult: 1.0 48 | } 49 | param { 50 | lr_mult: 2.0 51 | decay_mult: 0.0 52 | } 53 | convolution_param { 54 | num_output: 64 55 | pad: 1 56 | kernel_size: 3 57 | weight_filler { 58 | type: "gaussian" 59 | std: 0.01 60 | } 61 | bias_filler { 62 | type: "constant" 63 | value: 0.0 64 | } 65 | } 66 | } 67 | layer { 68 | name: "relu1_2" 69 | type: "ReLU" 70 | bottom: "conv1_2" 71 | top: "conv1_2" 72 | } 73 | layer { 74 | name: "pool1" 75 | type: "Pooling" 76 | bottom: "conv1_2" 77 | top: "pool1" 78 | pooling_param { 79 | pool: MAX 80 | kernel_size: 2 81 | stride: 2 82 | } 83 | } 84 | layer { 85 | name: "conv2_1" 86 | type: "Convolution" 87 | bottom: "pool1" 88 | top: "conv2_1" 89 | param { 90 | lr_mult: 1.0 91 | decay_mult: 1.0 92 | } 93 | param { 94 | lr_mult: 2.0 95 | decay_mult: 0.0 96 | } 97 | convolution_param { 98 | num_output: 128 99 | pad: 1 100 | kernel_size: 3 101 | weight_filler { 102 | type: "gaussian" 103 | std: 0.01 104 | } 105 | bias_filler { 106 | type: "constant" 107 | value: 0.0 108 | } 109 | } 110 | } 111 | layer { 112 | name: "relu2_1" 113 | type: "ReLU" 114 | bottom: "conv2_1" 115 | top: "conv2_1" 116 | } 117 | layer { 118 | name: "conv2_2" 119 | type: "Convolution" 120 | bottom: "conv2_1" 121 | top: "conv2_2" 122 | param { 123 | lr_mult: 1.0 124 | decay_mult: 1.0 125 | } 126 | param { 127 | lr_mult: 2.0 128 | decay_mult: 0.0 129 | } 130 | convolution_param { 131 | num_output: 128 132 | pad: 1 133 | kernel_size: 3 134 | weight_filler { 135 | type: "gaussian" 136 | std: 0.01 137 | } 138 | bias_filler { 139 | type: "constant" 140 | value: 0.0 141 | } 142 | } 143 | } 144 | layer { 145 | name: "relu2_2" 146 | type: "ReLU" 147 | bottom: "conv2_2" 148 | top: "conv2_2" 149 | } 150 | layer { 151 | name: "pool2" 152 | type: "Pooling" 153 | bottom: "conv2_2" 154 | top: "pool2" 155 | pooling_param { 156 | pool: MAX 157 | kernel_size: 2 158 | stride: 2 159 | } 160 | } 161 | layer { 162 | name: "conv3_1" 163 | type: "Convolution" 164 | bottom: "pool2" 165 | top: "conv3_1" 166 | param { 167 | lr_mult: 1.0 168 | decay_mult: 1.0 169 | } 170 | param { 171 | lr_mult: 2.0 172 | decay_mult: 0.0 173 | } 174 | convolution_param { 175 | num_output: 256 176 | pad: 1 177 | kernel_size: 3 178 | weight_filler { 179 | type: "gaussian" 180 | std: 0.01 181 | } 182 | bias_filler { 183 | type: "constant" 184 | value: 0.0 185 | } 186 | } 187 | } 188 | layer { 189 | name: "relu3_1" 190 | type: "ReLU" 191 | bottom: "conv3_1" 192 | top: "conv3_1" 193 | } 194 | layer { 195 | name: "conv3_2" 196 | type: "Convolution" 197 | bottom: "conv3_1" 198 | top: "conv3_2" 199 | param { 200 | lr_mult: 1.0 201 | decay_mult: 1.0 202 | } 203 | param { 204 | lr_mult: 2.0 205 | decay_mult: 0.0 206 | } 207 | convolution_param { 208 | num_output: 256 209 | pad: 1 210 | kernel_size: 3 211 | weight_filler { 212 | type: "gaussian" 213 | std: 0.01 214 | } 215 | bias_filler { 216 | type: "constant" 217 | value: 0.0 218 | } 219 | } 220 | } 221 | layer { 222 | name: "relu3_2" 223 | type: "ReLU" 224 | bottom: "conv3_2" 225 | top: "conv3_2" 226 | } 227 | layer { 228 | name: "conv3_3" 229 | type: "Convolution" 230 | bottom: "conv3_2" 231 | top: "conv3_3" 232 | param { 233 | lr_mult: 1.0 234 | decay_mult: 1.0 235 | } 236 | param { 237 | lr_mult: 2.0 238 | decay_mult: 0.0 239 | } 240 | convolution_param { 241 | num_output: 256 242 | pad: 1 243 | kernel_size: 3 244 | weight_filler { 245 | type: "gaussian" 246 | std: 0.01 247 | } 248 | bias_filler { 249 | type: "constant" 250 | value: 0.0 251 | } 252 | } 253 | } 254 | layer { 255 | name: "relu3_3" 256 | type: "ReLU" 257 | bottom: "conv3_3" 258 | top: "conv3_3" 259 | } 260 | layer { 261 | name: "pool3" 262 | type: "Pooling" 263 | bottom: "conv3_3" 264 | top: "pool3" 265 | pooling_param { 266 | pool: MAX 267 | kernel_size: 2 268 | stride: 2 269 | } 270 | } 271 | layer { 272 | name: "conv4_1" 273 | type: "Convolution" 274 | bottom: "pool3" 275 | top: "conv4_1" 276 | param { 277 | lr_mult: 1.0 278 | decay_mult: 1.0 279 | } 280 | param { 281 | lr_mult: 2.0 282 | decay_mult: 0.0 283 | } 284 | convolution_param { 285 | num_output: 512 286 | pad: 1 287 | kernel_size: 3 288 | weight_filler { 289 | type: "gaussian" 290 | std: 0.01 291 | } 292 | bias_filler { 293 | type: "constant" 294 | value: 0.0 295 | } 296 | } 297 | } 298 | layer { 299 | name: "relu4_1" 300 | type: "ReLU" 301 | bottom: "conv4_1" 302 | top: "conv4_1" 303 | } 304 | layer { 305 | name: "conv4_2" 306 | type: "Convolution" 307 | bottom: "conv4_1" 308 | top: "conv4_2" 309 | param { 310 | lr_mult: 1.0 311 | decay_mult: 1.0 312 | } 313 | param { 314 | lr_mult: 2.0 315 | decay_mult: 0.0 316 | } 317 | convolution_param { 318 | num_output: 512 319 | pad: 1 320 | kernel_size: 3 321 | weight_filler { 322 | type: "gaussian" 323 | std: 0.01 324 | } 325 | bias_filler { 326 | type: "constant" 327 | value: 0.0 328 | } 329 | } 330 | } 331 | layer { 332 | name: "relu4_2" 333 | type: "ReLU" 334 | bottom: "conv4_2" 335 | top: "conv4_2" 336 | } 337 | layer { 338 | name: "conv4_3" 339 | type: "Convolution" 340 | bottom: "conv4_2" 341 | top: "conv4_3" 342 | param { 343 | lr_mult: 1.0 344 | decay_mult: 1.0 345 | } 346 | param { 347 | lr_mult: 2.0 348 | decay_mult: 0.0 349 | } 350 | convolution_param { 351 | num_output: 512 352 | pad: 1 353 | kernel_size: 3 354 | weight_filler { 355 | type: "gaussian" 356 | std: 0.01 357 | } 358 | bias_filler { 359 | type: "constant" 360 | value: 0.0 361 | } 362 | } 363 | } 364 | layer { 365 | name: "relu4_3" 366 | type: "ReLU" 367 | bottom: "conv4_3" 368 | top: "conv4_3" 369 | } 370 | layer { 371 | name: "pool4" 372 | type: "Pooling" 373 | bottom: "conv4_3" 374 | top: "pool4" 375 | pooling_param { 376 | pool: MAX 377 | kernel_size: 2 378 | stride: 2 379 | } 380 | } 381 | layer { 382 | name: "conv5_1" 383 | type: "Convolution" 384 | bottom: "pool4" 385 | top: "conv5_1" 386 | param { 387 | lr_mult: 1.0 388 | decay_mult: 1.0 389 | } 390 | param { 391 | lr_mult: 2.0 392 | decay_mult: 0.0 393 | } 394 | convolution_param { 395 | num_output: 512 396 | pad: 1 397 | kernel_size: 3 398 | weight_filler { 399 | type: "gaussian" 400 | std: 0.01 401 | } 402 | bias_filler { 403 | type: "constant" 404 | value: 0.0 405 | } 406 | } 407 | } 408 | layer { 409 | name: "relu5_1" 410 | type: "ReLU" 411 | bottom: "conv5_1" 412 | top: "conv5_1" 413 | } 414 | layer { 415 | name: "conv5_2" 416 | type: "Convolution" 417 | bottom: "conv5_1" 418 | top: "conv5_2" 419 | param { 420 | lr_mult: 1.0 421 | decay_mult: 1.0 422 | } 423 | param { 424 | lr_mult: 2.0 425 | decay_mult: 0.0 426 | } 427 | convolution_param { 428 | num_output: 512 429 | pad: 1 430 | kernel_size: 3 431 | weight_filler { 432 | type: "gaussian" 433 | std: 0.01 434 | } 435 | bias_filler { 436 | type: "constant" 437 | value: 0.0 438 | } 439 | } 440 | } 441 | layer { 442 | name: "relu5_2" 443 | type: "ReLU" 444 | bottom: "conv5_2" 445 | top: "conv5_2" 446 | } 447 | layer { 448 | name: "conv5_3" 449 | type: "Convolution" 450 | bottom: "conv5_2" 451 | top: "conv5_3" 452 | param { 453 | lr_mult: 1.0 454 | decay_mult: 1.0 455 | } 456 | param { 457 | lr_mult: 2.0 458 | decay_mult: 0.0 459 | } 460 | convolution_param { 461 | num_output: 512 462 | pad: 1 463 | kernel_size: 3 464 | weight_filler { 465 | type: "gaussian" 466 | std: 0.01 467 | } 468 | bias_filler { 469 | type: "constant" 470 | value: 0.0 471 | } 472 | } 473 | } 474 | layer { 475 | name: "relu5_3" 476 | type: "ReLU" 477 | bottom: "conv5_3" 478 | top: "conv5_3" 479 | } 480 | layer { 481 | name: "pool5" 482 | type: "Pooling" 483 | bottom: "conv5_3" 484 | top: "pool5" 485 | pooling_param { 486 | pool: MAX 487 | kernel_size: 2 488 | stride: 2 489 | } 490 | } 491 | layer { 492 | name: "fc6" 493 | type: "InnerProduct" 494 | bottom: "pool5" 495 | top: "fc6" 496 | param { 497 | lr_mult: 1.0 498 | decay_mult: 1.0 499 | } 500 | param { 501 | lr_mult: 2.0 502 | decay_mult: 0.0 503 | } 504 | inner_product_param { 505 | num_output: 4096 506 | weight_filler { 507 | type: "gaussian" 508 | std: 0.01 509 | } 510 | bias_filler { 511 | type: "constant" 512 | value: 0.0 513 | } 514 | } 515 | } 516 | layer { 517 | name: "relu6" 518 | type: "ReLU" 519 | bottom: "fc6" 520 | top: "fc6" 521 | } 522 | layer { 523 | name: "drop6" 524 | type: "Dropout" 525 | bottom: "fc6" 526 | top: "fc6" 527 | dropout_param { 528 | dropout_ratio: 0.5 529 | } 530 | } 531 | layer { 532 | name: "fc7" 533 | type: "InnerProduct" 534 | bottom: "fc6" 535 | top: "fc7" 536 | param { 537 | lr_mult: 1.0 538 | decay_mult: 1.0 539 | } 540 | param { 541 | lr_mult: 2.0 542 | decay_mult: 0.0 543 | } 544 | inner_product_param { 545 | num_output: 4096 546 | weight_filler { 547 | type: "gaussian" 548 | std: 0.01 549 | } 550 | bias_filler { 551 | type: "constant" 552 | value: 0.0 553 | } 554 | } 555 | } 556 | layer { 557 | name: "relu7" 558 | type: "ReLU" 559 | bottom: "fc7" 560 | top: "fc7" 561 | } 562 | layer { 563 | name: "drop7" 564 | type: "Dropout" 565 | bottom: "fc7" 566 | top: "fc7" 567 | dropout_param { 568 | dropout_ratio: 0.5 569 | } 570 | } 571 | layer { 572 | name: "fc8a" 573 | type: "InnerProduct" 574 | bottom: "fc7" 575 | top: "fc8a" 576 | param { 577 | lr_mult: 1.0 578 | decay_mult: 1.0 579 | } 580 | param { 581 | lr_mult: 2.0 582 | decay_mult: 0.0 583 | } 584 | inner_product_param { 585 | num_output: 365 586 | } 587 | } 588 | layer { 589 | name: "prob" 590 | type: "Softmax" 591 | bottom: "fc8a" 592 | top: "prob" 593 | } -------------------------------------------------------------------------------- /Places2_365_CNN.py: -------------------------------------------------------------------------------- 1 | 2 | import torch 3 | import torch.nn as nn 4 | from torch.autograd import Variable 5 | from functools import reduce 6 | 7 | class LambdaBase(nn.Sequential): 8 | def __init__(self, fn, *args): 9 | super(LambdaBase, self).__init__(*args) 10 | self.lambda_func = fn 11 | 12 | def forward_prepare(self, input): 13 | output = [] 14 | for module in self._modules.values(): 15 | output.append(module(input)) 16 | return output if output else input 17 | 18 | class Lambda(LambdaBase): 19 | def forward(self, input): 20 | return self.lambda_func(self.forward_prepare(input)) 21 | 22 | class LambdaMap(LambdaBase): 23 | def forward(self, input): 24 | return list(map(self.lambda_func,self.forward_prepare(input))) 25 | 26 | class LambdaReduce(LambdaBase): 27 | def forward(self, input): 28 | return reduce(self.lambda_func,self.forward_prepare(input)) 29 | 30 | 31 | resnet152_places365 = nn.Sequential( # Sequential, 32 | # --------------------- Conv1 1:3 33 | nn.Conv2d(3,64,(3, 3),(2, 2),(1, 1),1,1,bias=False), 34 | nn.BatchNorm2d(64), 35 | nn.ReLU(), 36 | nn.Conv2d(64,64,(3, 3),(1, 1),(1, 1),1,1,bias=False), 37 | nn.BatchNorm2d(64), 38 | nn.ReLU(), 39 | nn.Conv2d(64,128,(3, 3),(1, 1),(1, 1),1,1,bias=False), 40 | nn.BatchNorm2d(128), 41 | nn.ReLU(), 42 | nn.MaxPool2d((3, 3),(2, 2),(1, 1)), 43 | # --------------------- Conv2 1:8 44 | nn.Sequential( # Sequential, 45 | nn.Sequential( # Sequential, 46 | LambdaMap(lambda x: x, # ConcatTable, 47 | nn.Sequential( # Sequential, 48 | nn.Conv2d(128,64,(1, 1),(1, 1),(0, 0),1,1,bias=False), 49 | nn.BatchNorm2d(64), 50 | nn.ReLU(), 51 | nn.Conv2d(64,64,(3, 3),(1, 1),(1, 1),1,1,bias=False), 52 | nn.BatchNorm2d(64), 53 | nn.ReLU(), 54 | nn.Conv2d(64,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 55 | nn.BatchNorm2d(256), 56 | ), 57 | nn.Sequential( # Sequential, 58 | nn.Conv2d(128,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 59 | nn.BatchNorm2d(256), 60 | ), 61 | ), 62 | LambdaReduce(lambda x,y: x+y), # CAddTable, 63 | nn.ReLU(), 64 | ), 65 | nn.Sequential( # Sequential, 66 | LambdaMap(lambda x: x, # ConcatTable, 67 | nn.Sequential( # Sequential, 68 | nn.Conv2d(256,64,(1, 1),(1, 1),(0, 0),1,1,bias=False), 69 | nn.BatchNorm2d(64), 70 | nn.ReLU(), 71 | nn.Conv2d(64,64,(3, 3),(1, 1),(1, 1),1,1,bias=False), 72 | nn.BatchNorm2d(64), 73 | nn.ReLU(), 74 | nn.Conv2d(64,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 75 | nn.BatchNorm2d(256), 76 | ), 77 | Lambda(lambda x: x), # Identity, 78 | ), 79 | LambdaReduce(lambda x,y: x+y), # CAddTable, 80 | nn.ReLU(), 81 | ), 82 | nn.Sequential( # Sequential, 83 | LambdaMap(lambda x: x, # ConcatTable, 84 | nn.Sequential( # Sequential, 85 | nn.Conv2d(256,64,(1, 1),(1, 1),(0, 0),1,1,bias=False), 86 | nn.BatchNorm2d(64), 87 | nn.ReLU(), 88 | nn.Conv2d(64,64,(3, 3),(1, 1),(1, 1),1,1,bias=False), 89 | nn.BatchNorm2d(64), 90 | nn.ReLU(), 91 | nn.Conv2d(64,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 92 | nn.BatchNorm2d(256), 93 | ), 94 | Lambda(lambda x: x), # Identity, 95 | ), 96 | LambdaReduce(lambda x,y: x+y), # CAddTable, 97 | nn.ReLU(), 98 | ), 99 | nn.Sequential( # Sequential, 100 | LambdaMap(lambda x: x, # ConcatTable, 101 | nn.Sequential( # Sequential, 102 | nn.Conv2d(256,64,(1, 1),(1, 1),(0, 0),1,1,bias=False), 103 | nn.BatchNorm2d(64), 104 | nn.ReLU(), 105 | nn.Conv2d(64,64,(3, 3),(1, 1),(1, 1),1,1,bias=False), 106 | nn.BatchNorm2d(64), 107 | nn.ReLU(), 108 | nn.Conv2d(64,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 109 | nn.BatchNorm2d(256), 110 | ), 111 | Lambda(lambda x: x), # Identity, 112 | ), 113 | LambdaReduce(lambda x,y: x+y), # CAddTable, 114 | nn.ReLU(), 115 | ), 116 | nn.Sequential( # Sequential, 117 | LambdaMap(lambda x: x, # ConcatTable, 118 | nn.Sequential( # Sequential, 119 | nn.Conv2d(256,64,(1, 1),(1, 1),(0, 0),1,1,bias=False), 120 | nn.BatchNorm2d(64), 121 | nn.ReLU(), 122 | nn.Conv2d(64,64,(3, 3),(1, 1),(1, 1),1,1,bias=False), 123 | nn.BatchNorm2d(64), 124 | nn.ReLU(), 125 | nn.Conv2d(64,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 126 | nn.BatchNorm2d(256), 127 | ), 128 | Lambda(lambda x: x), # Identity, 129 | ), 130 | LambdaReduce(lambda x,y: x+y), # CAddTable, 131 | nn.ReLU(), 132 | ), 133 | nn.Sequential( # Sequential, 134 | LambdaMap(lambda x: x, # ConcatTable, 135 | nn.Sequential( # Sequential, 136 | nn.Conv2d(256,64,(1, 1),(1, 1),(0, 0),1,1,bias=False), 137 | nn.BatchNorm2d(64), 138 | nn.ReLU(), 139 | nn.Conv2d(64,64,(3, 3),(1, 1),(1, 1),1,1,bias=False), 140 | nn.BatchNorm2d(64), 141 | nn.ReLU(), 142 | nn.Conv2d(64,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 143 | nn.BatchNorm2d(256), 144 | ), 145 | Lambda(lambda x: x), # Identity, 146 | ), 147 | LambdaReduce(lambda x,y: x+y), # CAddTable, 148 | nn.ReLU(), 149 | ), 150 | nn.Sequential( # Sequential, 151 | LambdaMap(lambda x: x, # ConcatTable, 152 | nn.Sequential( # Sequential, 153 | nn.Conv2d(256,64,(1, 1),(1, 1),(0, 0),1,1,bias=False), 154 | nn.BatchNorm2d(64), 155 | nn.ReLU(), 156 | nn.Conv2d(64,64,(3, 3),(1, 1),(1, 1),1,1,bias=False), 157 | nn.BatchNorm2d(64), 158 | nn.ReLU(), 159 | nn.Conv2d(64,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 160 | nn.BatchNorm2d(256), 161 | ), 162 | Lambda(lambda x: x), # Identity, 163 | ), 164 | LambdaReduce(lambda x,y: x+y), # CAddTable, 165 | nn.ReLU(), 166 | ), 167 | nn.Sequential( # Sequential, 168 | LambdaMap(lambda x: x, # ConcatTable, 169 | nn.Sequential( # Sequential, 170 | nn.Conv2d(256,64,(1, 1),(1, 1),(0, 0),1,1,bias=False), 171 | nn.BatchNorm2d(64), 172 | nn.ReLU(), 173 | nn.Conv2d(64,64,(3, 3),(1, 1),(1, 1),1,1,bias=False), 174 | nn.BatchNorm2d(64), 175 | nn.ReLU(), 176 | nn.Conv2d(64,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 177 | nn.BatchNorm2d(256), 178 | ), 179 | Lambda(lambda x: x), # Identity, 180 | ), 181 | LambdaReduce(lambda x,y: x+y), # CAddTable, 182 | nn.ReLU(), 183 | ), 184 | ), 185 | # --------------------- Conv3 1:12 186 | nn.Sequential( # Sequential, 187 | nn.Sequential( # Sequential, 188 | LambdaMap(lambda x: x, # ConcatTable, 189 | nn.Sequential( # Sequential, 190 | nn.Conv2d(256,128,(1, 1),(1, 1),(0, 0),1,1,bias=False), 191 | nn.BatchNorm2d(128), 192 | nn.ReLU(), 193 | nn.Conv2d(128,128,(3, 3),(2, 2),(1, 1),1,1,bias=False), 194 | nn.BatchNorm2d(128), 195 | nn.ReLU(), 196 | nn.Conv2d(128,512,(1, 1),(1, 1),(0, 0),1,1,bias=False), 197 | nn.BatchNorm2d(512), 198 | ), 199 | nn.Sequential( # Sequential, 200 | nn.Conv2d(256,512,(1, 1),(2, 2),(0, 0),1,1,bias=False), 201 | nn.BatchNorm2d(512), 202 | ), 203 | ), 204 | LambdaReduce(lambda x,y: x+y), # CAddTable, 205 | nn.ReLU(), 206 | ), 207 | nn.Sequential( # Sequential, 208 | LambdaMap(lambda x: x, # ConcatTable, 209 | nn.Sequential( # Sequential, 210 | nn.Conv2d(512,128,(1, 1),(1, 1),(0, 0),1,1,bias=False), 211 | nn.BatchNorm2d(128), 212 | nn.ReLU(), 213 | nn.Conv2d(128,128,(3, 3),(1, 1),(1, 1),1,1,bias=False), 214 | nn.BatchNorm2d(128), 215 | nn.ReLU(), 216 | nn.Conv2d(128,512,(1, 1),(1, 1),(0, 0),1,1,bias=False), 217 | nn.BatchNorm2d(512), 218 | ), 219 | Lambda(lambda x: x), # Identity, 220 | ), 221 | LambdaReduce(lambda x,y: x+y), # CAddTable, 222 | nn.ReLU(), 223 | ), 224 | nn.Sequential( # Sequential, 225 | LambdaMap(lambda x: x, # ConcatTable, 226 | nn.Sequential( # Sequential, 227 | nn.Conv2d(512,128,(1, 1),(1, 1),(0, 0),1,1,bias=False), 228 | nn.BatchNorm2d(128), 229 | nn.ReLU(), 230 | nn.Conv2d(128,128,(3, 3),(1, 1),(1, 1),1,1,bias=False), 231 | nn.BatchNorm2d(128), 232 | nn.ReLU(), 233 | nn.Conv2d(128,512,(1, 1),(1, 1),(0, 0),1,1,bias=False), 234 | nn.BatchNorm2d(512), 235 | ), 236 | Lambda(lambda x: x), # Identity, 237 | ), 238 | LambdaReduce(lambda x,y: x+y), # CAddTable, 239 | nn.ReLU(), 240 | ), 241 | nn.Sequential( # Sequential, 242 | LambdaMap(lambda x: x, # ConcatTable, 243 | nn.Sequential( # Sequential, 244 | nn.Conv2d(512,128,(1, 1),(1, 1),(0, 0),1,1,bias=False), 245 | nn.BatchNorm2d(128), 246 | nn.ReLU(), 247 | nn.Conv2d(128,128,(3, 3),(1, 1),(1, 1),1,1,bias=False), 248 | nn.BatchNorm2d(128), 249 | nn.ReLU(), 250 | nn.Conv2d(128,512,(1, 1),(1, 1),(0, 0),1,1,bias=False), 251 | nn.BatchNorm2d(512), 252 | ), 253 | Lambda(lambda x: x), # Identity, 254 | ), 255 | LambdaReduce(lambda x,y: x+y), # CAddTable, 256 | nn.ReLU(), 257 | ), 258 | nn.Sequential( # Sequential, 259 | LambdaMap(lambda x: x, # ConcatTable, 260 | nn.Sequential( # Sequential, 261 | nn.Conv2d(512,128,(1, 1),(1, 1),(0, 0),1,1,bias=False), 262 | nn.BatchNorm2d(128), 263 | nn.ReLU(), 264 | nn.Conv2d(128,128,(3, 3),(1, 1),(1, 1),1,1,bias=False), 265 | nn.BatchNorm2d(128), 266 | nn.ReLU(), 267 | nn.Conv2d(128,512,(1, 1),(1, 1),(0, 0),1,1,bias=False), 268 | nn.BatchNorm2d(512), 269 | ), 270 | Lambda(lambda x: x), # Identity, 271 | ), 272 | LambdaReduce(lambda x,y: x+y), # CAddTable, 273 | nn.ReLU(), 274 | ), 275 | nn.Sequential( # Sequential, 276 | LambdaMap(lambda x: x, # ConcatTable, 277 | nn.Sequential( # Sequential, 278 | nn.Conv2d(512,128,(1, 1),(1, 1),(0, 0),1,1,bias=False), 279 | nn.BatchNorm2d(128), 280 | nn.ReLU(), 281 | nn.Conv2d(128,128,(3, 3),(1, 1),(1, 1),1,1,bias=False), 282 | nn.BatchNorm2d(128), 283 | nn.ReLU(), 284 | nn.Conv2d(128,512,(1, 1),(1, 1),(0, 0),1,1,bias=False), 285 | nn.BatchNorm2d(512), 286 | ), 287 | Lambda(lambda x: x), # Identity, 288 | ), 289 | LambdaReduce(lambda x,y: x+y), # CAddTable, 290 | nn.ReLU(), 291 | ), 292 | nn.Sequential( # Sequential, 293 | LambdaMap(lambda x: x, # ConcatTable, 294 | nn.Sequential( # Sequential, 295 | nn.Conv2d(512,128,(1, 1),(1, 1),(0, 0),1,1,bias=False), 296 | nn.BatchNorm2d(128), 297 | nn.ReLU(), 298 | nn.Conv2d(128,128,(3, 3),(1, 1),(1, 1),1,1,bias=False), 299 | nn.BatchNorm2d(128), 300 | nn.ReLU(), 301 | nn.Conv2d(128,512,(1, 1),(1, 1),(0, 0),1,1,bias=False), 302 | nn.BatchNorm2d(512), 303 | ), 304 | Lambda(lambda x: x), # Identity, 305 | ), 306 | LambdaReduce(lambda x,y: x+y), # CAddTable, 307 | nn.ReLU(), 308 | ), 309 | nn.Sequential( # Sequential, 310 | LambdaMap(lambda x: x, # ConcatTable, 311 | nn.Sequential( # Sequential, 312 | nn.Conv2d(512,128,(1, 1),(1, 1),(0, 0),1,1,bias=False), 313 | nn.BatchNorm2d(128), 314 | nn.ReLU(), 315 | nn.Conv2d(128,128,(3, 3),(1, 1),(1, 1),1,1,bias=False), 316 | nn.BatchNorm2d(128), 317 | nn.ReLU(), 318 | nn.Conv2d(128,512,(1, 1),(1, 1),(0, 0),1,1,bias=False), 319 | nn.BatchNorm2d(512), 320 | ), 321 | Lambda(lambda x: x), # Identity, 322 | ), 323 | LambdaReduce(lambda x,y: x+y), # CAddTable, 324 | nn.ReLU(), 325 | ), 326 | nn.Sequential( # Sequential, 327 | LambdaMap(lambda x: x, # ConcatTable, 328 | nn.Sequential( # Sequential, 329 | nn.Conv2d(512,128,(1, 1),(1, 1),(0, 0),1,1,bias=False), 330 | nn.BatchNorm2d(128), 331 | nn.ReLU(), 332 | nn.Conv2d(128,128,(3, 3),(1, 1),(1, 1),1,1,bias=False), 333 | nn.BatchNorm2d(128), 334 | nn.ReLU(), 335 | nn.Conv2d(128,512,(1, 1),(1, 1),(0, 0),1,1,bias=False), 336 | nn.BatchNorm2d(512), 337 | ), 338 | Lambda(lambda x: x), # Identity, 339 | ), 340 | LambdaReduce(lambda x,y: x+y), # CAddTable, 341 | nn.ReLU(), 342 | ), 343 | nn.Sequential( # Sequential, 344 | LambdaMap(lambda x: x, # ConcatTable, 345 | nn.Sequential( # Sequential, 346 | nn.Conv2d(512,128,(1, 1),(1, 1),(0, 0),1,1,bias=False), 347 | nn.BatchNorm2d(128), 348 | nn.ReLU(), 349 | nn.Conv2d(128,128,(3, 3),(1, 1),(1, 1),1,1,bias=False), 350 | nn.BatchNorm2d(128), 351 | nn.ReLU(), 352 | nn.Conv2d(128,512,(1, 1),(1, 1),(0, 0),1,1,bias=False), 353 | nn.BatchNorm2d(512), 354 | ), 355 | Lambda(lambda x: x), # Identity, 356 | ), 357 | LambdaReduce(lambda x,y: x+y), # CAddTable, 358 | nn.ReLU(), 359 | ), 360 | nn.Sequential( # Sequential, 361 | LambdaMap(lambda x: x, # ConcatTable, 362 | nn.Sequential( # Sequential, 363 | nn.Conv2d(512,128,(1, 1),(1, 1),(0, 0),1,1,bias=False), 364 | nn.BatchNorm2d(128), 365 | nn.ReLU(), 366 | nn.Conv2d(128,128,(3, 3),(1, 1),(1, 1),1,1,bias=False), 367 | nn.BatchNorm2d(128), 368 | nn.ReLU(), 369 | nn.Conv2d(128,512,(1, 1),(1, 1),(0, 0),1,1,bias=False), 370 | nn.BatchNorm2d(512), 371 | ), 372 | Lambda(lambda x: x), # Identity, 373 | ), 374 | LambdaReduce(lambda x,y: x+y), # CAddTable, 375 | nn.ReLU(), 376 | ), 377 | nn.Sequential( # Sequential, 378 | LambdaMap(lambda x: x, # ConcatTable, 379 | nn.Sequential( # Sequential, 380 | nn.Conv2d(512,128,(1, 1),(1, 1),(0, 0),1,1,bias=False), 381 | nn.BatchNorm2d(128), 382 | nn.ReLU(), 383 | nn.Conv2d(128,128,(3, 3),(1, 1),(1, 1),1,1,bias=False), 384 | nn.BatchNorm2d(128), 385 | nn.ReLU(), 386 | nn.Conv2d(128,512,(1, 1),(1, 1),(0, 0),1,1,bias=False), 387 | nn.BatchNorm2d(512), 388 | ), 389 | Lambda(lambda x: x), # Identity, 390 | ), 391 | LambdaReduce(lambda x,y: x+y), # CAddTable, 392 | nn.ReLU(), 393 | ), 394 | ), 395 | # --------------------- Conv4 1:23 396 | nn.Sequential( # Sequential, 397 | nn.Sequential( # Sequential, 398 | LambdaMap(lambda x: x, # ConcatTable, 399 | nn.Sequential( # Sequential, 400 | nn.Conv2d(512,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 401 | nn.BatchNorm2d(256), 402 | nn.ReLU(), 403 | nn.Conv2d(256,256,(3, 3),(2, 2),(1, 1),1,1,bias=False), 404 | nn.BatchNorm2d(256), 405 | nn.ReLU(), 406 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 407 | nn.BatchNorm2d(1024), 408 | ), 409 | nn.Sequential( # Sequential, 410 | nn.Conv2d(512,1024,(1, 1),(2, 2),(0, 0),1,1,bias=False), 411 | nn.BatchNorm2d(1024), 412 | ), 413 | ), 414 | LambdaReduce(lambda x,y: x+y), # CAddTable, 415 | nn.ReLU(), 416 | ), 417 | nn.Sequential( # Sequential, 418 | LambdaMap(lambda x: x, # ConcatTable, 419 | nn.Sequential( # Sequential, 420 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 421 | nn.BatchNorm2d(256), 422 | nn.ReLU(), 423 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 424 | nn.BatchNorm2d(256), 425 | nn.ReLU(), 426 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 427 | nn.BatchNorm2d(1024), 428 | ), 429 | Lambda(lambda x: x), # Identity, 430 | ), 431 | LambdaReduce(lambda x,y: x+y), # CAddTable, 432 | nn.ReLU(), 433 | ), 434 | nn.Sequential( # Sequential, 435 | LambdaMap(lambda x: x, # ConcatTable, 436 | nn.Sequential( # Sequential, 437 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 438 | nn.BatchNorm2d(256), 439 | nn.ReLU(), 440 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 441 | nn.BatchNorm2d(256), 442 | nn.ReLU(), 443 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 444 | nn.BatchNorm2d(1024), 445 | ), 446 | Lambda(lambda x: x), # Identity, 447 | ), 448 | LambdaReduce(lambda x,y: x+y), # CAddTable, 449 | nn.ReLU(), 450 | ), 451 | nn.Sequential( # Sequential, 452 | LambdaMap(lambda x: x, # ConcatTable, 453 | nn.Sequential( # Sequential, 454 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 455 | nn.BatchNorm2d(256), 456 | nn.ReLU(), 457 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 458 | nn.BatchNorm2d(256), 459 | nn.ReLU(), 460 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 461 | nn.BatchNorm2d(1024), 462 | ), 463 | Lambda(lambda x: x), # Identity, 464 | ), 465 | LambdaReduce(lambda x,y: x+y), # CAddTable, 466 | nn.ReLU(), 467 | ), 468 | nn.Sequential( # Sequential, 469 | LambdaMap(lambda x: x, # ConcatTable, 470 | nn.Sequential( # Sequential, 471 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 472 | nn.BatchNorm2d(256), 473 | nn.ReLU(), 474 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 475 | nn.BatchNorm2d(256), 476 | nn.ReLU(), 477 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 478 | nn.BatchNorm2d(1024), 479 | ), 480 | Lambda(lambda x: x), # Identity, 481 | ), 482 | LambdaReduce(lambda x,y: x+y), # CAddTable, 483 | nn.ReLU(), 484 | ), 485 | nn.Sequential( # Sequential, 486 | LambdaMap(lambda x: x, # ConcatTable, 487 | nn.Sequential( # Sequential, 488 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 489 | nn.BatchNorm2d(256), 490 | nn.ReLU(), 491 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 492 | nn.BatchNorm2d(256), 493 | nn.ReLU(), 494 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 495 | nn.BatchNorm2d(1024), 496 | ), 497 | Lambda(lambda x: x), # Identity, 498 | ), 499 | LambdaReduce(lambda x,y: x+y), # CAddTable, 500 | nn.ReLU(), 501 | ), 502 | nn.Sequential( # Sequential, 503 | LambdaMap(lambda x: x, # ConcatTable, 504 | nn.Sequential( # Sequential, 505 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 506 | nn.BatchNorm2d(256), 507 | nn.ReLU(), 508 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 509 | nn.BatchNorm2d(256), 510 | nn.ReLU(), 511 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 512 | nn.BatchNorm2d(1024), 513 | ), 514 | Lambda(lambda x: x), # Identity, 515 | ), 516 | LambdaReduce(lambda x,y: x+y), # CAddTable, 517 | nn.ReLU(), 518 | ), 519 | nn.Sequential( # Sequential, 520 | LambdaMap(lambda x: x, # ConcatTable, 521 | nn.Sequential( # Sequential, 522 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 523 | nn.BatchNorm2d(256), 524 | nn.ReLU(), 525 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 526 | nn.BatchNorm2d(256), 527 | nn.ReLU(), 528 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 529 | nn.BatchNorm2d(1024), 530 | ), 531 | Lambda(lambda x: x), # Identity, 532 | ), 533 | LambdaReduce(lambda x,y: x+y), # CAddTable, 534 | nn.ReLU(), 535 | ), 536 | nn.Sequential( # Sequential, 537 | LambdaMap(lambda x: x, # ConcatTable, 538 | nn.Sequential( # Sequential, 539 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 540 | nn.BatchNorm2d(256), 541 | nn.ReLU(), 542 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 543 | nn.BatchNorm2d(256), 544 | nn.ReLU(), 545 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 546 | nn.BatchNorm2d(1024), 547 | ), 548 | Lambda(lambda x: x), # Identity, 549 | ), 550 | LambdaReduce(lambda x,y: x+y), # CAddTable, 551 | nn.ReLU(), 552 | ), 553 | nn.Sequential( # Sequential, 554 | LambdaMap(lambda x: x, # ConcatTable, 555 | nn.Sequential( # Sequential, 556 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 557 | nn.BatchNorm2d(256), 558 | nn.ReLU(), 559 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 560 | nn.BatchNorm2d(256), 561 | nn.ReLU(), 562 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 563 | nn.BatchNorm2d(1024), 564 | ), 565 | Lambda(lambda x: x), # Identity, 566 | ), 567 | LambdaReduce(lambda x,y: x+y), # CAddTable, 568 | nn.ReLU(), 569 | ), 570 | nn.Sequential( # Sequential, 571 | LambdaMap(lambda x: x, # ConcatTable, 572 | nn.Sequential( # Sequential, 573 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 574 | nn.BatchNorm2d(256), 575 | nn.ReLU(), 576 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 577 | nn.BatchNorm2d(256), 578 | nn.ReLU(), 579 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 580 | nn.BatchNorm2d(1024), 581 | ), 582 | Lambda(lambda x: x), # Identity, 583 | ), 584 | LambdaReduce(lambda x,y: x+y), # CAddTable, 585 | nn.ReLU(), 586 | ), 587 | nn.Sequential( # Sequential, 588 | LambdaMap(lambda x: x, # ConcatTable, 589 | nn.Sequential( # Sequential, 590 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 591 | nn.BatchNorm2d(256), 592 | nn.ReLU(), 593 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 594 | nn.BatchNorm2d(256), 595 | nn.ReLU(), 596 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 597 | nn.BatchNorm2d(1024), 598 | ), 599 | Lambda(lambda x: x), # Identity, 600 | ), 601 | LambdaReduce(lambda x,y: x+y), # CAddTable, 602 | nn.ReLU(), 603 | ), 604 | nn.Sequential( # Sequential, 605 | LambdaMap(lambda x: x, # ConcatTable, 606 | nn.Sequential( # Sequential, 607 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 608 | nn.BatchNorm2d(256), 609 | nn.ReLU(), 610 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 611 | nn.BatchNorm2d(256), 612 | nn.ReLU(), 613 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 614 | nn.BatchNorm2d(1024), 615 | ), 616 | Lambda(lambda x: x), # Identity, 617 | ), 618 | LambdaReduce(lambda x,y: x+y), # CAddTable, 619 | nn.ReLU(), 620 | ), 621 | nn.Sequential( # Sequential, 622 | LambdaMap(lambda x: x, # ConcatTable, 623 | nn.Sequential( # Sequential, 624 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 625 | nn.BatchNorm2d(256), 626 | nn.ReLU(), 627 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 628 | nn.BatchNorm2d(256), 629 | nn.ReLU(), 630 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 631 | nn.BatchNorm2d(1024), 632 | ), 633 | Lambda(lambda x: x), # Identity, 634 | ), 635 | LambdaReduce(lambda x,y: x+y), # CAddTable, 636 | nn.ReLU(), 637 | ), 638 | nn.Sequential( # Sequential, 639 | LambdaMap(lambda x: x, # ConcatTable, 640 | nn.Sequential( # Sequential, 641 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 642 | nn.BatchNorm2d(256), 643 | nn.ReLU(), 644 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 645 | nn.BatchNorm2d(256), 646 | nn.ReLU(), 647 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 648 | nn.BatchNorm2d(1024), 649 | ), 650 | Lambda(lambda x: x), # Identity, 651 | ), 652 | LambdaReduce(lambda x,y: x+y), # CAddTable, 653 | nn.ReLU(), 654 | ), 655 | nn.Sequential( # Sequential, 656 | LambdaMap(lambda x: x, # ConcatTable, 657 | nn.Sequential( # Sequential, 658 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 659 | nn.BatchNorm2d(256), 660 | nn.ReLU(), 661 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 662 | nn.BatchNorm2d(256), 663 | nn.ReLU(), 664 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 665 | nn.BatchNorm2d(1024), 666 | ), 667 | Lambda(lambda x: x), # Identity, 668 | ), 669 | LambdaReduce(lambda x,y: x+y), # CAddTable, 670 | nn.ReLU(), 671 | ), 672 | nn.Sequential( # Sequential, 673 | LambdaMap(lambda x: x, # ConcatTable, 674 | nn.Sequential( # Sequential, 675 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 676 | nn.BatchNorm2d(256), 677 | nn.ReLU(), 678 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 679 | nn.BatchNorm2d(256), 680 | nn.ReLU(), 681 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 682 | nn.BatchNorm2d(1024), 683 | ), 684 | Lambda(lambda x: x), # Identity, 685 | ), 686 | LambdaReduce(lambda x,y: x+y), # CAddTable, 687 | nn.ReLU(), 688 | ), 689 | nn.Sequential( # Sequential, 690 | LambdaMap(lambda x: x, # ConcatTable, 691 | nn.Sequential( # Sequential, 692 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 693 | nn.BatchNorm2d(256), 694 | nn.ReLU(), 695 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 696 | nn.BatchNorm2d(256), 697 | nn.ReLU(), 698 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 699 | nn.BatchNorm2d(1024), 700 | ), 701 | Lambda(lambda x: x), # Identity, 702 | ), 703 | LambdaReduce(lambda x,y: x+y), # CAddTable, 704 | nn.ReLU(), 705 | ), 706 | nn.Sequential( # Sequential, 707 | LambdaMap(lambda x: x, # ConcatTable, 708 | nn.Sequential( # Sequential, 709 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 710 | nn.BatchNorm2d(256), 711 | nn.ReLU(), 712 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 713 | nn.BatchNorm2d(256), 714 | nn.ReLU(), 715 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 716 | nn.BatchNorm2d(1024), 717 | ), 718 | Lambda(lambda x: x), # Identity, 719 | ), 720 | LambdaReduce(lambda x,y: x+y), # CAddTable, 721 | nn.ReLU(), 722 | ), 723 | nn.Sequential( # Sequential, 724 | LambdaMap(lambda x: x, # ConcatTable, 725 | nn.Sequential( # Sequential, 726 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 727 | nn.BatchNorm2d(256), 728 | nn.ReLU(), 729 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 730 | nn.BatchNorm2d(256), 731 | nn.ReLU(), 732 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 733 | nn.BatchNorm2d(1024), 734 | ), 735 | Lambda(lambda x: x), # Identity, 736 | ), 737 | LambdaReduce(lambda x,y: x+y), # CAddTable, 738 | nn.ReLU(), 739 | ), 740 | nn.Sequential( # Sequential, 741 | LambdaMap(lambda x: x, # ConcatTable, 742 | nn.Sequential( # Sequential, 743 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 744 | nn.BatchNorm2d(256), 745 | nn.ReLU(), 746 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 747 | nn.BatchNorm2d(256), 748 | nn.ReLU(), 749 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 750 | nn.BatchNorm2d(1024), 751 | ), 752 | Lambda(lambda x: x), # Identity, 753 | ), 754 | LambdaReduce(lambda x,y: x+y), # CAddTable, 755 | nn.ReLU(), 756 | ), 757 | nn.Sequential( # Sequential, 758 | LambdaMap(lambda x: x, # ConcatTable, 759 | nn.Sequential( # Sequential, 760 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 761 | nn.BatchNorm2d(256), 762 | nn.ReLU(), 763 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 764 | nn.BatchNorm2d(256), 765 | nn.ReLU(), 766 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 767 | nn.BatchNorm2d(1024), 768 | ), 769 | Lambda(lambda x: x), # Identity, 770 | ), 771 | LambdaReduce(lambda x,y: x+y), # CAddTable, 772 | nn.ReLU(), 773 | ), 774 | nn.Sequential( # Sequential, 775 | LambdaMap(lambda x: x, # ConcatTable, 776 | nn.Sequential( # Sequential, 777 | nn.Conv2d(1024,256,(1, 1),(1, 1),(0, 0),1,1,bias=False), 778 | nn.BatchNorm2d(256), 779 | nn.ReLU(), 780 | nn.Conv2d(256,256,(3, 3),(1, 1),(1, 1),1,1,bias=False), 781 | nn.BatchNorm2d(256), 782 | nn.ReLU(), 783 | nn.Conv2d(256,1024,(1, 1),(1, 1),(0, 0),1,1,bias=False), 784 | nn.BatchNorm2d(1024), 785 | ), 786 | Lambda(lambda x: x), # Identity, 787 | ), 788 | LambdaReduce(lambda x,y: x+y), # CAddTable, 789 | nn.ReLU(), 790 | ), 791 | ), 792 | # --------------------- Conv5 1:3 793 | nn.Sequential( # Sequential, 794 | nn.Sequential( # Sequential, 795 | LambdaMap(lambda x: x, # ConcatTable, 796 | nn.Sequential( # Sequential, 797 | nn.Conv2d(1024,512,(1, 1),(1, 1),(0, 0),1,1,bias=False), 798 | nn.BatchNorm2d(512), 799 | nn.ReLU(), 800 | nn.Conv2d(512,512,(3, 3),(2, 2),(1, 1),1,1,bias=False), 801 | nn.BatchNorm2d(512), 802 | nn.ReLU(), 803 | nn.Conv2d(512,2048,(1, 1),(1, 1),(0, 0),1,1,bias=False), 804 | nn.BatchNorm2d(2048), 805 | ), 806 | nn.Sequential( # Sequential, 807 | nn.Conv2d(1024,2048,(1, 1),(2, 2),(0, 0),1,1,bias=False), 808 | nn.BatchNorm2d(2048), 809 | ), 810 | ), 811 | LambdaReduce(lambda x,y: x+y), # CAddTable, 812 | nn.ReLU(), 813 | ), 814 | nn.Sequential( # Sequential, 815 | LambdaMap(lambda x: x, # ConcatTable, 816 | nn.Sequential( # Sequential, 817 | nn.Conv2d(2048,512,(1, 1),(1, 1),(0, 0),1,1,bias=False), 818 | nn.BatchNorm2d(512), 819 | nn.ReLU(), 820 | nn.Conv2d(512,512,(3, 3),(1, 1),(1, 1),1,1,bias=False), 821 | nn.BatchNorm2d(512), 822 | nn.ReLU(), 823 | nn.Conv2d(512,2048,(1, 1),(1, 1),(0, 0),1,1,bias=False), 824 | nn.BatchNorm2d(2048), 825 | ), 826 | Lambda(lambda x: x), # Identity, 827 | ), 828 | LambdaReduce(lambda x,y: x+y), # CAddTable, 829 | nn.ReLU(), 830 | ), 831 | nn.Sequential( # Sequential, 832 | LambdaMap(lambda x: x, # ConcatTable, 833 | nn.Sequential( # Sequential, 834 | nn.Conv2d(2048,512,(1, 1),(1, 1),(0, 0),1,1,bias=False), 835 | nn.BatchNorm2d(512), 836 | nn.ReLU(), 837 | nn.Conv2d(512,512,(3, 3),(1, 1),(1, 1),1,1,bias=False), 838 | nn.BatchNorm2d(512), 839 | nn.ReLU(), 840 | nn.Conv2d(512,2048,(1, 1),(1, 1),(0, 0),1,1,bias=False), 841 | nn.BatchNorm2d(2048), 842 | ), 843 | Lambda(lambda x: x), # Identity, 844 | ), 845 | LambdaReduce(lambda x,y: x+y), # CAddTable, 846 | nn.ReLU(), 847 | ), 848 | ), 849 | nn.AvgPool2d((7, 7),(1, 1)), 850 | Lambda(lambda x: x.view(x.size(0),-1)), # View, 851 | nn.Sequential( 852 | Lambda(lambda x: x.view(1,-1) if 1==len(x.size()) else x ), 853 | nn.Linear(2048,80)), # Linear, 854 | ) -------------------------------------------------------------------------------- /Places2-365-CNN.prototxt: -------------------------------------------------------------------------------- 1 | name: "Places2-365-CNN" 2 | input: "data" 3 | input_dim: 10 4 | input_dim: 3 5 | input_dim: 224 6 | input_dim: 224 7 | layer { 8 | name: "conv1_1_3x3_s2" 9 | type: "Convolution" 10 | bottom: "data" 11 | top: "conv1_1_3x3_s2" 12 | convolution_param { 13 | num_output: 64 14 | bias_term: false 15 | pad: 1 16 | kernel_size: 3 17 | stride: 2 18 | } 19 | } 20 | layer { 21 | name: "conv1_1_3x3_s2/bn" 22 | type: "BatchNorm" 23 | bottom: "conv1_1_3x3_s2" 24 | top: "conv1_1_3x3_s2" 25 | batch_norm_param { 26 | use_global_stats: true 27 | } 28 | } 29 | layer { 30 | name: "conv1_1_3x3_s2/scale" 31 | type: "Scale" 32 | bottom: "conv1_1_3x3_s2" 33 | top: "conv1_1_3x3_s2" 34 | scale_param { 35 | bias_term: true 36 | } 37 | } 38 | layer { 39 | name: "conv1_1_3x3_s2/relu" 40 | type: "ReLU" 41 | bottom: "conv1_1_3x3_s2" 42 | top: "conv1_1_3x3_s2" 43 | } 44 | layer { 45 | name: "conv1_2_3x3" 46 | type: "Convolution" 47 | bottom: "conv1_1_3x3_s2" 48 | top: "conv1_2_3x3" 49 | convolution_param { 50 | num_output: 64 51 | bias_term: false 52 | pad: 1 53 | kernel_size: 3 54 | stride: 1 55 | } 56 | } 57 | layer { 58 | name: "conv1_2_3x3/bn" 59 | type: "BatchNorm" 60 | bottom: "conv1_2_3x3" 61 | top: "conv1_2_3x3" 62 | batch_norm_param { 63 | use_global_stats: true 64 | } 65 | } 66 | layer { 67 | name: "conv1_2_3x3/scale" 68 | type: "Scale" 69 | bottom: "conv1_2_3x3" 70 | top: "conv1_2_3x3" 71 | scale_param { 72 | bias_term: true 73 | } 74 | } 75 | layer { 76 | name: "conv1_2_3x3/relu" 77 | type: "ReLU" 78 | bottom: "conv1_2_3x3" 79 | top: "conv1_2_3x3" 80 | } 81 | layer { 82 | name: "conv1_3_3x3" 83 | type: "Convolution" 84 | bottom: "conv1_2_3x3" 85 | top: "conv1_3_3x3" 86 | convolution_param { 87 | num_output: 128 88 | bias_term: false 89 | pad: 1 90 | kernel_size: 3 91 | stride: 1 92 | } 93 | } 94 | layer { 95 | name: "conv1_3_3x3/bn" 96 | type: "BatchNorm" 97 | bottom: "conv1_3_3x3" 98 | top: "conv1_3_3x3" 99 | batch_norm_param { 100 | use_global_stats: true 101 | } 102 | } 103 | layer { 104 | name: "conv1_3_3x3/scale" 105 | type: "Scale" 106 | bottom: "conv1_3_3x3" 107 | top: "conv1_3_3x3" 108 | scale_param { 109 | bias_term: true 110 | } 111 | } 112 | layer { 113 | name: "conv1_3_3x3/relu" 114 | type: "ReLU" 115 | bottom: "conv1_3_3x3" 116 | top: "conv1_3_3x3" 117 | } 118 | layer { 119 | name: "pool1_3x3_s2" 120 | type: "Pooling" 121 | bottom: "conv1_3_3x3" 122 | top: "pool1_3x3_s2" 123 | pooling_param { 124 | pool: MAX 125 | kernel_size: 3 126 | stride: 2 127 | } 128 | } 129 | layer { 130 | name: "conv2_1_1x1_reduce" 131 | type: "Convolution" 132 | bottom: "pool1_3x3_s2" 133 | top: "conv2_1_1x1_reduce" 134 | convolution_param { 135 | num_output: 64 136 | bias_term: false 137 | pad: 0 138 | kernel_size: 1 139 | stride: 1 140 | } 141 | } 142 | layer { 143 | name: "conv2_1_1x1_reduce/bn" 144 | type: "BatchNorm" 145 | bottom: "conv2_1_1x1_reduce" 146 | top: "conv2_1_1x1_reduce" 147 | batch_norm_param { 148 | use_global_stats: true 149 | } 150 | } 151 | layer { 152 | name: "conv2_1_1x1_reduce/scale" 153 | type: "Scale" 154 | bottom: "conv2_1_1x1_reduce" 155 | top: "conv2_1_1x1_reduce" 156 | scale_param { 157 | bias_term: true 158 | } 159 | } 160 | layer { 161 | name: "conv2_1_1x1_reduce/relu" 162 | type: "ReLU" 163 | bottom: "conv2_1_1x1_reduce" 164 | top: "conv2_1_1x1_reduce" 165 | } 166 | layer { 167 | name: "conv2_1_3x3" 168 | type: "Convolution" 169 | bottom: "conv2_1_1x1_reduce" 170 | top: "conv2_1_3x3" 171 | convolution_param { 172 | num_output: 64 173 | bias_term: false 174 | pad: 1 175 | kernel_size: 3 176 | stride: 1 177 | } 178 | } 179 | layer { 180 | name: "conv2_1_3x3/bn" 181 | type: "BatchNorm" 182 | bottom: "conv2_1_3x3" 183 | top: "conv2_1_3x3" 184 | batch_norm_param { 185 | use_global_stats: true 186 | } 187 | } 188 | layer { 189 | name: "conv2_1_3x3/scale" 190 | type: "Scale" 191 | bottom: "conv2_1_3x3" 192 | top: "conv2_1_3x3" 193 | scale_param { 194 | bias_term: true 195 | } 196 | } 197 | layer { 198 | name: "conv2_1_3x3/relu" 199 | type: "ReLU" 200 | bottom: "conv2_1_3x3" 201 | top: "conv2_1_3x3" 202 | } 203 | layer { 204 | name: "conv2_1_1x1_increase" 205 | type: "Convolution" 206 | bottom: "conv2_1_3x3" 207 | top: "conv2_1_1x1_increase" 208 | convolution_param { 209 | num_output: 256 210 | bias_term: false 211 | pad: 0 212 | kernel_size: 1 213 | stride: 1 214 | } 215 | } 216 | layer { 217 | name: "conv2_1_1x1_increase/bn" 218 | type: "BatchNorm" 219 | bottom: "conv2_1_1x1_increase" 220 | top: "conv2_1_1x1_increase" 221 | batch_norm_param { 222 | use_global_stats: true 223 | } 224 | } 225 | layer { 226 | name: "conv2_1_1x1_increase/scale" 227 | type: "Scale" 228 | bottom: "conv2_1_1x1_increase" 229 | top: "conv2_1_1x1_increase" 230 | scale_param { 231 | bias_term: true 232 | } 233 | } 234 | layer { 235 | name: "conv2_1_1x1_proj" 236 | type: "Convolution" 237 | bottom: "pool1_3x3_s2" 238 | top: "conv2_1_1x1_proj" 239 | convolution_param { 240 | num_output: 256 241 | bias_term: false 242 | pad: 0 243 | kernel_size: 1 244 | stride: 1 245 | } 246 | } 247 | layer { 248 | name: "conv2_1_1x1_proj/bn" 249 | type: "BatchNorm" 250 | bottom: "conv2_1_1x1_proj" 251 | top: "conv2_1_1x1_proj" 252 | batch_norm_param { 253 | use_global_stats: true 254 | } 255 | } 256 | layer { 257 | name: "conv2_1_1x1_proj/scale" 258 | type: "Scale" 259 | bottom: "conv2_1_1x1_proj" 260 | top: "conv2_1_1x1_proj" 261 | scale_param { 262 | bias_term: true 263 | } 264 | } 265 | layer { 266 | name: "conv2_1" 267 | type: "Eltwise" 268 | bottom: "conv2_1_1x1_proj" 269 | bottom: "conv2_1_1x1_increase" 270 | top: "conv2_1" 271 | eltwise_param { 272 | operation: SUM 273 | } 274 | } 275 | layer { 276 | name: "conv2_1/relu" 277 | type: "ReLU" 278 | bottom: "conv2_1" 279 | top: "conv2_1" 280 | } 281 | layer { 282 | name: "conv2_2_1x1_reduce" 283 | type: "Convolution" 284 | bottom: "conv2_1" 285 | top: "conv2_2_1x1_reduce" 286 | convolution_param { 287 | num_output: 64 288 | bias_term: false 289 | pad: 0 290 | kernel_size: 1 291 | stride: 1 292 | } 293 | } 294 | layer { 295 | name: "conv2_2_1x1_reduce/bn" 296 | type: "BatchNorm" 297 | bottom: "conv2_2_1x1_reduce" 298 | top: "conv2_2_1x1_reduce" 299 | batch_norm_param { 300 | use_global_stats: true 301 | } 302 | } 303 | layer { 304 | name: "conv2_2_1x1_reduce/scale" 305 | type: "Scale" 306 | bottom: "conv2_2_1x1_reduce" 307 | top: "conv2_2_1x1_reduce" 308 | scale_param { 309 | bias_term: true 310 | } 311 | } 312 | layer { 313 | name: "conv2_2_1x1_reduce/relu" 314 | type: "ReLU" 315 | bottom: "conv2_2_1x1_reduce" 316 | top: "conv2_2_1x1_reduce" 317 | } 318 | layer { 319 | name: "conv2_2_3x3" 320 | type: "Convolution" 321 | bottom: "conv2_2_1x1_reduce" 322 | top: "conv2_2_3x3" 323 | convolution_param { 324 | num_output: 64 325 | bias_term: false 326 | pad: 1 327 | kernel_size: 3 328 | stride: 1 329 | } 330 | } 331 | layer { 332 | name: "conv2_2_3x3/bn" 333 | type: "BatchNorm" 334 | bottom: "conv2_2_3x3" 335 | top: "conv2_2_3x3" 336 | batch_norm_param { 337 | use_global_stats: true 338 | } 339 | } 340 | layer { 341 | name: "conv2_2_3x3/scale" 342 | type: "Scale" 343 | bottom: "conv2_2_3x3" 344 | top: "conv2_2_3x3" 345 | scale_param { 346 | bias_term: true 347 | } 348 | } 349 | layer { 350 | name: "conv2_2_3x3/relu" 351 | type: "ReLU" 352 | bottom: "conv2_2_3x3" 353 | top: "conv2_2_3x3" 354 | } 355 | layer { 356 | name: "conv2_2_1x1_increase" 357 | type: "Convolution" 358 | bottom: "conv2_2_3x3" 359 | top: "conv2_2_1x1_increase" 360 | convolution_param { 361 | num_output: 256 362 | bias_term: false 363 | pad: 0 364 | kernel_size: 1 365 | stride: 1 366 | } 367 | } 368 | layer { 369 | name: "conv2_2_1x1_increase/bn" 370 | type: "BatchNorm" 371 | bottom: "conv2_2_1x1_increase" 372 | top: "conv2_2_1x1_increase" 373 | batch_norm_param { 374 | use_global_stats: true 375 | } 376 | } 377 | layer { 378 | name: "conv2_2_1x1_increase/scale" 379 | type: "Scale" 380 | bottom: "conv2_2_1x1_increase" 381 | top: "conv2_2_1x1_increase" 382 | scale_param { 383 | bias_term: true 384 | } 385 | } 386 | layer { 387 | name: "conv2_2" 388 | type: "Eltwise" 389 | bottom: "conv2_1" 390 | bottom: "conv2_2_1x1_increase" 391 | top: "conv2_2" 392 | eltwise_param { 393 | operation: SUM 394 | } 395 | } 396 | layer { 397 | name: "conv2_2/relu" 398 | type: "ReLU" 399 | bottom: "conv2_2" 400 | top: "conv2_2" 401 | } 402 | layer { 403 | name: "conv2_3_1x1_reduce" 404 | type: "Convolution" 405 | bottom: "conv2_2" 406 | top: "conv2_3_1x1_reduce" 407 | convolution_param { 408 | num_output: 64 409 | bias_term: false 410 | pad: 0 411 | kernel_size: 1 412 | stride: 1 413 | } 414 | } 415 | layer { 416 | name: "conv2_3_1x1_reduce/bn" 417 | type: "BatchNorm" 418 | bottom: "conv2_3_1x1_reduce" 419 | top: "conv2_3_1x1_reduce" 420 | batch_norm_param { 421 | use_global_stats: true 422 | } 423 | } 424 | layer { 425 | name: "conv2_3_1x1_reduce/scale" 426 | type: "Scale" 427 | bottom: "conv2_3_1x1_reduce" 428 | top: "conv2_3_1x1_reduce" 429 | scale_param { 430 | bias_term: true 431 | } 432 | } 433 | layer { 434 | name: "conv2_3_1x1_reduce/relu" 435 | type: "ReLU" 436 | bottom: "conv2_3_1x1_reduce" 437 | top: "conv2_3_1x1_reduce" 438 | } 439 | layer { 440 | name: "conv2_3_3x3" 441 | type: "Convolution" 442 | bottom: "conv2_3_1x1_reduce" 443 | top: "conv2_3_3x3" 444 | convolution_param { 445 | num_output: 64 446 | bias_term: false 447 | pad: 1 448 | kernel_size: 3 449 | stride: 1 450 | } 451 | } 452 | layer { 453 | name: "conv2_3_3x3/bn" 454 | type: "BatchNorm" 455 | bottom: "conv2_3_3x3" 456 | top: "conv2_3_3x3" 457 | batch_norm_param { 458 | use_global_stats: true 459 | } 460 | } 461 | layer { 462 | name: "conv2_3_3x3/scale" 463 | type: "Scale" 464 | bottom: "conv2_3_3x3" 465 | top: "conv2_3_3x3" 466 | scale_param { 467 | bias_term: true 468 | } 469 | } 470 | layer { 471 | name: "conv2_3_3x3/relu" 472 | type: "ReLU" 473 | bottom: "conv2_3_3x3" 474 | top: "conv2_3_3x3" 475 | } 476 | layer { 477 | name: "conv2_3_1x1_increase" 478 | type: "Convolution" 479 | bottom: "conv2_3_3x3" 480 | top: "conv2_3_1x1_increase" 481 | convolution_param { 482 | num_output: 256 483 | bias_term: false 484 | pad: 0 485 | kernel_size: 1 486 | stride: 1 487 | } 488 | } 489 | layer { 490 | name: "conv2_3_1x1_increase/bn" 491 | type: "BatchNorm" 492 | bottom: "conv2_3_1x1_increase" 493 | top: "conv2_3_1x1_increase" 494 | batch_norm_param { 495 | use_global_stats: true 496 | } 497 | } 498 | layer { 499 | name: "conv2_3_1x1_increase/scale" 500 | type: "Scale" 501 | bottom: "conv2_3_1x1_increase" 502 | top: "conv2_3_1x1_increase" 503 | scale_param { 504 | bias_term: true 505 | } 506 | } 507 | layer { 508 | name: "conv2_3" 509 | type: "Eltwise" 510 | bottom: "conv2_2" 511 | bottom: "conv2_3_1x1_increase" 512 | top: "conv2_3" 513 | eltwise_param { 514 | operation: SUM 515 | } 516 | } 517 | layer { 518 | name: "conv2_3/relu" 519 | type: "ReLU" 520 | bottom: "conv2_3" 521 | top: "conv2_3" 522 | } 523 | layer { 524 | name: "conv2_4_1x1_reduce" 525 | type: "Convolution" 526 | bottom: "conv2_3" 527 | top: "conv2_4_1x1_reduce" 528 | convolution_param { 529 | num_output: 64 530 | bias_term: false 531 | pad: 0 532 | kernel_size: 1 533 | stride: 1 534 | } 535 | } 536 | layer { 537 | name: "conv2_4_1x1_reduce/bn" 538 | type: "BatchNorm" 539 | bottom: "conv2_4_1x1_reduce" 540 | top: "conv2_4_1x1_reduce" 541 | batch_norm_param { 542 | use_global_stats: true 543 | } 544 | } 545 | layer { 546 | name: "conv2_4_1x1_reduce/scale" 547 | type: "Scale" 548 | bottom: "conv2_4_1x1_reduce" 549 | top: "conv2_4_1x1_reduce" 550 | scale_param { 551 | bias_term: true 552 | } 553 | } 554 | layer { 555 | name: "conv2_4_1x1_reduce/relu" 556 | type: "ReLU" 557 | bottom: "conv2_4_1x1_reduce" 558 | top: "conv2_4_1x1_reduce" 559 | } 560 | layer { 561 | name: "conv2_4_3x3" 562 | type: "Convolution" 563 | bottom: "conv2_4_1x1_reduce" 564 | top: "conv2_4_3x3" 565 | convolution_param { 566 | num_output: 64 567 | bias_term: false 568 | pad: 1 569 | kernel_size: 3 570 | stride: 1 571 | } 572 | } 573 | layer { 574 | name: "conv2_4_3x3/bn" 575 | type: "BatchNorm" 576 | bottom: "conv2_4_3x3" 577 | top: "conv2_4_3x3" 578 | batch_norm_param { 579 | use_global_stats: true 580 | } 581 | } 582 | layer { 583 | name: "conv2_4_3x3/scale" 584 | type: "Scale" 585 | bottom: "conv2_4_3x3" 586 | top: "conv2_4_3x3" 587 | scale_param { 588 | bias_term: true 589 | } 590 | } 591 | layer { 592 | name: "conv2_4_3x3/relu" 593 | type: "ReLU" 594 | bottom: "conv2_4_3x3" 595 | top: "conv2_4_3x3" 596 | } 597 | layer { 598 | name: "conv2_4_1x1_increase" 599 | type: "Convolution" 600 | bottom: "conv2_4_3x3" 601 | top: "conv2_4_1x1_increase" 602 | convolution_param { 603 | num_output: 256 604 | bias_term: false 605 | pad: 0 606 | kernel_size: 1 607 | stride: 1 608 | } 609 | } 610 | layer { 611 | name: "conv2_4_1x1_increase/bn" 612 | type: "BatchNorm" 613 | bottom: "conv2_4_1x1_increase" 614 | top: "conv2_4_1x1_increase" 615 | batch_norm_param { 616 | use_global_stats: true 617 | } 618 | } 619 | layer { 620 | name: "conv2_4_1x1_increase/scale" 621 | type: "Scale" 622 | bottom: "conv2_4_1x1_increase" 623 | top: "conv2_4_1x1_increase" 624 | scale_param { 625 | bias_term: true 626 | } 627 | } 628 | layer { 629 | name: "conv2_4" 630 | type: "Eltwise" 631 | bottom: "conv2_3" 632 | bottom: "conv2_4_1x1_increase" 633 | top: "conv2_4" 634 | eltwise_param { 635 | operation: SUM 636 | } 637 | } 638 | layer { 639 | name: "conv2_4/relu" 640 | type: "ReLU" 641 | bottom: "conv2_4" 642 | top: "conv2_4" 643 | } 644 | layer { 645 | name: "conv2_5_1x1_reduce" 646 | type: "Convolution" 647 | bottom: "conv2_4" 648 | top: "conv2_5_1x1_reduce" 649 | convolution_param { 650 | num_output: 64 651 | bias_term: false 652 | pad: 0 653 | kernel_size: 1 654 | stride: 1 655 | } 656 | } 657 | layer { 658 | name: "conv2_5_1x1_reduce/bn" 659 | type: "BatchNorm" 660 | bottom: "conv2_5_1x1_reduce" 661 | top: "conv2_5_1x1_reduce" 662 | batch_norm_param { 663 | use_global_stats: true 664 | } 665 | } 666 | layer { 667 | name: "conv2_5_1x1_reduce/scale" 668 | type: "Scale" 669 | bottom: "conv2_5_1x1_reduce" 670 | top: "conv2_5_1x1_reduce" 671 | scale_param { 672 | bias_term: true 673 | } 674 | } 675 | layer { 676 | name: "conv2_5_1x1_reduce/relu" 677 | type: "ReLU" 678 | bottom: "conv2_5_1x1_reduce" 679 | top: "conv2_5_1x1_reduce" 680 | } 681 | layer { 682 | name: "conv2_5_3x3" 683 | type: "Convolution" 684 | bottom: "conv2_5_1x1_reduce" 685 | top: "conv2_5_3x3" 686 | convolution_param { 687 | num_output: 64 688 | bias_term: false 689 | pad: 1 690 | kernel_size: 3 691 | stride: 1 692 | } 693 | } 694 | layer { 695 | name: "conv2_5_3x3/bn" 696 | type: "BatchNorm" 697 | bottom: "conv2_5_3x3" 698 | top: "conv2_5_3x3" 699 | batch_norm_param { 700 | use_global_stats: true 701 | } 702 | } 703 | layer { 704 | name: "conv2_5_3x3/scale" 705 | type: "Scale" 706 | bottom: "conv2_5_3x3" 707 | top: "conv2_5_3x3" 708 | scale_param { 709 | bias_term: true 710 | } 711 | } 712 | layer { 713 | name: "conv2_5_3x3/relu" 714 | type: "ReLU" 715 | bottom: "conv2_5_3x3" 716 | top: "conv2_5_3x3" 717 | } 718 | layer { 719 | name: "conv2_5_1x1_increase" 720 | type: "Convolution" 721 | bottom: "conv2_5_3x3" 722 | top: "conv2_5_1x1_increase" 723 | convolution_param { 724 | num_output: 256 725 | bias_term: false 726 | pad: 0 727 | kernel_size: 1 728 | stride: 1 729 | } 730 | } 731 | layer { 732 | name: "conv2_5_1x1_increase/bn" 733 | type: "BatchNorm" 734 | bottom: "conv2_5_1x1_increase" 735 | top: "conv2_5_1x1_increase" 736 | batch_norm_param { 737 | use_global_stats: true 738 | } 739 | } 740 | layer { 741 | name: "conv2_5_1x1_increase/scale" 742 | type: "Scale" 743 | bottom: "conv2_5_1x1_increase" 744 | top: "conv2_5_1x1_increase" 745 | scale_param { 746 | bias_term: true 747 | } 748 | } 749 | layer { 750 | name: "conv2_5" 751 | type: "Eltwise" 752 | bottom: "conv2_4" 753 | bottom: "conv2_5_1x1_increase" 754 | top: "conv2_5" 755 | eltwise_param { 756 | operation: SUM 757 | } 758 | } 759 | layer { 760 | name: "conv2_5/relu" 761 | type: "ReLU" 762 | bottom: "conv2_5" 763 | top: "conv2_5" 764 | } 765 | layer { 766 | name: "conv2_6_1x1_reduce" 767 | type: "Convolution" 768 | bottom: "conv2_5" 769 | top: "conv2_6_1x1_reduce" 770 | convolution_param { 771 | num_output: 64 772 | bias_term: false 773 | pad: 0 774 | kernel_size: 1 775 | stride: 1 776 | } 777 | } 778 | layer { 779 | name: "conv2_6_1x1_reduce/bn" 780 | type: "BatchNorm" 781 | bottom: "conv2_6_1x1_reduce" 782 | top: "conv2_6_1x1_reduce" 783 | batch_norm_param { 784 | use_global_stats: true 785 | } 786 | } 787 | layer { 788 | name: "conv2_6_1x1_reduce/scale" 789 | type: "Scale" 790 | bottom: "conv2_6_1x1_reduce" 791 | top: "conv2_6_1x1_reduce" 792 | scale_param { 793 | bias_term: true 794 | } 795 | } 796 | layer { 797 | name: "conv2_6_1x1_reduce/relu" 798 | type: "ReLU" 799 | bottom: "conv2_6_1x1_reduce" 800 | top: "conv2_6_1x1_reduce" 801 | } 802 | layer { 803 | name: "conv2_6_3x3" 804 | type: "Convolution" 805 | bottom: "conv2_6_1x1_reduce" 806 | top: "conv2_6_3x3" 807 | convolution_param { 808 | num_output: 64 809 | bias_term: false 810 | pad: 1 811 | kernel_size: 3 812 | stride: 1 813 | } 814 | } 815 | layer { 816 | name: "conv2_6_3x3/bn" 817 | type: "BatchNorm" 818 | bottom: "conv2_6_3x3" 819 | top: "conv2_6_3x3" 820 | batch_norm_param { 821 | use_global_stats: true 822 | } 823 | } 824 | layer { 825 | name: "conv2_6_3x3/scale" 826 | type: "Scale" 827 | bottom: "conv2_6_3x3" 828 | top: "conv2_6_3x3" 829 | scale_param { 830 | bias_term: true 831 | } 832 | } 833 | layer { 834 | name: "conv2_6_3x3/relu" 835 | type: "ReLU" 836 | bottom: "conv2_6_3x3" 837 | top: "conv2_6_3x3" 838 | } 839 | layer { 840 | name: "conv2_6_1x1_increase" 841 | type: "Convolution" 842 | bottom: "conv2_6_3x3" 843 | top: "conv2_6_1x1_increase" 844 | convolution_param { 845 | num_output: 256 846 | bias_term: false 847 | pad: 0 848 | kernel_size: 1 849 | stride: 1 850 | } 851 | } 852 | layer { 853 | name: "conv2_6_1x1_increase/bn" 854 | type: "BatchNorm" 855 | bottom: "conv2_6_1x1_increase" 856 | top: "conv2_6_1x1_increase" 857 | batch_norm_param { 858 | use_global_stats: true 859 | } 860 | } 861 | layer { 862 | name: "conv2_6_1x1_increase/scale" 863 | type: "Scale" 864 | bottom: "conv2_6_1x1_increase" 865 | top: "conv2_6_1x1_increase" 866 | scale_param { 867 | bias_term: true 868 | } 869 | } 870 | layer { 871 | name: "conv2_6" 872 | type: "Eltwise" 873 | bottom: "conv2_5" 874 | bottom: "conv2_6_1x1_increase" 875 | top: "conv2_6" 876 | eltwise_param { 877 | operation: SUM 878 | } 879 | } 880 | layer { 881 | name: "conv2_6/relu" 882 | type: "ReLU" 883 | bottom: "conv2_6" 884 | top: "conv2_6" 885 | } 886 | layer { 887 | name: "conv2_7_1x1_reduce" 888 | type: "Convolution" 889 | bottom: "conv2_6" 890 | top: "conv2_7_1x1_reduce" 891 | convolution_param { 892 | num_output: 64 893 | bias_term: false 894 | pad: 0 895 | kernel_size: 1 896 | stride: 1 897 | } 898 | } 899 | layer { 900 | name: "conv2_7_1x1_reduce/bn" 901 | type: "BatchNorm" 902 | bottom: "conv2_7_1x1_reduce" 903 | top: "conv2_7_1x1_reduce" 904 | batch_norm_param { 905 | use_global_stats: true 906 | } 907 | } 908 | layer { 909 | name: "conv2_7_1x1_reduce/scale" 910 | type: "Scale" 911 | bottom: "conv2_7_1x1_reduce" 912 | top: "conv2_7_1x1_reduce" 913 | scale_param { 914 | bias_term: true 915 | } 916 | } 917 | layer { 918 | name: "conv2_7_1x1_reduce/relu" 919 | type: "ReLU" 920 | bottom: "conv2_7_1x1_reduce" 921 | top: "conv2_7_1x1_reduce" 922 | } 923 | layer { 924 | name: "conv2_7_3x3" 925 | type: "Convolution" 926 | bottom: "conv2_7_1x1_reduce" 927 | top: "conv2_7_3x3" 928 | convolution_param { 929 | num_output: 64 930 | bias_term: false 931 | pad: 1 932 | kernel_size: 3 933 | stride: 1 934 | } 935 | } 936 | layer { 937 | name: "conv2_7_3x3/bn" 938 | type: "BatchNorm" 939 | bottom: "conv2_7_3x3" 940 | top: "conv2_7_3x3" 941 | batch_norm_param { 942 | use_global_stats: true 943 | } 944 | } 945 | layer { 946 | name: "conv2_7_3x3/scale" 947 | type: "Scale" 948 | bottom: "conv2_7_3x3" 949 | top: "conv2_7_3x3" 950 | scale_param { 951 | bias_term: true 952 | } 953 | } 954 | layer { 955 | name: "conv2_7_3x3/relu" 956 | type: "ReLU" 957 | bottom: "conv2_7_3x3" 958 | top: "conv2_7_3x3" 959 | } 960 | layer { 961 | name: "conv2_7_1x1_increase" 962 | type: "Convolution" 963 | bottom: "conv2_7_3x3" 964 | top: "conv2_7_1x1_increase" 965 | convolution_param { 966 | num_output: 256 967 | bias_term: false 968 | pad: 0 969 | kernel_size: 1 970 | stride: 1 971 | } 972 | } 973 | layer { 974 | name: "conv2_7_1x1_increase/bn" 975 | type: "BatchNorm" 976 | bottom: "conv2_7_1x1_increase" 977 | top: "conv2_7_1x1_increase" 978 | batch_norm_param { 979 | use_global_stats: true 980 | } 981 | } 982 | layer { 983 | name: "conv2_7_1x1_increase/scale" 984 | type: "Scale" 985 | bottom: "conv2_7_1x1_increase" 986 | top: "conv2_7_1x1_increase" 987 | scale_param { 988 | bias_term: true 989 | } 990 | } 991 | layer { 992 | name: "conv2_7" 993 | type: "Eltwise" 994 | bottom: "conv2_6" 995 | bottom: "conv2_7_1x1_increase" 996 | top: "conv2_7" 997 | eltwise_param { 998 | operation: SUM 999 | } 1000 | } 1001 | layer { 1002 | name: "conv2_7/relu" 1003 | type: "ReLU" 1004 | bottom: "conv2_7" 1005 | top: "conv2_7" 1006 | } 1007 | layer { 1008 | name: "conv2_8_1x1_reduce" 1009 | type: "Convolution" 1010 | bottom: "conv2_7" 1011 | top: "conv2_8_1x1_reduce" 1012 | convolution_param { 1013 | num_output: 64 1014 | bias_term: false 1015 | pad: 0 1016 | kernel_size: 1 1017 | stride: 1 1018 | } 1019 | } 1020 | layer { 1021 | name: "conv2_8_1x1_reduce/bn" 1022 | type: "BatchNorm" 1023 | bottom: "conv2_8_1x1_reduce" 1024 | top: "conv2_8_1x1_reduce" 1025 | batch_norm_param { 1026 | use_global_stats: true 1027 | } 1028 | } 1029 | layer { 1030 | name: "conv2_8_1x1_reduce/scale" 1031 | type: "Scale" 1032 | bottom: "conv2_8_1x1_reduce" 1033 | top: "conv2_8_1x1_reduce" 1034 | scale_param { 1035 | bias_term: true 1036 | } 1037 | } 1038 | layer { 1039 | name: "conv2_8_1x1_reduce/relu" 1040 | type: "ReLU" 1041 | bottom: "conv2_8_1x1_reduce" 1042 | top: "conv2_8_1x1_reduce" 1043 | } 1044 | layer { 1045 | name: "conv2_8_3x3" 1046 | type: "Convolution" 1047 | bottom: "conv2_8_1x1_reduce" 1048 | top: "conv2_8_3x3" 1049 | convolution_param { 1050 | num_output: 64 1051 | bias_term: false 1052 | pad: 1 1053 | kernel_size: 3 1054 | stride: 1 1055 | } 1056 | } 1057 | layer { 1058 | name: "conv2_8_3x3/bn" 1059 | type: "BatchNorm" 1060 | bottom: "conv2_8_3x3" 1061 | top: "conv2_8_3x3" 1062 | batch_norm_param { 1063 | use_global_stats: true 1064 | } 1065 | } 1066 | layer { 1067 | name: "conv2_8_3x3/scale" 1068 | type: "Scale" 1069 | bottom: "conv2_8_3x3" 1070 | top: "conv2_8_3x3" 1071 | scale_param { 1072 | bias_term: true 1073 | } 1074 | } 1075 | layer { 1076 | name: "conv2_8_3x3/relu" 1077 | type: "ReLU" 1078 | bottom: "conv2_8_3x3" 1079 | top: "conv2_8_3x3" 1080 | } 1081 | layer { 1082 | name: "conv2_8_1x1_increase" 1083 | type: "Convolution" 1084 | bottom: "conv2_8_3x3" 1085 | top: "conv2_8_1x1_increase" 1086 | convolution_param { 1087 | num_output: 256 1088 | bias_term: false 1089 | pad: 0 1090 | kernel_size: 1 1091 | stride: 1 1092 | } 1093 | } 1094 | layer { 1095 | name: "conv2_8_1x1_increase/bn" 1096 | type: "BatchNorm" 1097 | bottom: "conv2_8_1x1_increase" 1098 | top: "conv2_8_1x1_increase" 1099 | batch_norm_param { 1100 | use_global_stats: true 1101 | } 1102 | } 1103 | layer { 1104 | name: "conv2_8_1x1_increase/scale" 1105 | type: "Scale" 1106 | bottom: "conv2_8_1x1_increase" 1107 | top: "conv2_8_1x1_increase" 1108 | scale_param { 1109 | bias_term: true 1110 | } 1111 | } 1112 | layer { 1113 | name: "conv2_8" 1114 | type: "Eltwise" 1115 | bottom: "conv2_7" 1116 | bottom: "conv2_8_1x1_increase" 1117 | top: "conv2_8" 1118 | eltwise_param { 1119 | operation: SUM 1120 | } 1121 | } 1122 | layer { 1123 | name: "conv2_8/relu" 1124 | type: "ReLU" 1125 | bottom: "conv2_8" 1126 | top: "conv2_8" 1127 | } 1128 | layer { 1129 | name: "conv3_1_1x1_reduce" 1130 | type: "Convolution" 1131 | bottom: "conv2_8" 1132 | top: "conv3_1_1x1_reduce" 1133 | convolution_param { 1134 | num_output: 128 1135 | bias_term: false 1136 | pad: 0 1137 | kernel_size: 1 1138 | stride: 1 1139 | } 1140 | } 1141 | layer { 1142 | name: "conv3_1_1x1_reduce/bn" 1143 | type: "BatchNorm" 1144 | bottom: "conv3_1_1x1_reduce" 1145 | top: "conv3_1_1x1_reduce" 1146 | batch_norm_param { 1147 | use_global_stats: true 1148 | } 1149 | } 1150 | layer { 1151 | name: "conv3_1_1x1_reduce/scale" 1152 | type: "Scale" 1153 | bottom: "conv3_1_1x1_reduce" 1154 | top: "conv3_1_1x1_reduce" 1155 | scale_param { 1156 | bias_term: true 1157 | } 1158 | } 1159 | layer { 1160 | name: "conv3_1_1x1_reduce/relu" 1161 | type: "ReLU" 1162 | bottom: "conv3_1_1x1_reduce" 1163 | top: "conv3_1_1x1_reduce" 1164 | } 1165 | layer { 1166 | name: "conv3_1_3x3" 1167 | type: "Convolution" 1168 | bottom: "conv3_1_1x1_reduce" 1169 | top: "conv3_1_3x3" 1170 | convolution_param { 1171 | num_output: 128 1172 | bias_term: false 1173 | pad: 1 1174 | kernel_size: 3 1175 | stride: 2 1176 | } 1177 | } 1178 | layer { 1179 | name: "conv3_1_3x3/bn" 1180 | type: "BatchNorm" 1181 | bottom: "conv3_1_3x3" 1182 | top: "conv3_1_3x3" 1183 | batch_norm_param { 1184 | use_global_stats: true 1185 | } 1186 | } 1187 | layer { 1188 | name: "conv3_1_3x3/scale" 1189 | type: "Scale" 1190 | bottom: "conv3_1_3x3" 1191 | top: "conv3_1_3x3" 1192 | scale_param { 1193 | bias_term: true 1194 | } 1195 | } 1196 | layer { 1197 | name: "conv3_1_3x3/relu" 1198 | type: "ReLU" 1199 | bottom: "conv3_1_3x3" 1200 | top: "conv3_1_3x3" 1201 | } 1202 | layer { 1203 | name: "conv3_1_1x1_increase" 1204 | type: "Convolution" 1205 | bottom: "conv3_1_3x3" 1206 | top: "conv3_1_1x1_increase" 1207 | convolution_param { 1208 | num_output: 512 1209 | bias_term: false 1210 | pad: 0 1211 | kernel_size: 1 1212 | stride: 1 1213 | } 1214 | } 1215 | layer { 1216 | name: "conv3_1_1x1_increase/bn" 1217 | type: "BatchNorm" 1218 | bottom: "conv3_1_1x1_increase" 1219 | top: "conv3_1_1x1_increase" 1220 | batch_norm_param { 1221 | use_global_stats: true 1222 | } 1223 | } 1224 | layer { 1225 | name: "conv3_1_1x1_increase/scale" 1226 | type: "Scale" 1227 | bottom: "conv3_1_1x1_increase" 1228 | top: "conv3_1_1x1_increase" 1229 | scale_param { 1230 | bias_term: true 1231 | } 1232 | } 1233 | layer { 1234 | name: "conv3_1_1x1_proj" 1235 | type: "Convolution" 1236 | bottom: "conv2_8" 1237 | top: "conv3_1_1x1_proj" 1238 | convolution_param { 1239 | num_output: 512 1240 | bias_term: false 1241 | pad: 0 1242 | kernel_size: 1 1243 | stride: 2 1244 | } 1245 | } 1246 | layer { 1247 | name: "conv3_1_1x1_proj/bn" 1248 | type: "BatchNorm" 1249 | bottom: "conv3_1_1x1_proj" 1250 | top: "conv3_1_1x1_proj" 1251 | batch_norm_param { 1252 | use_global_stats: true 1253 | } 1254 | } 1255 | layer { 1256 | name: "conv3_1_1x1_proj/scale" 1257 | type: "Scale" 1258 | bottom: "conv3_1_1x1_proj" 1259 | top: "conv3_1_1x1_proj" 1260 | scale_param { 1261 | bias_term: true 1262 | } 1263 | } 1264 | layer { 1265 | name: "conv3_1" 1266 | type: "Eltwise" 1267 | bottom: "conv3_1_1x1_proj" 1268 | bottom: "conv3_1_1x1_increase" 1269 | top: "conv3_1" 1270 | eltwise_param { 1271 | operation: SUM 1272 | } 1273 | } 1274 | layer { 1275 | name: "conv3_1/relu" 1276 | type: "ReLU" 1277 | bottom: "conv3_1" 1278 | top: "conv3_1" 1279 | } 1280 | layer { 1281 | name: "conv3_2_1x1_reduce" 1282 | type: "Convolution" 1283 | bottom: "conv3_1" 1284 | top: "conv3_2_1x1_reduce" 1285 | convolution_param { 1286 | num_output: 128 1287 | bias_term: false 1288 | pad: 0 1289 | kernel_size: 1 1290 | stride: 1 1291 | } 1292 | } 1293 | layer { 1294 | name: "conv3_2_1x1_reduce/bn" 1295 | type: "BatchNorm" 1296 | bottom: "conv3_2_1x1_reduce" 1297 | top: "conv3_2_1x1_reduce" 1298 | batch_norm_param { 1299 | use_global_stats: true 1300 | } 1301 | } 1302 | layer { 1303 | name: "conv3_2_1x1_reduce/scale" 1304 | type: "Scale" 1305 | bottom: "conv3_2_1x1_reduce" 1306 | top: "conv3_2_1x1_reduce" 1307 | scale_param { 1308 | bias_term: true 1309 | } 1310 | } 1311 | layer { 1312 | name: "conv3_2_1x1_reduce/relu" 1313 | type: "ReLU" 1314 | bottom: "conv3_2_1x1_reduce" 1315 | top: "conv3_2_1x1_reduce" 1316 | } 1317 | layer { 1318 | name: "conv3_2_3x3" 1319 | type: "Convolution" 1320 | bottom: "conv3_2_1x1_reduce" 1321 | top: "conv3_2_3x3" 1322 | convolution_param { 1323 | num_output: 128 1324 | bias_term: false 1325 | pad: 1 1326 | kernel_size: 3 1327 | stride: 1 1328 | } 1329 | } 1330 | layer { 1331 | name: "conv3_2_3x3/bn" 1332 | type: "BatchNorm" 1333 | bottom: "conv3_2_3x3" 1334 | top: "conv3_2_3x3" 1335 | batch_norm_param { 1336 | use_global_stats: true 1337 | } 1338 | } 1339 | layer { 1340 | name: "conv3_2_3x3/scale" 1341 | type: "Scale" 1342 | bottom: "conv3_2_3x3" 1343 | top: "conv3_2_3x3" 1344 | scale_param { 1345 | bias_term: true 1346 | } 1347 | } 1348 | layer { 1349 | name: "conv3_2_3x3/relu" 1350 | type: "ReLU" 1351 | bottom: "conv3_2_3x3" 1352 | top: "conv3_2_3x3" 1353 | } 1354 | layer { 1355 | name: "conv3_2_1x1_increase" 1356 | type: "Convolution" 1357 | bottom: "conv3_2_3x3" 1358 | top: "conv3_2_1x1_increase" 1359 | convolution_param { 1360 | num_output: 512 1361 | bias_term: false 1362 | pad: 0 1363 | kernel_size: 1 1364 | stride: 1 1365 | } 1366 | } 1367 | layer { 1368 | name: "conv3_2_1x1_increase/bn" 1369 | type: "BatchNorm" 1370 | bottom: "conv3_2_1x1_increase" 1371 | top: "conv3_2_1x1_increase" 1372 | batch_norm_param { 1373 | use_global_stats: true 1374 | } 1375 | } 1376 | layer { 1377 | name: "conv3_2_1x1_increase/scale" 1378 | type: "Scale" 1379 | bottom: "conv3_2_1x1_increase" 1380 | top: "conv3_2_1x1_increase" 1381 | scale_param { 1382 | bias_term: true 1383 | } 1384 | } 1385 | layer { 1386 | name: "conv3_2" 1387 | type: "Eltwise" 1388 | bottom: "conv3_1" 1389 | bottom: "conv3_2_1x1_increase" 1390 | top: "conv3_2" 1391 | eltwise_param { 1392 | operation: SUM 1393 | } 1394 | } 1395 | layer { 1396 | name: "conv3_2/relu" 1397 | type: "ReLU" 1398 | bottom: "conv3_2" 1399 | top: "conv3_2" 1400 | } 1401 | layer { 1402 | name: "conv3_3_1x1_reduce" 1403 | type: "Convolution" 1404 | bottom: "conv3_2" 1405 | top: "conv3_3_1x1_reduce" 1406 | convolution_param { 1407 | num_output: 128 1408 | bias_term: false 1409 | pad: 0 1410 | kernel_size: 1 1411 | stride: 1 1412 | } 1413 | } 1414 | layer { 1415 | name: "conv3_3_1x1_reduce/bn" 1416 | type: "BatchNorm" 1417 | bottom: "conv3_3_1x1_reduce" 1418 | top: "conv3_3_1x1_reduce" 1419 | batch_norm_param { 1420 | use_global_stats: true 1421 | } 1422 | } 1423 | layer { 1424 | name: "conv3_3_1x1_reduce/scale" 1425 | type: "Scale" 1426 | bottom: "conv3_3_1x1_reduce" 1427 | top: "conv3_3_1x1_reduce" 1428 | scale_param { 1429 | bias_term: true 1430 | } 1431 | } 1432 | layer { 1433 | name: "conv3_3_1x1_reduce/relu" 1434 | type: "ReLU" 1435 | bottom: "conv3_3_1x1_reduce" 1436 | top: "conv3_3_1x1_reduce" 1437 | } 1438 | layer { 1439 | name: "conv3_3_3x3" 1440 | type: "Convolution" 1441 | bottom: "conv3_3_1x1_reduce" 1442 | top: "conv3_3_3x3" 1443 | convolution_param { 1444 | num_output: 128 1445 | bias_term: false 1446 | pad: 1 1447 | kernel_size: 3 1448 | stride: 1 1449 | } 1450 | } 1451 | layer { 1452 | name: "conv3_3_3x3/bn" 1453 | type: "BatchNorm" 1454 | bottom: "conv3_3_3x3" 1455 | top: "conv3_3_3x3" 1456 | batch_norm_param { 1457 | use_global_stats: true 1458 | } 1459 | } 1460 | layer { 1461 | name: "conv3_3_3x3/scale" 1462 | type: "Scale" 1463 | bottom: "conv3_3_3x3" 1464 | top: "conv3_3_3x3" 1465 | scale_param { 1466 | bias_term: true 1467 | } 1468 | } 1469 | layer { 1470 | name: "conv3_3_3x3/relu" 1471 | type: "ReLU" 1472 | bottom: "conv3_3_3x3" 1473 | top: "conv3_3_3x3" 1474 | } 1475 | layer { 1476 | name: "conv3_3_1x1_increase" 1477 | type: "Convolution" 1478 | bottom: "conv3_3_3x3" 1479 | top: "conv3_3_1x1_increase" 1480 | convolution_param { 1481 | num_output: 512 1482 | bias_term: false 1483 | pad: 0 1484 | kernel_size: 1 1485 | stride: 1 1486 | } 1487 | } 1488 | layer { 1489 | name: "conv3_3_1x1_increase/bn" 1490 | type: "BatchNorm" 1491 | bottom: "conv3_3_1x1_increase" 1492 | top: "conv3_3_1x1_increase" 1493 | batch_norm_param { 1494 | use_global_stats: true 1495 | } 1496 | } 1497 | layer { 1498 | name: "conv3_3_1x1_increase/scale" 1499 | type: "Scale" 1500 | bottom: "conv3_3_1x1_increase" 1501 | top: "conv3_3_1x1_increase" 1502 | scale_param { 1503 | bias_term: true 1504 | } 1505 | } 1506 | layer { 1507 | name: "conv3_3" 1508 | type: "Eltwise" 1509 | bottom: "conv3_2" 1510 | bottom: "conv3_3_1x1_increase" 1511 | top: "conv3_3" 1512 | eltwise_param { 1513 | operation: SUM 1514 | } 1515 | } 1516 | layer { 1517 | name: "conv3_3/relu" 1518 | type: "ReLU" 1519 | bottom: "conv3_3" 1520 | top: "conv3_3" 1521 | } 1522 | layer { 1523 | name: "conv3_4_1x1_reduce" 1524 | type: "Convolution" 1525 | bottom: "conv3_3" 1526 | top: "conv3_4_1x1_reduce" 1527 | convolution_param { 1528 | num_output: 128 1529 | bias_term: false 1530 | pad: 0 1531 | kernel_size: 1 1532 | stride: 1 1533 | } 1534 | } 1535 | layer { 1536 | name: "conv3_4_1x1_reduce/bn" 1537 | type: "BatchNorm" 1538 | bottom: "conv3_4_1x1_reduce" 1539 | top: "conv3_4_1x1_reduce" 1540 | batch_norm_param { 1541 | use_global_stats: true 1542 | } 1543 | } 1544 | layer { 1545 | name: "conv3_4_1x1_reduce/scale" 1546 | type: "Scale" 1547 | bottom: "conv3_4_1x1_reduce" 1548 | top: "conv3_4_1x1_reduce" 1549 | scale_param { 1550 | bias_term: true 1551 | } 1552 | } 1553 | layer { 1554 | name: "conv3_4_1x1_reduce/relu" 1555 | type: "ReLU" 1556 | bottom: "conv3_4_1x1_reduce" 1557 | top: "conv3_4_1x1_reduce" 1558 | } 1559 | layer { 1560 | name: "conv3_4_3x3" 1561 | type: "Convolution" 1562 | bottom: "conv3_4_1x1_reduce" 1563 | top: "conv3_4_3x3" 1564 | convolution_param { 1565 | num_output: 128 1566 | bias_term: false 1567 | pad: 1 1568 | kernel_size: 3 1569 | stride: 1 1570 | } 1571 | } 1572 | layer { 1573 | name: "conv3_4_3x3/bn" 1574 | type: "BatchNorm" 1575 | bottom: "conv3_4_3x3" 1576 | top: "conv3_4_3x3" 1577 | batch_norm_param { 1578 | use_global_stats: true 1579 | } 1580 | } 1581 | layer { 1582 | name: "conv3_4_3x3/scale" 1583 | type: "Scale" 1584 | bottom: "conv3_4_3x3" 1585 | top: "conv3_4_3x3" 1586 | scale_param { 1587 | bias_term: true 1588 | } 1589 | } 1590 | layer { 1591 | name: "conv3_4_3x3/relu" 1592 | type: "ReLU" 1593 | bottom: "conv3_4_3x3" 1594 | top: "conv3_4_3x3" 1595 | } 1596 | layer { 1597 | name: "conv3_4_1x1_increase" 1598 | type: "Convolution" 1599 | bottom: "conv3_4_3x3" 1600 | top: "conv3_4_1x1_increase" 1601 | convolution_param { 1602 | num_output: 512 1603 | bias_term: false 1604 | pad: 0 1605 | kernel_size: 1 1606 | stride: 1 1607 | } 1608 | } 1609 | layer { 1610 | name: "conv3_4_1x1_increase/bn" 1611 | type: "BatchNorm" 1612 | bottom: "conv3_4_1x1_increase" 1613 | top: "conv3_4_1x1_increase" 1614 | batch_norm_param { 1615 | use_global_stats: true 1616 | } 1617 | } 1618 | layer { 1619 | name: "conv3_4_1x1_increase/scale" 1620 | type: "Scale" 1621 | bottom: "conv3_4_1x1_increase" 1622 | top: "conv3_4_1x1_increase" 1623 | scale_param { 1624 | bias_term: true 1625 | } 1626 | } 1627 | layer { 1628 | name: "conv3_4" 1629 | type: "Eltwise" 1630 | bottom: "conv3_3" 1631 | bottom: "conv3_4_1x1_increase" 1632 | top: "conv3_4" 1633 | eltwise_param { 1634 | operation: SUM 1635 | } 1636 | } 1637 | layer { 1638 | name: "conv3_4/relu" 1639 | type: "ReLU" 1640 | bottom: "conv3_4" 1641 | top: "conv3_4" 1642 | } 1643 | layer { 1644 | name: "conv3_5_1x1_reduce" 1645 | type: "Convolution" 1646 | bottom: "conv3_4" 1647 | top: "conv3_5_1x1_reduce" 1648 | convolution_param { 1649 | num_output: 128 1650 | bias_term: false 1651 | pad: 0 1652 | kernel_size: 1 1653 | stride: 1 1654 | } 1655 | } 1656 | layer { 1657 | name: "conv3_5_1x1_reduce/bn" 1658 | type: "BatchNorm" 1659 | bottom: "conv3_5_1x1_reduce" 1660 | top: "conv3_5_1x1_reduce" 1661 | batch_norm_param { 1662 | use_global_stats: true 1663 | } 1664 | } 1665 | layer { 1666 | name: "conv3_5_1x1_reduce/scale" 1667 | type: "Scale" 1668 | bottom: "conv3_5_1x1_reduce" 1669 | top: "conv3_5_1x1_reduce" 1670 | scale_param { 1671 | bias_term: true 1672 | } 1673 | } 1674 | layer { 1675 | name: "conv3_5_1x1_reduce/relu" 1676 | type: "ReLU" 1677 | bottom: "conv3_5_1x1_reduce" 1678 | top: "conv3_5_1x1_reduce" 1679 | } 1680 | layer { 1681 | name: "conv3_5_3x3" 1682 | type: "Convolution" 1683 | bottom: "conv3_5_1x1_reduce" 1684 | top: "conv3_5_3x3" 1685 | convolution_param { 1686 | num_output: 128 1687 | bias_term: false 1688 | pad: 1 1689 | kernel_size: 3 1690 | stride: 1 1691 | } 1692 | } 1693 | layer { 1694 | name: "conv3_5_3x3/bn" 1695 | type: "BatchNorm" 1696 | bottom: "conv3_5_3x3" 1697 | top: "conv3_5_3x3" 1698 | batch_norm_param { 1699 | use_global_stats: true 1700 | } 1701 | } 1702 | layer { 1703 | name: "conv3_5_3x3/scale" 1704 | type: "Scale" 1705 | bottom: "conv3_5_3x3" 1706 | top: "conv3_5_3x3" 1707 | scale_param { 1708 | bias_term: true 1709 | } 1710 | } 1711 | layer { 1712 | name: "conv3_5_3x3/relu" 1713 | type: "ReLU" 1714 | bottom: "conv3_5_3x3" 1715 | top: "conv3_5_3x3" 1716 | } 1717 | layer { 1718 | name: "conv3_5_1x1_increase" 1719 | type: "Convolution" 1720 | bottom: "conv3_5_3x3" 1721 | top: "conv3_5_1x1_increase" 1722 | convolution_param { 1723 | num_output: 512 1724 | bias_term: false 1725 | pad: 0 1726 | kernel_size: 1 1727 | stride: 1 1728 | } 1729 | } 1730 | layer { 1731 | name: "conv3_5_1x1_increase/bn" 1732 | type: "BatchNorm" 1733 | bottom: "conv3_5_1x1_increase" 1734 | top: "conv3_5_1x1_increase" 1735 | batch_norm_param { 1736 | use_global_stats: true 1737 | } 1738 | } 1739 | layer { 1740 | name: "conv3_5_1x1_increase/scale" 1741 | type: "Scale" 1742 | bottom: "conv3_5_1x1_increase" 1743 | top: "conv3_5_1x1_increase" 1744 | scale_param { 1745 | bias_term: true 1746 | } 1747 | } 1748 | layer { 1749 | name: "conv3_5" 1750 | type: "Eltwise" 1751 | bottom: "conv3_4" 1752 | bottom: "conv3_5_1x1_increase" 1753 | top: "conv3_5" 1754 | eltwise_param { 1755 | operation: SUM 1756 | } 1757 | } 1758 | layer { 1759 | name: "conv3_5/relu" 1760 | type: "ReLU" 1761 | bottom: "conv3_5" 1762 | top: "conv3_5" 1763 | } 1764 | layer { 1765 | name: "conv3_6_1x1_reduce" 1766 | type: "Convolution" 1767 | bottom: "conv3_5" 1768 | top: "conv3_6_1x1_reduce" 1769 | convolution_param { 1770 | num_output: 128 1771 | bias_term: false 1772 | pad: 0 1773 | kernel_size: 1 1774 | stride: 1 1775 | } 1776 | } 1777 | layer { 1778 | name: "conv3_6_1x1_reduce/bn" 1779 | type: "BatchNorm" 1780 | bottom: "conv3_6_1x1_reduce" 1781 | top: "conv3_6_1x1_reduce" 1782 | batch_norm_param { 1783 | use_global_stats: true 1784 | } 1785 | } 1786 | layer { 1787 | name: "conv3_6_1x1_reduce/scale" 1788 | type: "Scale" 1789 | bottom: "conv3_6_1x1_reduce" 1790 | top: "conv3_6_1x1_reduce" 1791 | scale_param { 1792 | bias_term: true 1793 | } 1794 | } 1795 | layer { 1796 | name: "conv3_6_1x1_reduce/relu" 1797 | type: "ReLU" 1798 | bottom: "conv3_6_1x1_reduce" 1799 | top: "conv3_6_1x1_reduce" 1800 | } 1801 | layer { 1802 | name: "conv3_6_3x3" 1803 | type: "Convolution" 1804 | bottom: "conv3_6_1x1_reduce" 1805 | top: "conv3_6_3x3" 1806 | convolution_param { 1807 | num_output: 128 1808 | bias_term: false 1809 | pad: 1 1810 | kernel_size: 3 1811 | stride: 1 1812 | } 1813 | } 1814 | layer { 1815 | name: "conv3_6_3x3/bn" 1816 | type: "BatchNorm" 1817 | bottom: "conv3_6_3x3" 1818 | top: "conv3_6_3x3" 1819 | batch_norm_param { 1820 | use_global_stats: true 1821 | } 1822 | } 1823 | layer { 1824 | name: "conv3_6_3x3/scale" 1825 | type: "Scale" 1826 | bottom: "conv3_6_3x3" 1827 | top: "conv3_6_3x3" 1828 | scale_param { 1829 | bias_term: true 1830 | } 1831 | } 1832 | layer { 1833 | name: "conv3_6_3x3/relu" 1834 | type: "ReLU" 1835 | bottom: "conv3_6_3x3" 1836 | top: "conv3_6_3x3" 1837 | } 1838 | layer { 1839 | name: "conv3_6_1x1_increase" 1840 | type: "Convolution" 1841 | bottom: "conv3_6_3x3" 1842 | top: "conv3_6_1x1_increase" 1843 | convolution_param { 1844 | num_output: 512 1845 | bias_term: false 1846 | pad: 0 1847 | kernel_size: 1 1848 | stride: 1 1849 | } 1850 | } 1851 | layer { 1852 | name: "conv3_6_1x1_increase/bn" 1853 | type: "BatchNorm" 1854 | bottom: "conv3_6_1x1_increase" 1855 | top: "conv3_6_1x1_increase" 1856 | batch_norm_param { 1857 | use_global_stats: true 1858 | } 1859 | } 1860 | layer { 1861 | name: "conv3_6_1x1_increase/scale" 1862 | type: "Scale" 1863 | bottom: "conv3_6_1x1_increase" 1864 | top: "conv3_6_1x1_increase" 1865 | scale_param { 1866 | bias_term: true 1867 | } 1868 | } 1869 | layer { 1870 | name: "conv3_6" 1871 | type: "Eltwise" 1872 | bottom: "conv3_5" 1873 | bottom: "conv3_6_1x1_increase" 1874 | top: "conv3_6" 1875 | eltwise_param { 1876 | operation: SUM 1877 | } 1878 | } 1879 | layer { 1880 | name: "conv3_6/relu" 1881 | type: "ReLU" 1882 | bottom: "conv3_6" 1883 | top: "conv3_6" 1884 | } 1885 | layer { 1886 | name: "conv3_7_1x1_reduce" 1887 | type: "Convolution" 1888 | bottom: "conv3_6" 1889 | top: "conv3_7_1x1_reduce" 1890 | convolution_param { 1891 | num_output: 128 1892 | bias_term: false 1893 | pad: 0 1894 | kernel_size: 1 1895 | stride: 1 1896 | } 1897 | } 1898 | layer { 1899 | name: "conv3_7_1x1_reduce/bn" 1900 | type: "BatchNorm" 1901 | bottom: "conv3_7_1x1_reduce" 1902 | top: "conv3_7_1x1_reduce" 1903 | batch_norm_param { 1904 | use_global_stats: true 1905 | } 1906 | } 1907 | layer { 1908 | name: "conv3_7_1x1_reduce/scale" 1909 | type: "Scale" 1910 | bottom: "conv3_7_1x1_reduce" 1911 | top: "conv3_7_1x1_reduce" 1912 | scale_param { 1913 | bias_term: true 1914 | } 1915 | } 1916 | layer { 1917 | name: "conv3_7_1x1_reduce/relu" 1918 | type: "ReLU" 1919 | bottom: "conv3_7_1x1_reduce" 1920 | top: "conv3_7_1x1_reduce" 1921 | } 1922 | layer { 1923 | name: "conv3_7_3x3" 1924 | type: "Convolution" 1925 | bottom: "conv3_7_1x1_reduce" 1926 | top: "conv3_7_3x3" 1927 | convolution_param { 1928 | num_output: 128 1929 | bias_term: false 1930 | pad: 1 1931 | kernel_size: 3 1932 | stride: 1 1933 | } 1934 | } 1935 | layer { 1936 | name: "conv3_7_3x3/bn" 1937 | type: "BatchNorm" 1938 | bottom: "conv3_7_3x3" 1939 | top: "conv3_7_3x3" 1940 | batch_norm_param { 1941 | use_global_stats: true 1942 | } 1943 | } 1944 | layer { 1945 | name: "conv3_7_3x3/scale" 1946 | type: "Scale" 1947 | bottom: "conv3_7_3x3" 1948 | top: "conv3_7_3x3" 1949 | scale_param { 1950 | bias_term: true 1951 | } 1952 | } 1953 | layer { 1954 | name: "conv3_7_3x3/relu" 1955 | type: "ReLU" 1956 | bottom: "conv3_7_3x3" 1957 | top: "conv3_7_3x3" 1958 | } 1959 | layer { 1960 | name: "conv3_7_1x1_increase" 1961 | type: "Convolution" 1962 | bottom: "conv3_7_3x3" 1963 | top: "conv3_7_1x1_increase" 1964 | convolution_param { 1965 | num_output: 512 1966 | bias_term: false 1967 | pad: 0 1968 | kernel_size: 1 1969 | stride: 1 1970 | } 1971 | } 1972 | layer { 1973 | name: "conv3_7_1x1_increase/bn" 1974 | type: "BatchNorm" 1975 | bottom: "conv3_7_1x1_increase" 1976 | top: "conv3_7_1x1_increase" 1977 | batch_norm_param { 1978 | use_global_stats: true 1979 | } 1980 | } 1981 | layer { 1982 | name: "conv3_7_1x1_increase/scale" 1983 | type: "Scale" 1984 | bottom: "conv3_7_1x1_increase" 1985 | top: "conv3_7_1x1_increase" 1986 | scale_param { 1987 | bias_term: true 1988 | } 1989 | } 1990 | layer { 1991 | name: "conv3_7" 1992 | type: "Eltwise" 1993 | bottom: "conv3_6" 1994 | bottom: "conv3_7_1x1_increase" 1995 | top: "conv3_7" 1996 | eltwise_param { 1997 | operation: SUM 1998 | } 1999 | } 2000 | layer { 2001 | name: "conv3_7/relu" 2002 | type: "ReLU" 2003 | bottom: "conv3_7" 2004 | top: "conv3_7" 2005 | } 2006 | layer { 2007 | name: "conv3_8_1x1_reduce" 2008 | type: "Convolution" 2009 | bottom: "conv3_7" 2010 | top: "conv3_8_1x1_reduce" 2011 | convolution_param { 2012 | num_output: 128 2013 | bias_term: false 2014 | pad: 0 2015 | kernel_size: 1 2016 | stride: 1 2017 | } 2018 | } 2019 | layer { 2020 | name: "conv3_8_1x1_reduce/bn" 2021 | type: "BatchNorm" 2022 | bottom: "conv3_8_1x1_reduce" 2023 | top: "conv3_8_1x1_reduce" 2024 | batch_norm_param { 2025 | use_global_stats: true 2026 | } 2027 | } 2028 | layer { 2029 | name: "conv3_8_1x1_reduce/scale" 2030 | type: "Scale" 2031 | bottom: "conv3_8_1x1_reduce" 2032 | top: "conv3_8_1x1_reduce" 2033 | scale_param { 2034 | bias_term: true 2035 | } 2036 | } 2037 | layer { 2038 | name: "conv3_8_1x1_reduce/relu" 2039 | type: "ReLU" 2040 | bottom: "conv3_8_1x1_reduce" 2041 | top: "conv3_8_1x1_reduce" 2042 | } 2043 | layer { 2044 | name: "conv3_8_3x3" 2045 | type: "Convolution" 2046 | bottom: "conv3_8_1x1_reduce" 2047 | top: "conv3_8_3x3" 2048 | convolution_param { 2049 | num_output: 128 2050 | bias_term: false 2051 | pad: 1 2052 | kernel_size: 3 2053 | stride: 1 2054 | } 2055 | } 2056 | layer { 2057 | name: "conv3_8_3x3/bn" 2058 | type: "BatchNorm" 2059 | bottom: "conv3_8_3x3" 2060 | top: "conv3_8_3x3" 2061 | batch_norm_param { 2062 | use_global_stats: true 2063 | } 2064 | } 2065 | layer { 2066 | name: "conv3_8_3x3/scale" 2067 | type: "Scale" 2068 | bottom: "conv3_8_3x3" 2069 | top: "conv3_8_3x3" 2070 | scale_param { 2071 | bias_term: true 2072 | } 2073 | } 2074 | layer { 2075 | name: "conv3_8_3x3/relu" 2076 | type: "ReLU" 2077 | bottom: "conv3_8_3x3" 2078 | top: "conv3_8_3x3" 2079 | } 2080 | layer { 2081 | name: "conv3_8_1x1_increase" 2082 | type: "Convolution" 2083 | bottom: "conv3_8_3x3" 2084 | top: "conv3_8_1x1_increase" 2085 | convolution_param { 2086 | num_output: 512 2087 | bias_term: false 2088 | pad: 0 2089 | kernel_size: 1 2090 | stride: 1 2091 | } 2092 | } 2093 | layer { 2094 | name: "conv3_8_1x1_increase/bn" 2095 | type: "BatchNorm" 2096 | bottom: "conv3_8_1x1_increase" 2097 | top: "conv3_8_1x1_increase" 2098 | batch_norm_param { 2099 | use_global_stats: true 2100 | } 2101 | } 2102 | layer { 2103 | name: "conv3_8_1x1_increase/scale" 2104 | type: "Scale" 2105 | bottom: "conv3_8_1x1_increase" 2106 | top: "conv3_8_1x1_increase" 2107 | scale_param { 2108 | bias_term: true 2109 | } 2110 | } 2111 | layer { 2112 | name: "conv3_8" 2113 | type: "Eltwise" 2114 | bottom: "conv3_7" 2115 | bottom: "conv3_8_1x1_increase" 2116 | top: "conv3_8" 2117 | eltwise_param { 2118 | operation: SUM 2119 | } 2120 | } 2121 | layer { 2122 | name: "conv3_8/relu" 2123 | type: "ReLU" 2124 | bottom: "conv3_8" 2125 | top: "conv3_8" 2126 | } 2127 | layer { 2128 | name: "conv3_9_1x1_reduce" 2129 | type: "Convolution" 2130 | bottom: "conv3_8" 2131 | top: "conv3_9_1x1_reduce" 2132 | convolution_param { 2133 | num_output: 128 2134 | bias_term: false 2135 | pad: 0 2136 | kernel_size: 1 2137 | stride: 1 2138 | } 2139 | } 2140 | layer { 2141 | name: "conv3_9_1x1_reduce/bn" 2142 | type: "BatchNorm" 2143 | bottom: "conv3_9_1x1_reduce" 2144 | top: "conv3_9_1x1_reduce" 2145 | batch_norm_param { 2146 | use_global_stats: true 2147 | } 2148 | } 2149 | layer { 2150 | name: "conv3_9_1x1_reduce/scale" 2151 | type: "Scale" 2152 | bottom: "conv3_9_1x1_reduce" 2153 | top: "conv3_9_1x1_reduce" 2154 | scale_param { 2155 | bias_term: true 2156 | } 2157 | } 2158 | layer { 2159 | name: "conv3_9_1x1_reduce/relu" 2160 | type: "ReLU" 2161 | bottom: "conv3_9_1x1_reduce" 2162 | top: "conv3_9_1x1_reduce" 2163 | } 2164 | layer { 2165 | name: "conv3_9_3x3" 2166 | type: "Convolution" 2167 | bottom: "conv3_9_1x1_reduce" 2168 | top: "conv3_9_3x3" 2169 | convolution_param { 2170 | num_output: 128 2171 | bias_term: false 2172 | pad: 1 2173 | kernel_size: 3 2174 | stride: 1 2175 | } 2176 | } 2177 | layer { 2178 | name: "conv3_9_3x3/bn" 2179 | type: "BatchNorm" 2180 | bottom: "conv3_9_3x3" 2181 | top: "conv3_9_3x3" 2182 | batch_norm_param { 2183 | use_global_stats: true 2184 | } 2185 | } 2186 | layer { 2187 | name: "conv3_9_3x3/scale" 2188 | type: "Scale" 2189 | bottom: "conv3_9_3x3" 2190 | top: "conv3_9_3x3" 2191 | scale_param { 2192 | bias_term: true 2193 | } 2194 | } 2195 | layer { 2196 | name: "conv3_9_3x3/relu" 2197 | type: "ReLU" 2198 | bottom: "conv3_9_3x3" 2199 | top: "conv3_9_3x3" 2200 | } 2201 | layer { 2202 | name: "conv3_9_1x1_increase" 2203 | type: "Convolution" 2204 | bottom: "conv3_9_3x3" 2205 | top: "conv3_9_1x1_increase" 2206 | convolution_param { 2207 | num_output: 512 2208 | bias_term: false 2209 | pad: 0 2210 | kernel_size: 1 2211 | stride: 1 2212 | } 2213 | } 2214 | layer { 2215 | name: "conv3_9_1x1_increase/bn" 2216 | type: "BatchNorm" 2217 | bottom: "conv3_9_1x1_increase" 2218 | top: "conv3_9_1x1_increase" 2219 | batch_norm_param { 2220 | use_global_stats: true 2221 | } 2222 | } 2223 | layer { 2224 | name: "conv3_9_1x1_increase/scale" 2225 | type: "Scale" 2226 | bottom: "conv3_9_1x1_increase" 2227 | top: "conv3_9_1x1_increase" 2228 | scale_param { 2229 | bias_term: true 2230 | } 2231 | } 2232 | layer { 2233 | name: "conv3_9" 2234 | type: "Eltwise" 2235 | bottom: "conv3_8" 2236 | bottom: "conv3_9_1x1_increase" 2237 | top: "conv3_9" 2238 | eltwise_param { 2239 | operation: SUM 2240 | } 2241 | } 2242 | layer { 2243 | name: "conv3_9/relu" 2244 | type: "ReLU" 2245 | bottom: "conv3_9" 2246 | top: "conv3_9" 2247 | } 2248 | layer { 2249 | name: "conv3_10_1x1_reduce" 2250 | type: "Convolution" 2251 | bottom: "conv3_9" 2252 | top: "conv3_10_1x1_reduce" 2253 | convolution_param { 2254 | num_output: 128 2255 | bias_term: false 2256 | pad: 0 2257 | kernel_size: 1 2258 | stride: 1 2259 | } 2260 | } 2261 | layer { 2262 | name: "conv3_10_1x1_reduce/bn" 2263 | type: "BatchNorm" 2264 | bottom: "conv3_10_1x1_reduce" 2265 | top: "conv3_10_1x1_reduce" 2266 | batch_norm_param { 2267 | use_global_stats: true 2268 | } 2269 | } 2270 | layer { 2271 | name: "conv3_10_1x1_reduce/scale" 2272 | type: "Scale" 2273 | bottom: "conv3_10_1x1_reduce" 2274 | top: "conv3_10_1x1_reduce" 2275 | scale_param { 2276 | bias_term: true 2277 | } 2278 | } 2279 | layer { 2280 | name: "conv3_10_1x1_reduce/relu" 2281 | type: "ReLU" 2282 | bottom: "conv3_10_1x1_reduce" 2283 | top: "conv3_10_1x1_reduce" 2284 | } 2285 | layer { 2286 | name: "conv3_10_3x3" 2287 | type: "Convolution" 2288 | bottom: "conv3_10_1x1_reduce" 2289 | top: "conv3_10_3x3" 2290 | convolution_param { 2291 | num_output: 128 2292 | bias_term: false 2293 | pad: 1 2294 | kernel_size: 3 2295 | stride: 1 2296 | } 2297 | } 2298 | layer { 2299 | name: "conv3_10_3x3/bn" 2300 | type: "BatchNorm" 2301 | bottom: "conv3_10_3x3" 2302 | top: "conv3_10_3x3" 2303 | batch_norm_param { 2304 | use_global_stats: true 2305 | } 2306 | } 2307 | layer { 2308 | name: "conv3_10_3x3/scale" 2309 | type: "Scale" 2310 | bottom: "conv3_10_3x3" 2311 | top: "conv3_10_3x3" 2312 | scale_param { 2313 | bias_term: true 2314 | } 2315 | } 2316 | layer { 2317 | name: "conv3_10_3x3/relu" 2318 | type: "ReLU" 2319 | bottom: "conv3_10_3x3" 2320 | top: "conv3_10_3x3" 2321 | } 2322 | layer { 2323 | name: "conv3_10_1x1_increase" 2324 | type: "Convolution" 2325 | bottom: "conv3_10_3x3" 2326 | top: "conv3_10_1x1_increase" 2327 | convolution_param { 2328 | num_output: 512 2329 | bias_term: false 2330 | pad: 0 2331 | kernel_size: 1 2332 | stride: 1 2333 | } 2334 | } 2335 | layer { 2336 | name: "conv3_10_1x1_increase/bn" 2337 | type: "BatchNorm" 2338 | bottom: "conv3_10_1x1_increase" 2339 | top: "conv3_10_1x1_increase" 2340 | batch_norm_param { 2341 | use_global_stats: true 2342 | } 2343 | } 2344 | layer { 2345 | name: "conv3_10_1x1_increase/scale" 2346 | type: "Scale" 2347 | bottom: "conv3_10_1x1_increase" 2348 | top: "conv3_10_1x1_increase" 2349 | scale_param { 2350 | bias_term: true 2351 | } 2352 | } 2353 | layer { 2354 | name: "conv3_10" 2355 | type: "Eltwise" 2356 | bottom: "conv3_9" 2357 | bottom: "conv3_10_1x1_increase" 2358 | top: "conv3_10" 2359 | eltwise_param { 2360 | operation: SUM 2361 | } 2362 | } 2363 | layer { 2364 | name: "conv3_10/relu" 2365 | type: "ReLU" 2366 | bottom: "conv3_10" 2367 | top: "conv3_10" 2368 | } 2369 | layer { 2370 | name: "conv3_11_1x1_reduce" 2371 | type: "Convolution" 2372 | bottom: "conv3_10" 2373 | top: "conv3_11_1x1_reduce" 2374 | convolution_param { 2375 | num_output: 128 2376 | bias_term: false 2377 | pad: 0 2378 | kernel_size: 1 2379 | stride: 1 2380 | } 2381 | } 2382 | layer { 2383 | name: "conv3_11_1x1_reduce/bn" 2384 | type: "BatchNorm" 2385 | bottom: "conv3_11_1x1_reduce" 2386 | top: "conv3_11_1x1_reduce" 2387 | batch_norm_param { 2388 | use_global_stats: true 2389 | } 2390 | } 2391 | layer { 2392 | name: "conv3_11_1x1_reduce/scale" 2393 | type: "Scale" 2394 | bottom: "conv3_11_1x1_reduce" 2395 | top: "conv3_11_1x1_reduce" 2396 | scale_param { 2397 | bias_term: true 2398 | } 2399 | } 2400 | layer { 2401 | name: "conv3_11_1x1_reduce/relu" 2402 | type: "ReLU" 2403 | bottom: "conv3_11_1x1_reduce" 2404 | top: "conv3_11_1x1_reduce" 2405 | } 2406 | layer { 2407 | name: "conv3_11_3x3" 2408 | type: "Convolution" 2409 | bottom: "conv3_11_1x1_reduce" 2410 | top: "conv3_11_3x3" 2411 | convolution_param { 2412 | num_output: 128 2413 | bias_term: false 2414 | pad: 1 2415 | kernel_size: 3 2416 | stride: 1 2417 | } 2418 | } 2419 | layer { 2420 | name: "conv3_11_3x3/bn" 2421 | type: "BatchNorm" 2422 | bottom: "conv3_11_3x3" 2423 | top: "conv3_11_3x3" 2424 | batch_norm_param { 2425 | use_global_stats: true 2426 | } 2427 | } 2428 | layer { 2429 | name: "conv3_11_3x3/scale" 2430 | type: "Scale" 2431 | bottom: "conv3_11_3x3" 2432 | top: "conv3_11_3x3" 2433 | scale_param { 2434 | bias_term: true 2435 | } 2436 | } 2437 | layer { 2438 | name: "conv3_11_3x3/relu" 2439 | type: "ReLU" 2440 | bottom: "conv3_11_3x3" 2441 | top: "conv3_11_3x3" 2442 | } 2443 | layer { 2444 | name: "conv3_11_1x1_increase" 2445 | type: "Convolution" 2446 | bottom: "conv3_11_3x3" 2447 | top: "conv3_11_1x1_increase" 2448 | convolution_param { 2449 | num_output: 512 2450 | bias_term: false 2451 | pad: 0 2452 | kernel_size: 1 2453 | stride: 1 2454 | } 2455 | } 2456 | layer { 2457 | name: "conv3_11_1x1_increase/bn" 2458 | type: "BatchNorm" 2459 | bottom: "conv3_11_1x1_increase" 2460 | top: "conv3_11_1x1_increase" 2461 | batch_norm_param { 2462 | use_global_stats: true 2463 | } 2464 | } 2465 | layer { 2466 | name: "conv3_11_1x1_increase/scale" 2467 | type: "Scale" 2468 | bottom: "conv3_11_1x1_increase" 2469 | top: "conv3_11_1x1_increase" 2470 | scale_param { 2471 | bias_term: true 2472 | } 2473 | } 2474 | layer { 2475 | name: "conv3_11" 2476 | type: "Eltwise" 2477 | bottom: "conv3_10" 2478 | bottom: "conv3_11_1x1_increase" 2479 | top: "conv3_11" 2480 | eltwise_param { 2481 | operation: SUM 2482 | } 2483 | } 2484 | layer { 2485 | name: "conv3_11/relu" 2486 | type: "ReLU" 2487 | bottom: "conv3_11" 2488 | top: "conv3_11" 2489 | } 2490 | layer { 2491 | name: "conv3_12_1x1_reduce" 2492 | type: "Convolution" 2493 | bottom: "conv3_11" 2494 | top: "conv3_12_1x1_reduce" 2495 | convolution_param { 2496 | num_output: 128 2497 | bias_term: false 2498 | pad: 0 2499 | kernel_size: 1 2500 | stride: 1 2501 | } 2502 | } 2503 | layer { 2504 | name: "conv3_12_1x1_reduce/bn" 2505 | type: "BatchNorm" 2506 | bottom: "conv3_12_1x1_reduce" 2507 | top: "conv3_12_1x1_reduce" 2508 | batch_norm_param { 2509 | use_global_stats: true 2510 | } 2511 | } 2512 | layer { 2513 | name: "conv3_12_1x1_reduce/scale" 2514 | type: "Scale" 2515 | bottom: "conv3_12_1x1_reduce" 2516 | top: "conv3_12_1x1_reduce" 2517 | scale_param { 2518 | bias_term: true 2519 | } 2520 | } 2521 | layer { 2522 | name: "conv3_12_1x1_reduce/relu" 2523 | type: "ReLU" 2524 | bottom: "conv3_12_1x1_reduce" 2525 | top: "conv3_12_1x1_reduce" 2526 | } 2527 | layer { 2528 | name: "conv3_12_3x3" 2529 | type: "Convolution" 2530 | bottom: "conv3_12_1x1_reduce" 2531 | top: "conv3_12_3x3" 2532 | convolution_param { 2533 | num_output: 128 2534 | bias_term: false 2535 | pad: 1 2536 | kernel_size: 3 2537 | stride: 1 2538 | } 2539 | } 2540 | layer { 2541 | name: "conv3_12_3x3/bn" 2542 | type: "BatchNorm" 2543 | bottom: "conv3_12_3x3" 2544 | top: "conv3_12_3x3" 2545 | batch_norm_param { 2546 | use_global_stats: true 2547 | } 2548 | } 2549 | layer { 2550 | name: "conv3_12_3x3/scale" 2551 | type: "Scale" 2552 | bottom: "conv3_12_3x3" 2553 | top: "conv3_12_3x3" 2554 | scale_param { 2555 | bias_term: true 2556 | } 2557 | } 2558 | layer { 2559 | name: "conv3_12_3x3/relu" 2560 | type: "ReLU" 2561 | bottom: "conv3_12_3x3" 2562 | top: "conv3_12_3x3" 2563 | } 2564 | layer { 2565 | name: "conv3_12_1x1_increase" 2566 | type: "Convolution" 2567 | bottom: "conv3_12_3x3" 2568 | top: "conv3_12_1x1_increase" 2569 | convolution_param { 2570 | num_output: 512 2571 | bias_term: false 2572 | pad: 0 2573 | kernel_size: 1 2574 | stride: 1 2575 | } 2576 | } 2577 | layer { 2578 | name: "conv3_12_1x1_increase/bn" 2579 | type: "BatchNorm" 2580 | bottom: "conv3_12_1x1_increase" 2581 | top: "conv3_12_1x1_increase" 2582 | batch_norm_param { 2583 | use_global_stats: true 2584 | } 2585 | } 2586 | layer { 2587 | name: "conv3_12_1x1_increase/scale" 2588 | type: "Scale" 2589 | bottom: "conv3_12_1x1_increase" 2590 | top: "conv3_12_1x1_increase" 2591 | scale_param { 2592 | bias_term: true 2593 | } 2594 | } 2595 | layer { 2596 | name: "conv3_12" 2597 | type: "Eltwise" 2598 | bottom: "conv3_11" 2599 | bottom: "conv3_12_1x1_increase" 2600 | top: "conv3_12" 2601 | eltwise_param { 2602 | operation: SUM 2603 | } 2604 | } 2605 | layer { 2606 | name: "conv3_12/relu" 2607 | type: "ReLU" 2608 | bottom: "conv3_12" 2609 | top: "conv3_12" 2610 | } 2611 | layer { 2612 | name: "conv4_1_1x1_reduce" 2613 | type: "Convolution" 2614 | bottom: "conv3_12" 2615 | top: "conv4_1_1x1_reduce" 2616 | convolution_param { 2617 | num_output: 256 2618 | bias_term: false 2619 | pad: 0 2620 | kernel_size: 1 2621 | stride: 1 2622 | } 2623 | } 2624 | layer { 2625 | name: "conv4_1_1x1_reduce/bn" 2626 | type: "BatchNorm" 2627 | bottom: "conv4_1_1x1_reduce" 2628 | top: "conv4_1_1x1_reduce" 2629 | batch_norm_param { 2630 | use_global_stats: true 2631 | } 2632 | } 2633 | layer { 2634 | name: "conv4_1_1x1_reduce/scale" 2635 | type: "Scale" 2636 | bottom: "conv4_1_1x1_reduce" 2637 | top: "conv4_1_1x1_reduce" 2638 | scale_param { 2639 | bias_term: true 2640 | } 2641 | } 2642 | layer { 2643 | name: "conv4_1_1x1_reduce/relu" 2644 | type: "ReLU" 2645 | bottom: "conv4_1_1x1_reduce" 2646 | top: "conv4_1_1x1_reduce" 2647 | } 2648 | layer { 2649 | name: "conv4_1_3x3" 2650 | type: "Convolution" 2651 | bottom: "conv4_1_1x1_reduce" 2652 | top: "conv4_1_3x3" 2653 | convolution_param { 2654 | num_output: 256 2655 | bias_term: false 2656 | pad: 1 2657 | kernel_size: 3 2658 | stride: 2 2659 | } 2660 | } 2661 | layer { 2662 | name: "conv4_1_3x3/bn" 2663 | type: "BatchNorm" 2664 | bottom: "conv4_1_3x3" 2665 | top: "conv4_1_3x3" 2666 | batch_norm_param { 2667 | use_global_stats: true 2668 | } 2669 | } 2670 | layer { 2671 | name: "conv4_1_3x3/scale" 2672 | type: "Scale" 2673 | bottom: "conv4_1_3x3" 2674 | top: "conv4_1_3x3" 2675 | scale_param { 2676 | bias_term: true 2677 | } 2678 | } 2679 | layer { 2680 | name: "conv4_1_3x3/relu" 2681 | type: "ReLU" 2682 | bottom: "conv4_1_3x3" 2683 | top: "conv4_1_3x3" 2684 | } 2685 | layer { 2686 | name: "conv4_1_1x1_increase" 2687 | type: "Convolution" 2688 | bottom: "conv4_1_3x3" 2689 | top: "conv4_1_1x1_increase" 2690 | convolution_param { 2691 | num_output: 1024 2692 | bias_term: false 2693 | pad: 0 2694 | kernel_size: 1 2695 | stride: 1 2696 | } 2697 | } 2698 | layer { 2699 | name: "conv4_1_1x1_increase/bn" 2700 | type: "BatchNorm" 2701 | bottom: "conv4_1_1x1_increase" 2702 | top: "conv4_1_1x1_increase" 2703 | batch_norm_param { 2704 | use_global_stats: true 2705 | } 2706 | } 2707 | layer { 2708 | name: "conv4_1_1x1_increase/scale" 2709 | type: "Scale" 2710 | bottom: "conv4_1_1x1_increase" 2711 | top: "conv4_1_1x1_increase" 2712 | scale_param { 2713 | bias_term: true 2714 | } 2715 | } 2716 | layer { 2717 | name: "conv4_1_1x1_proj" 2718 | type: "Convolution" 2719 | bottom: "conv3_12" 2720 | top: "conv4_1_1x1_proj" 2721 | convolution_param { 2722 | num_output: 1024 2723 | bias_term: false 2724 | pad: 0 2725 | kernel_size: 1 2726 | stride: 2 2727 | } 2728 | } 2729 | layer { 2730 | name: "conv4_1_1x1_proj/bn" 2731 | type: "BatchNorm" 2732 | bottom: "conv4_1_1x1_proj" 2733 | top: "conv4_1_1x1_proj" 2734 | batch_norm_param { 2735 | use_global_stats: true 2736 | } 2737 | } 2738 | layer { 2739 | name: "conv4_1_1x1_proj/scale" 2740 | type: "Scale" 2741 | bottom: "conv4_1_1x1_proj" 2742 | top: "conv4_1_1x1_proj" 2743 | scale_param { 2744 | bias_term: true 2745 | } 2746 | } 2747 | layer { 2748 | name: "conv4_1" 2749 | type: "Eltwise" 2750 | bottom: "conv4_1_1x1_proj" 2751 | bottom: "conv4_1_1x1_increase" 2752 | top: "conv4_1" 2753 | eltwise_param { 2754 | operation: SUM 2755 | } 2756 | } 2757 | layer { 2758 | name: "conv4_1/relu" 2759 | type: "ReLU" 2760 | bottom: "conv4_1" 2761 | top: "conv4_1" 2762 | } 2763 | layer { 2764 | name: "conv4_2_1x1_reduce" 2765 | type: "Convolution" 2766 | bottom: "conv4_1" 2767 | top: "conv4_2_1x1_reduce" 2768 | convolution_param { 2769 | num_output: 256 2770 | bias_term: false 2771 | pad: 0 2772 | kernel_size: 1 2773 | stride: 1 2774 | } 2775 | } 2776 | layer { 2777 | name: "conv4_2_1x1_reduce/bn" 2778 | type: "BatchNorm" 2779 | bottom: "conv4_2_1x1_reduce" 2780 | top: "conv4_2_1x1_reduce" 2781 | batch_norm_param { 2782 | use_global_stats: true 2783 | } 2784 | } 2785 | layer { 2786 | name: "conv4_2_1x1_reduce/scale" 2787 | type: "Scale" 2788 | bottom: "conv4_2_1x1_reduce" 2789 | top: "conv4_2_1x1_reduce" 2790 | scale_param { 2791 | bias_term: true 2792 | } 2793 | } 2794 | layer { 2795 | name: "conv4_2_1x1_reduce/relu" 2796 | type: "ReLU" 2797 | bottom: "conv4_2_1x1_reduce" 2798 | top: "conv4_2_1x1_reduce" 2799 | } 2800 | layer { 2801 | name: "conv4_2_3x3" 2802 | type: "Convolution" 2803 | bottom: "conv4_2_1x1_reduce" 2804 | top: "conv4_2_3x3" 2805 | convolution_param { 2806 | num_output: 256 2807 | bias_term: false 2808 | pad: 1 2809 | kernel_size: 3 2810 | stride: 1 2811 | } 2812 | } 2813 | layer { 2814 | name: "conv4_2_3x3/bn" 2815 | type: "BatchNorm" 2816 | bottom: "conv4_2_3x3" 2817 | top: "conv4_2_3x3" 2818 | batch_norm_param { 2819 | use_global_stats: true 2820 | } 2821 | } 2822 | layer { 2823 | name: "conv4_2_3x3/scale" 2824 | type: "Scale" 2825 | bottom: "conv4_2_3x3" 2826 | top: "conv4_2_3x3" 2827 | scale_param { 2828 | bias_term: true 2829 | } 2830 | } 2831 | layer { 2832 | name: "conv4_2_3x3/relu" 2833 | type: "ReLU" 2834 | bottom: "conv4_2_3x3" 2835 | top: "conv4_2_3x3" 2836 | } 2837 | layer { 2838 | name: "conv4_2_1x1_increase" 2839 | type: "Convolution" 2840 | bottom: "conv4_2_3x3" 2841 | top: "conv4_2_1x1_increase" 2842 | convolution_param { 2843 | num_output: 1024 2844 | bias_term: false 2845 | pad: 0 2846 | kernel_size: 1 2847 | stride: 1 2848 | } 2849 | } 2850 | layer { 2851 | name: "conv4_2_1x1_increase/bn" 2852 | type: "BatchNorm" 2853 | bottom: "conv4_2_1x1_increase" 2854 | top: "conv4_2_1x1_increase" 2855 | batch_norm_param { 2856 | use_global_stats: true 2857 | } 2858 | } 2859 | layer { 2860 | name: "conv4_2_1x1_increase/scale" 2861 | type: "Scale" 2862 | bottom: "conv4_2_1x1_increase" 2863 | top: "conv4_2_1x1_increase" 2864 | scale_param { 2865 | bias_term: true 2866 | } 2867 | } 2868 | layer { 2869 | name: "conv4_2" 2870 | type: "Eltwise" 2871 | bottom: "conv4_1" 2872 | bottom: "conv4_2_1x1_increase" 2873 | top: "conv4_2" 2874 | eltwise_param { 2875 | operation: SUM 2876 | } 2877 | } 2878 | layer { 2879 | name: "conv4_2/relu" 2880 | type: "ReLU" 2881 | bottom: "conv4_2" 2882 | top: "conv4_2" 2883 | } 2884 | layer { 2885 | name: "conv4_3_1x1_reduce" 2886 | type: "Convolution" 2887 | bottom: "conv4_2" 2888 | top: "conv4_3_1x1_reduce" 2889 | convolution_param { 2890 | num_output: 256 2891 | bias_term: false 2892 | pad: 0 2893 | kernel_size: 1 2894 | stride: 1 2895 | } 2896 | } 2897 | layer { 2898 | name: "conv4_3_1x1_reduce/bn" 2899 | type: "BatchNorm" 2900 | bottom: "conv4_3_1x1_reduce" 2901 | top: "conv4_3_1x1_reduce" 2902 | batch_norm_param { 2903 | use_global_stats: true 2904 | } 2905 | } 2906 | layer { 2907 | name: "conv4_3_1x1_reduce/scale" 2908 | type: "Scale" 2909 | bottom: "conv4_3_1x1_reduce" 2910 | top: "conv4_3_1x1_reduce" 2911 | scale_param { 2912 | bias_term: true 2913 | } 2914 | } 2915 | layer { 2916 | name: "conv4_3_1x1_reduce/relu" 2917 | type: "ReLU" 2918 | bottom: "conv4_3_1x1_reduce" 2919 | top: "conv4_3_1x1_reduce" 2920 | } 2921 | layer { 2922 | name: "conv4_3_3x3" 2923 | type: "Convolution" 2924 | bottom: "conv4_3_1x1_reduce" 2925 | top: "conv4_3_3x3" 2926 | convolution_param { 2927 | num_output: 256 2928 | bias_term: false 2929 | pad: 1 2930 | kernel_size: 3 2931 | stride: 1 2932 | } 2933 | } 2934 | layer { 2935 | name: "conv4_3_3x3/bn" 2936 | type: "BatchNorm" 2937 | bottom: "conv4_3_3x3" 2938 | top: "conv4_3_3x3" 2939 | batch_norm_param { 2940 | use_global_stats: true 2941 | } 2942 | } 2943 | layer { 2944 | name: "conv4_3_3x3/scale" 2945 | type: "Scale" 2946 | bottom: "conv4_3_3x3" 2947 | top: "conv4_3_3x3" 2948 | scale_param { 2949 | bias_term: true 2950 | } 2951 | } 2952 | layer { 2953 | name: "conv4_3_3x3/relu" 2954 | type: "ReLU" 2955 | bottom: "conv4_3_3x3" 2956 | top: "conv4_3_3x3" 2957 | } 2958 | layer { 2959 | name: "conv4_3_1x1_increase" 2960 | type: "Convolution" 2961 | bottom: "conv4_3_3x3" 2962 | top: "conv4_3_1x1_increase" 2963 | convolution_param { 2964 | num_output: 1024 2965 | bias_term: false 2966 | pad: 0 2967 | kernel_size: 1 2968 | stride: 1 2969 | } 2970 | } 2971 | layer { 2972 | name: "conv4_3_1x1_increase/bn" 2973 | type: "BatchNorm" 2974 | bottom: "conv4_3_1x1_increase" 2975 | top: "conv4_3_1x1_increase" 2976 | batch_norm_param { 2977 | use_global_stats: true 2978 | } 2979 | } 2980 | layer { 2981 | name: "conv4_3_1x1_increase/scale" 2982 | type: "Scale" 2983 | bottom: "conv4_3_1x1_increase" 2984 | top: "conv4_3_1x1_increase" 2985 | scale_param { 2986 | bias_term: true 2987 | } 2988 | } 2989 | layer { 2990 | name: "conv4_3" 2991 | type: "Eltwise" 2992 | bottom: "conv4_2" 2993 | bottom: "conv4_3_1x1_increase" 2994 | top: "conv4_3" 2995 | eltwise_param { 2996 | operation: SUM 2997 | } 2998 | } 2999 | layer { 3000 | name: "conv4_3/relu" 3001 | type: "ReLU" 3002 | bottom: "conv4_3" 3003 | top: "conv4_3" 3004 | } 3005 | layer { 3006 | name: "conv4_4_1x1_reduce" 3007 | type: "Convolution" 3008 | bottom: "conv4_3" 3009 | top: "conv4_4_1x1_reduce" 3010 | convolution_param { 3011 | num_output: 256 3012 | bias_term: false 3013 | pad: 0 3014 | kernel_size: 1 3015 | stride: 1 3016 | } 3017 | } 3018 | layer { 3019 | name: "conv4_4_1x1_reduce/bn" 3020 | type: "BatchNorm" 3021 | bottom: "conv4_4_1x1_reduce" 3022 | top: "conv4_4_1x1_reduce" 3023 | batch_norm_param { 3024 | use_global_stats: true 3025 | } 3026 | } 3027 | layer { 3028 | name: "conv4_4_1x1_reduce/scale" 3029 | type: "Scale" 3030 | bottom: "conv4_4_1x1_reduce" 3031 | top: "conv4_4_1x1_reduce" 3032 | scale_param { 3033 | bias_term: true 3034 | } 3035 | } 3036 | layer { 3037 | name: "conv4_4_1x1_reduce/relu" 3038 | type: "ReLU" 3039 | bottom: "conv4_4_1x1_reduce" 3040 | top: "conv4_4_1x1_reduce" 3041 | } 3042 | layer { 3043 | name: "conv4_4_3x3" 3044 | type: "Convolution" 3045 | bottom: "conv4_4_1x1_reduce" 3046 | top: "conv4_4_3x3" 3047 | convolution_param { 3048 | num_output: 256 3049 | bias_term: false 3050 | pad: 1 3051 | kernel_size: 3 3052 | stride: 1 3053 | } 3054 | } 3055 | layer { 3056 | name: "conv4_4_3x3/bn" 3057 | type: "BatchNorm" 3058 | bottom: "conv4_4_3x3" 3059 | top: "conv4_4_3x3" 3060 | batch_norm_param { 3061 | use_global_stats: true 3062 | } 3063 | } 3064 | layer { 3065 | name: "conv4_4_3x3/scale" 3066 | type: "Scale" 3067 | bottom: "conv4_4_3x3" 3068 | top: "conv4_4_3x3" 3069 | scale_param { 3070 | bias_term: true 3071 | } 3072 | } 3073 | layer { 3074 | name: "conv4_4_3x3/relu" 3075 | type: "ReLU" 3076 | bottom: "conv4_4_3x3" 3077 | top: "conv4_4_3x3" 3078 | } 3079 | layer { 3080 | name: "conv4_4_1x1_increase" 3081 | type: "Convolution" 3082 | bottom: "conv4_4_3x3" 3083 | top: "conv4_4_1x1_increase" 3084 | convolution_param { 3085 | num_output: 1024 3086 | bias_term: false 3087 | pad: 0 3088 | kernel_size: 1 3089 | stride: 1 3090 | } 3091 | } 3092 | layer { 3093 | name: "conv4_4_1x1_increase/bn" 3094 | type: "BatchNorm" 3095 | bottom: "conv4_4_1x1_increase" 3096 | top: "conv4_4_1x1_increase" 3097 | batch_norm_param { 3098 | use_global_stats: true 3099 | } 3100 | } 3101 | layer { 3102 | name: "conv4_4_1x1_increase/scale" 3103 | type: "Scale" 3104 | bottom: "conv4_4_1x1_increase" 3105 | top: "conv4_4_1x1_increase" 3106 | scale_param { 3107 | bias_term: true 3108 | } 3109 | } 3110 | layer { 3111 | name: "conv4_4" 3112 | type: "Eltwise" 3113 | bottom: "conv4_3" 3114 | bottom: "conv4_4_1x1_increase" 3115 | top: "conv4_4" 3116 | eltwise_param { 3117 | operation: SUM 3118 | } 3119 | } 3120 | layer { 3121 | name: "conv4_4/relu" 3122 | type: "ReLU" 3123 | bottom: "conv4_4" 3124 | top: "conv4_4" 3125 | } 3126 | layer { 3127 | name: "conv4_5_1x1_reduce" 3128 | type: "Convolution" 3129 | bottom: "conv4_4" 3130 | top: "conv4_5_1x1_reduce" 3131 | convolution_param { 3132 | num_output: 256 3133 | bias_term: false 3134 | pad: 0 3135 | kernel_size: 1 3136 | stride: 1 3137 | } 3138 | } 3139 | layer { 3140 | name: "conv4_5_1x1_reduce/bn" 3141 | type: "BatchNorm" 3142 | bottom: "conv4_5_1x1_reduce" 3143 | top: "conv4_5_1x1_reduce" 3144 | batch_norm_param { 3145 | use_global_stats: true 3146 | } 3147 | } 3148 | layer { 3149 | name: "conv4_5_1x1_reduce/scale" 3150 | type: "Scale" 3151 | bottom: "conv4_5_1x1_reduce" 3152 | top: "conv4_5_1x1_reduce" 3153 | scale_param { 3154 | bias_term: true 3155 | } 3156 | } 3157 | layer { 3158 | name: "conv4_5_1x1_reduce/relu" 3159 | type: "ReLU" 3160 | bottom: "conv4_5_1x1_reduce" 3161 | top: "conv4_5_1x1_reduce" 3162 | } 3163 | layer { 3164 | name: "conv4_5_3x3" 3165 | type: "Convolution" 3166 | bottom: "conv4_5_1x1_reduce" 3167 | top: "conv4_5_3x3" 3168 | convolution_param { 3169 | num_output: 256 3170 | bias_term: false 3171 | pad: 1 3172 | kernel_size: 3 3173 | stride: 1 3174 | } 3175 | } 3176 | layer { 3177 | name: "conv4_5_3x3/bn" 3178 | type: "BatchNorm" 3179 | bottom: "conv4_5_3x3" 3180 | top: "conv4_5_3x3" 3181 | batch_norm_param { 3182 | use_global_stats: true 3183 | } 3184 | } 3185 | layer { 3186 | name: "conv4_5_3x3/scale" 3187 | type: "Scale" 3188 | bottom: "conv4_5_3x3" 3189 | top: "conv4_5_3x3" 3190 | scale_param { 3191 | bias_term: true 3192 | } 3193 | } 3194 | layer { 3195 | name: "conv4_5_3x3/relu" 3196 | type: "ReLU" 3197 | bottom: "conv4_5_3x3" 3198 | top: "conv4_5_3x3" 3199 | } 3200 | layer { 3201 | name: "conv4_5_1x1_increase" 3202 | type: "Convolution" 3203 | bottom: "conv4_5_3x3" 3204 | top: "conv4_5_1x1_increase" 3205 | convolution_param { 3206 | num_output: 1024 3207 | bias_term: false 3208 | pad: 0 3209 | kernel_size: 1 3210 | stride: 1 3211 | } 3212 | } 3213 | layer { 3214 | name: "conv4_5_1x1_increase/bn" 3215 | type: "BatchNorm" 3216 | bottom: "conv4_5_1x1_increase" 3217 | top: "conv4_5_1x1_increase" 3218 | batch_norm_param { 3219 | use_global_stats: true 3220 | } 3221 | } 3222 | layer { 3223 | name: "conv4_5_1x1_increase/scale" 3224 | type: "Scale" 3225 | bottom: "conv4_5_1x1_increase" 3226 | top: "conv4_5_1x1_increase" 3227 | scale_param { 3228 | bias_term: true 3229 | } 3230 | } 3231 | layer { 3232 | name: "conv4_5" 3233 | type: "Eltwise" 3234 | bottom: "conv4_4" 3235 | bottom: "conv4_5_1x1_increase" 3236 | top: "conv4_5" 3237 | eltwise_param { 3238 | operation: SUM 3239 | } 3240 | } 3241 | layer { 3242 | name: "conv4_5/relu" 3243 | type: "ReLU" 3244 | bottom: "conv4_5" 3245 | top: "conv4_5" 3246 | } 3247 | layer { 3248 | name: "conv4_6_1x1_reduce" 3249 | type: "Convolution" 3250 | bottom: "conv4_5" 3251 | top: "conv4_6_1x1_reduce" 3252 | convolution_param { 3253 | num_output: 256 3254 | bias_term: false 3255 | pad: 0 3256 | kernel_size: 1 3257 | stride: 1 3258 | } 3259 | } 3260 | layer { 3261 | name: "conv4_6_1x1_reduce/bn" 3262 | type: "BatchNorm" 3263 | bottom: "conv4_6_1x1_reduce" 3264 | top: "conv4_6_1x1_reduce" 3265 | batch_norm_param { 3266 | use_global_stats: true 3267 | } 3268 | } 3269 | layer { 3270 | name: "conv4_6_1x1_reduce/scale" 3271 | type: "Scale" 3272 | bottom: "conv4_6_1x1_reduce" 3273 | top: "conv4_6_1x1_reduce" 3274 | scale_param { 3275 | bias_term: true 3276 | } 3277 | } 3278 | layer { 3279 | name: "conv4_6_1x1_reduce/relu" 3280 | type: "ReLU" 3281 | bottom: "conv4_6_1x1_reduce" 3282 | top: "conv4_6_1x1_reduce" 3283 | } 3284 | layer { 3285 | name: "conv4_6_3x3" 3286 | type: "Convolution" 3287 | bottom: "conv4_6_1x1_reduce" 3288 | top: "conv4_6_3x3" 3289 | convolution_param { 3290 | num_output: 256 3291 | bias_term: false 3292 | pad: 1 3293 | kernel_size: 3 3294 | stride: 1 3295 | } 3296 | } 3297 | layer { 3298 | name: "conv4_6_3x3/bn" 3299 | type: "BatchNorm" 3300 | bottom: "conv4_6_3x3" 3301 | top: "conv4_6_3x3" 3302 | batch_norm_param { 3303 | use_global_stats: true 3304 | } 3305 | } 3306 | layer { 3307 | name: "conv4_6_3x3/scale" 3308 | type: "Scale" 3309 | bottom: "conv4_6_3x3" 3310 | top: "conv4_6_3x3" 3311 | scale_param { 3312 | bias_term: true 3313 | } 3314 | } 3315 | layer { 3316 | name: "conv4_6_3x3/relu" 3317 | type: "ReLU" 3318 | bottom: "conv4_6_3x3" 3319 | top: "conv4_6_3x3" 3320 | } 3321 | layer { 3322 | name: "conv4_6_1x1_increase" 3323 | type: "Convolution" 3324 | bottom: "conv4_6_3x3" 3325 | top: "conv4_6_1x1_increase" 3326 | convolution_param { 3327 | num_output: 1024 3328 | bias_term: false 3329 | pad: 0 3330 | kernel_size: 1 3331 | stride: 1 3332 | } 3333 | } 3334 | layer { 3335 | name: "conv4_6_1x1_increase/bn" 3336 | type: "BatchNorm" 3337 | bottom: "conv4_6_1x1_increase" 3338 | top: "conv4_6_1x1_increase" 3339 | batch_norm_param { 3340 | use_global_stats: true 3341 | } 3342 | } 3343 | layer { 3344 | name: "conv4_6_1x1_increase/scale" 3345 | type: "Scale" 3346 | bottom: "conv4_6_1x1_increase" 3347 | top: "conv4_6_1x1_increase" 3348 | scale_param { 3349 | bias_term: true 3350 | } 3351 | } 3352 | layer { 3353 | name: "conv4_6" 3354 | type: "Eltwise" 3355 | bottom: "conv4_5" 3356 | bottom: "conv4_6_1x1_increase" 3357 | top: "conv4_6" 3358 | eltwise_param { 3359 | operation: SUM 3360 | } 3361 | } 3362 | layer { 3363 | name: "conv4_6/relu" 3364 | type: "ReLU" 3365 | bottom: "conv4_6" 3366 | top: "conv4_6" 3367 | } 3368 | layer { 3369 | name: "conv4_7_1x1_reduce" 3370 | type: "Convolution" 3371 | bottom: "conv4_6" 3372 | top: "conv4_7_1x1_reduce" 3373 | convolution_param { 3374 | num_output: 256 3375 | bias_term: false 3376 | pad: 0 3377 | kernel_size: 1 3378 | stride: 1 3379 | } 3380 | } 3381 | layer { 3382 | name: "conv4_7_1x1_reduce/bn" 3383 | type: "BatchNorm" 3384 | bottom: "conv4_7_1x1_reduce" 3385 | top: "conv4_7_1x1_reduce" 3386 | batch_norm_param { 3387 | use_global_stats: true 3388 | } 3389 | } 3390 | layer { 3391 | name: "conv4_7_1x1_reduce/scale" 3392 | type: "Scale" 3393 | bottom: "conv4_7_1x1_reduce" 3394 | top: "conv4_7_1x1_reduce" 3395 | scale_param { 3396 | bias_term: true 3397 | } 3398 | } 3399 | layer { 3400 | name: "conv4_7_1x1_reduce/relu" 3401 | type: "ReLU" 3402 | bottom: "conv4_7_1x1_reduce" 3403 | top: "conv4_7_1x1_reduce" 3404 | } 3405 | layer { 3406 | name: "conv4_7_3x3" 3407 | type: "Convolution" 3408 | bottom: "conv4_7_1x1_reduce" 3409 | top: "conv4_7_3x3" 3410 | convolution_param { 3411 | num_output: 256 3412 | bias_term: false 3413 | pad: 1 3414 | kernel_size: 3 3415 | stride: 1 3416 | } 3417 | } 3418 | layer { 3419 | name: "conv4_7_3x3/bn" 3420 | type: "BatchNorm" 3421 | bottom: "conv4_7_3x3" 3422 | top: "conv4_7_3x3" 3423 | batch_norm_param { 3424 | use_global_stats: true 3425 | } 3426 | } 3427 | layer { 3428 | name: "conv4_7_3x3/scale" 3429 | type: "Scale" 3430 | bottom: "conv4_7_3x3" 3431 | top: "conv4_7_3x3" 3432 | scale_param { 3433 | bias_term: true 3434 | } 3435 | } 3436 | layer { 3437 | name: "conv4_7_3x3/relu" 3438 | type: "ReLU" 3439 | bottom: "conv4_7_3x3" 3440 | top: "conv4_7_3x3" 3441 | } 3442 | layer { 3443 | name: "conv4_7_1x1_increase" 3444 | type: "Convolution" 3445 | bottom: "conv4_7_3x3" 3446 | top: "conv4_7_1x1_increase" 3447 | convolution_param { 3448 | num_output: 1024 3449 | bias_term: false 3450 | pad: 0 3451 | kernel_size: 1 3452 | stride: 1 3453 | } 3454 | } 3455 | layer { 3456 | name: "conv4_7_1x1_increase/bn" 3457 | type: "BatchNorm" 3458 | bottom: "conv4_7_1x1_increase" 3459 | top: "conv4_7_1x1_increase" 3460 | batch_norm_param { 3461 | use_global_stats: true 3462 | } 3463 | } 3464 | layer { 3465 | name: "conv4_7_1x1_increase/scale" 3466 | type: "Scale" 3467 | bottom: "conv4_7_1x1_increase" 3468 | top: "conv4_7_1x1_increase" 3469 | scale_param { 3470 | bias_term: true 3471 | } 3472 | } 3473 | layer { 3474 | name: "conv4_7" 3475 | type: "Eltwise" 3476 | bottom: "conv4_6" 3477 | bottom: "conv4_7_1x1_increase" 3478 | top: "conv4_7" 3479 | eltwise_param { 3480 | operation: SUM 3481 | } 3482 | } 3483 | layer { 3484 | name: "conv4_7/relu" 3485 | type: "ReLU" 3486 | bottom: "conv4_7" 3487 | top: "conv4_7" 3488 | } 3489 | layer { 3490 | name: "conv4_8_1x1_reduce" 3491 | type: "Convolution" 3492 | bottom: "conv4_7" 3493 | top: "conv4_8_1x1_reduce" 3494 | convolution_param { 3495 | num_output: 256 3496 | bias_term: false 3497 | pad: 0 3498 | kernel_size: 1 3499 | stride: 1 3500 | } 3501 | } 3502 | layer { 3503 | name: "conv4_8_1x1_reduce/bn" 3504 | type: "BatchNorm" 3505 | bottom: "conv4_8_1x1_reduce" 3506 | top: "conv4_8_1x1_reduce" 3507 | batch_norm_param { 3508 | use_global_stats: true 3509 | } 3510 | } 3511 | layer { 3512 | name: "conv4_8_1x1_reduce/scale" 3513 | type: "Scale" 3514 | bottom: "conv4_8_1x1_reduce" 3515 | top: "conv4_8_1x1_reduce" 3516 | scale_param { 3517 | bias_term: true 3518 | } 3519 | } 3520 | layer { 3521 | name: "conv4_8_1x1_reduce/relu" 3522 | type: "ReLU" 3523 | bottom: "conv4_8_1x1_reduce" 3524 | top: "conv4_8_1x1_reduce" 3525 | } 3526 | layer { 3527 | name: "conv4_8_3x3" 3528 | type: "Convolution" 3529 | bottom: "conv4_8_1x1_reduce" 3530 | top: "conv4_8_3x3" 3531 | convolution_param { 3532 | num_output: 256 3533 | bias_term: false 3534 | pad: 1 3535 | kernel_size: 3 3536 | stride: 1 3537 | } 3538 | } 3539 | layer { 3540 | name: "conv4_8_3x3/bn" 3541 | type: "BatchNorm" 3542 | bottom: "conv4_8_3x3" 3543 | top: "conv4_8_3x3" 3544 | batch_norm_param { 3545 | use_global_stats: true 3546 | } 3547 | } 3548 | layer { 3549 | name: "conv4_8_3x3/scale" 3550 | type: "Scale" 3551 | bottom: "conv4_8_3x3" 3552 | top: "conv4_8_3x3" 3553 | scale_param { 3554 | bias_term: true 3555 | } 3556 | } 3557 | layer { 3558 | name: "conv4_8_3x3/relu" 3559 | type: "ReLU" 3560 | bottom: "conv4_8_3x3" 3561 | top: "conv4_8_3x3" 3562 | } 3563 | layer { 3564 | name: "conv4_8_1x1_increase" 3565 | type: "Convolution" 3566 | bottom: "conv4_8_3x3" 3567 | top: "conv4_8_1x1_increase" 3568 | convolution_param { 3569 | num_output: 1024 3570 | bias_term: false 3571 | pad: 0 3572 | kernel_size: 1 3573 | stride: 1 3574 | } 3575 | } 3576 | layer { 3577 | name: "conv4_8_1x1_increase/bn" 3578 | type: "BatchNorm" 3579 | bottom: "conv4_8_1x1_increase" 3580 | top: "conv4_8_1x1_increase" 3581 | batch_norm_param { 3582 | use_global_stats: true 3583 | } 3584 | } 3585 | layer { 3586 | name: "conv4_8_1x1_increase/scale" 3587 | type: "Scale" 3588 | bottom: "conv4_8_1x1_increase" 3589 | top: "conv4_8_1x1_increase" 3590 | scale_param { 3591 | bias_term: true 3592 | } 3593 | } 3594 | layer { 3595 | name: "conv4_8" 3596 | type: "Eltwise" 3597 | bottom: "conv4_7" 3598 | bottom: "conv4_8_1x1_increase" 3599 | top: "conv4_8" 3600 | eltwise_param { 3601 | operation: SUM 3602 | } 3603 | } 3604 | layer { 3605 | name: "conv4_8/relu" 3606 | type: "ReLU" 3607 | bottom: "conv4_8" 3608 | top: "conv4_8" 3609 | } 3610 | layer { 3611 | name: "conv4_9_1x1_reduce" 3612 | type: "Convolution" 3613 | bottom: "conv4_8" 3614 | top: "conv4_9_1x1_reduce" 3615 | convolution_param { 3616 | num_output: 256 3617 | bias_term: false 3618 | pad: 0 3619 | kernel_size: 1 3620 | stride: 1 3621 | } 3622 | } 3623 | layer { 3624 | name: "conv4_9_1x1_reduce/bn" 3625 | type: "BatchNorm" 3626 | bottom: "conv4_9_1x1_reduce" 3627 | top: "conv4_9_1x1_reduce" 3628 | batch_norm_param { 3629 | use_global_stats: true 3630 | } 3631 | } 3632 | layer { 3633 | name: "conv4_9_1x1_reduce/scale" 3634 | type: "Scale" 3635 | bottom: "conv4_9_1x1_reduce" 3636 | top: "conv4_9_1x1_reduce" 3637 | scale_param { 3638 | bias_term: true 3639 | } 3640 | } 3641 | layer { 3642 | name: "conv4_9_1x1_reduce/relu" 3643 | type: "ReLU" 3644 | bottom: "conv4_9_1x1_reduce" 3645 | top: "conv4_9_1x1_reduce" 3646 | } 3647 | layer { 3648 | name: "conv4_9_3x3" 3649 | type: "Convolution" 3650 | bottom: "conv4_9_1x1_reduce" 3651 | top: "conv4_9_3x3" 3652 | convolution_param { 3653 | num_output: 256 3654 | bias_term: false 3655 | pad: 1 3656 | kernel_size: 3 3657 | stride: 1 3658 | } 3659 | } 3660 | layer { 3661 | name: "conv4_9_3x3/bn" 3662 | type: "BatchNorm" 3663 | bottom: "conv4_9_3x3" 3664 | top: "conv4_9_3x3" 3665 | batch_norm_param { 3666 | use_global_stats: true 3667 | } 3668 | } 3669 | layer { 3670 | name: "conv4_9_3x3/scale" 3671 | type: "Scale" 3672 | bottom: "conv4_9_3x3" 3673 | top: "conv4_9_3x3" 3674 | scale_param { 3675 | bias_term: true 3676 | } 3677 | } 3678 | layer { 3679 | name: "conv4_9_3x3/relu" 3680 | type: "ReLU" 3681 | bottom: "conv4_9_3x3" 3682 | top: "conv4_9_3x3" 3683 | } 3684 | layer { 3685 | name: "conv4_9_1x1_increase" 3686 | type: "Convolution" 3687 | bottom: "conv4_9_3x3" 3688 | top: "conv4_9_1x1_increase" 3689 | convolution_param { 3690 | num_output: 1024 3691 | bias_term: false 3692 | pad: 0 3693 | kernel_size: 1 3694 | stride: 1 3695 | } 3696 | } 3697 | layer { 3698 | name: "conv4_9_1x1_increase/bn" 3699 | type: "BatchNorm" 3700 | bottom: "conv4_9_1x1_increase" 3701 | top: "conv4_9_1x1_increase" 3702 | batch_norm_param { 3703 | use_global_stats: true 3704 | } 3705 | } 3706 | layer { 3707 | name: "conv4_9_1x1_increase/scale" 3708 | type: "Scale" 3709 | bottom: "conv4_9_1x1_increase" 3710 | top: "conv4_9_1x1_increase" 3711 | scale_param { 3712 | bias_term: true 3713 | } 3714 | } 3715 | layer { 3716 | name: "conv4_9" 3717 | type: "Eltwise" 3718 | bottom: "conv4_8" 3719 | bottom: "conv4_9_1x1_increase" 3720 | top: "conv4_9" 3721 | eltwise_param { 3722 | operation: SUM 3723 | } 3724 | } 3725 | layer { 3726 | name: "conv4_9/relu" 3727 | type: "ReLU" 3728 | bottom: "conv4_9" 3729 | top: "conv4_9" 3730 | } 3731 | layer { 3732 | name: "conv4_10_1x1_reduce" 3733 | type: "Convolution" 3734 | bottom: "conv4_9" 3735 | top: "conv4_10_1x1_reduce" 3736 | convolution_param { 3737 | num_output: 256 3738 | bias_term: false 3739 | pad: 0 3740 | kernel_size: 1 3741 | stride: 1 3742 | } 3743 | } 3744 | layer { 3745 | name: "conv4_10_1x1_reduce/bn" 3746 | type: "BatchNorm" 3747 | bottom: "conv4_10_1x1_reduce" 3748 | top: "conv4_10_1x1_reduce" 3749 | batch_norm_param { 3750 | use_global_stats: true 3751 | } 3752 | } 3753 | layer { 3754 | name: "conv4_10_1x1_reduce/scale" 3755 | type: "Scale" 3756 | bottom: "conv4_10_1x1_reduce" 3757 | top: "conv4_10_1x1_reduce" 3758 | scale_param { 3759 | bias_term: true 3760 | } 3761 | } 3762 | layer { 3763 | name: "conv4_10_1x1_reduce/relu" 3764 | type: "ReLU" 3765 | bottom: "conv4_10_1x1_reduce" 3766 | top: "conv4_10_1x1_reduce" 3767 | } 3768 | layer { 3769 | name: "conv4_10_3x3" 3770 | type: "Convolution" 3771 | bottom: "conv4_10_1x1_reduce" 3772 | top: "conv4_10_3x3" 3773 | convolution_param { 3774 | num_output: 256 3775 | bias_term: false 3776 | pad: 1 3777 | kernel_size: 3 3778 | stride: 1 3779 | } 3780 | } 3781 | layer { 3782 | name: "conv4_10_3x3/bn" 3783 | type: "BatchNorm" 3784 | bottom: "conv4_10_3x3" 3785 | top: "conv4_10_3x3" 3786 | batch_norm_param { 3787 | use_global_stats: true 3788 | } 3789 | } 3790 | layer { 3791 | name: "conv4_10_3x3/scale" 3792 | type: "Scale" 3793 | bottom: "conv4_10_3x3" 3794 | top: "conv4_10_3x3" 3795 | scale_param { 3796 | bias_term: true 3797 | } 3798 | } 3799 | layer { 3800 | name: "conv4_10_3x3/relu" 3801 | type: "ReLU" 3802 | bottom: "conv4_10_3x3" 3803 | top: "conv4_10_3x3" 3804 | } 3805 | layer { 3806 | name: "conv4_10_1x1_increase" 3807 | type: "Convolution" 3808 | bottom: "conv4_10_3x3" 3809 | top: "conv4_10_1x1_increase" 3810 | convolution_param { 3811 | num_output: 1024 3812 | bias_term: false 3813 | pad: 0 3814 | kernel_size: 1 3815 | stride: 1 3816 | } 3817 | } 3818 | layer { 3819 | name: "conv4_10_1x1_increase/bn" 3820 | type: "BatchNorm" 3821 | bottom: "conv4_10_1x1_increase" 3822 | top: "conv4_10_1x1_increase" 3823 | batch_norm_param { 3824 | use_global_stats: true 3825 | } 3826 | } 3827 | layer { 3828 | name: "conv4_10_1x1_increase/scale" 3829 | type: "Scale" 3830 | bottom: "conv4_10_1x1_increase" 3831 | top: "conv4_10_1x1_increase" 3832 | scale_param { 3833 | bias_term: true 3834 | } 3835 | } 3836 | layer { 3837 | name: "conv4_10" 3838 | type: "Eltwise" 3839 | bottom: "conv4_9" 3840 | bottom: "conv4_10_1x1_increase" 3841 | top: "conv4_10" 3842 | eltwise_param { 3843 | operation: SUM 3844 | } 3845 | } 3846 | layer { 3847 | name: "conv4_10/relu" 3848 | type: "ReLU" 3849 | bottom: "conv4_10" 3850 | top: "conv4_10" 3851 | } 3852 | layer { 3853 | name: "conv4_11_1x1_reduce" 3854 | type: "Convolution" 3855 | bottom: "conv4_10" 3856 | top: "conv4_11_1x1_reduce" 3857 | convolution_param { 3858 | num_output: 256 3859 | bias_term: false 3860 | pad: 0 3861 | kernel_size: 1 3862 | stride: 1 3863 | } 3864 | } 3865 | layer { 3866 | name: "conv4_11_1x1_reduce/bn" 3867 | type: "BatchNorm" 3868 | bottom: "conv4_11_1x1_reduce" 3869 | top: "conv4_11_1x1_reduce" 3870 | batch_norm_param { 3871 | use_global_stats: true 3872 | } 3873 | } 3874 | layer { 3875 | name: "conv4_11_1x1_reduce/scale" 3876 | type: "Scale" 3877 | bottom: "conv4_11_1x1_reduce" 3878 | top: "conv4_11_1x1_reduce" 3879 | scale_param { 3880 | bias_term: true 3881 | } 3882 | } 3883 | layer { 3884 | name: "conv4_11_1x1_reduce/relu" 3885 | type: "ReLU" 3886 | bottom: "conv4_11_1x1_reduce" 3887 | top: "conv4_11_1x1_reduce" 3888 | } 3889 | layer { 3890 | name: "conv4_11_3x3" 3891 | type: "Convolution" 3892 | bottom: "conv4_11_1x1_reduce" 3893 | top: "conv4_11_3x3" 3894 | convolution_param { 3895 | num_output: 256 3896 | bias_term: false 3897 | pad: 1 3898 | kernel_size: 3 3899 | stride: 1 3900 | } 3901 | } 3902 | layer { 3903 | name: "conv4_11_3x3/bn" 3904 | type: "BatchNorm" 3905 | bottom: "conv4_11_3x3" 3906 | top: "conv4_11_3x3" 3907 | batch_norm_param { 3908 | use_global_stats: true 3909 | } 3910 | } 3911 | layer { 3912 | name: "conv4_11_3x3/scale" 3913 | type: "Scale" 3914 | bottom: "conv4_11_3x3" 3915 | top: "conv4_11_3x3" 3916 | scale_param { 3917 | bias_term: true 3918 | } 3919 | } 3920 | layer { 3921 | name: "conv4_11_3x3/relu" 3922 | type: "ReLU" 3923 | bottom: "conv4_11_3x3" 3924 | top: "conv4_11_3x3" 3925 | } 3926 | layer { 3927 | name: "conv4_11_1x1_increase" 3928 | type: "Convolution" 3929 | bottom: "conv4_11_3x3" 3930 | top: "conv4_11_1x1_increase" 3931 | convolution_param { 3932 | num_output: 1024 3933 | bias_term: false 3934 | pad: 0 3935 | kernel_size: 1 3936 | stride: 1 3937 | } 3938 | } 3939 | layer { 3940 | name: "conv4_11_1x1_increase/bn" 3941 | type: "BatchNorm" 3942 | bottom: "conv4_11_1x1_increase" 3943 | top: "conv4_11_1x1_increase" 3944 | batch_norm_param { 3945 | use_global_stats: true 3946 | } 3947 | } 3948 | layer { 3949 | name: "conv4_11_1x1_increase/scale" 3950 | type: "Scale" 3951 | bottom: "conv4_11_1x1_increase" 3952 | top: "conv4_11_1x1_increase" 3953 | scale_param { 3954 | bias_term: true 3955 | } 3956 | } 3957 | layer { 3958 | name: "conv4_11" 3959 | type: "Eltwise" 3960 | bottom: "conv4_10" 3961 | bottom: "conv4_11_1x1_increase" 3962 | top: "conv4_11" 3963 | eltwise_param { 3964 | operation: SUM 3965 | } 3966 | } 3967 | layer { 3968 | name: "conv4_11/relu" 3969 | type: "ReLU" 3970 | bottom: "conv4_11" 3971 | top: "conv4_11" 3972 | } 3973 | layer { 3974 | name: "conv4_12_1x1_reduce" 3975 | type: "Convolution" 3976 | bottom: "conv4_11" 3977 | top: "conv4_12_1x1_reduce" 3978 | convolution_param { 3979 | num_output: 256 3980 | bias_term: false 3981 | pad: 0 3982 | kernel_size: 1 3983 | stride: 1 3984 | } 3985 | } 3986 | layer { 3987 | name: "conv4_12_1x1_reduce/bn" 3988 | type: "BatchNorm" 3989 | bottom: "conv4_12_1x1_reduce" 3990 | top: "conv4_12_1x1_reduce" 3991 | batch_norm_param { 3992 | use_global_stats: true 3993 | } 3994 | } 3995 | layer { 3996 | name: "conv4_12_1x1_reduce/scale" 3997 | type: "Scale" 3998 | bottom: "conv4_12_1x1_reduce" 3999 | top: "conv4_12_1x1_reduce" 4000 | scale_param { 4001 | bias_term: true 4002 | } 4003 | } 4004 | layer { 4005 | name: "conv4_12_1x1_reduce/relu" 4006 | type: "ReLU" 4007 | bottom: "conv4_12_1x1_reduce" 4008 | top: "conv4_12_1x1_reduce" 4009 | } 4010 | layer { 4011 | name: "conv4_12_3x3" 4012 | type: "Convolution" 4013 | bottom: "conv4_12_1x1_reduce" 4014 | top: "conv4_12_3x3" 4015 | convolution_param { 4016 | num_output: 256 4017 | bias_term: false 4018 | pad: 1 4019 | kernel_size: 3 4020 | stride: 1 4021 | } 4022 | } 4023 | layer { 4024 | name: "conv4_12_3x3/bn" 4025 | type: "BatchNorm" 4026 | bottom: "conv4_12_3x3" 4027 | top: "conv4_12_3x3" 4028 | batch_norm_param { 4029 | use_global_stats: true 4030 | } 4031 | } 4032 | layer { 4033 | name: "conv4_12_3x3/scale" 4034 | type: "Scale" 4035 | bottom: "conv4_12_3x3" 4036 | top: "conv4_12_3x3" 4037 | scale_param { 4038 | bias_term: true 4039 | } 4040 | } 4041 | layer { 4042 | name: "conv4_12_3x3/relu" 4043 | type: "ReLU" 4044 | bottom: "conv4_12_3x3" 4045 | top: "conv4_12_3x3" 4046 | } 4047 | layer { 4048 | name: "conv4_12_1x1_increase" 4049 | type: "Convolution" 4050 | bottom: "conv4_12_3x3" 4051 | top: "conv4_12_1x1_increase" 4052 | convolution_param { 4053 | num_output: 1024 4054 | bias_term: false 4055 | pad: 0 4056 | kernel_size: 1 4057 | stride: 1 4058 | } 4059 | } 4060 | layer { 4061 | name: "conv4_12_1x1_increase/bn" 4062 | type: "BatchNorm" 4063 | bottom: "conv4_12_1x1_increase" 4064 | top: "conv4_12_1x1_increase" 4065 | batch_norm_param { 4066 | use_global_stats: true 4067 | } 4068 | } 4069 | layer { 4070 | name: "conv4_12_1x1_increase/scale" 4071 | type: "Scale" 4072 | bottom: "conv4_12_1x1_increase" 4073 | top: "conv4_12_1x1_increase" 4074 | scale_param { 4075 | bias_term: true 4076 | } 4077 | } 4078 | layer { 4079 | name: "conv4_12" 4080 | type: "Eltwise" 4081 | bottom: "conv4_11" 4082 | bottom: "conv4_12_1x1_increase" 4083 | top: "conv4_12" 4084 | eltwise_param { 4085 | operation: SUM 4086 | } 4087 | } 4088 | layer { 4089 | name: "conv4_12/relu" 4090 | type: "ReLU" 4091 | bottom: "conv4_12" 4092 | top: "conv4_12" 4093 | } 4094 | layer { 4095 | name: "conv4_13_1x1_reduce" 4096 | type: "Convolution" 4097 | bottom: "conv4_12" 4098 | top: "conv4_13_1x1_reduce" 4099 | convolution_param { 4100 | num_output: 256 4101 | bias_term: false 4102 | pad: 0 4103 | kernel_size: 1 4104 | stride: 1 4105 | } 4106 | } 4107 | layer { 4108 | name: "conv4_13_1x1_reduce/bn" 4109 | type: "BatchNorm" 4110 | bottom: "conv4_13_1x1_reduce" 4111 | top: "conv4_13_1x1_reduce" 4112 | batch_norm_param { 4113 | use_global_stats: true 4114 | } 4115 | } 4116 | layer { 4117 | name: "conv4_13_1x1_reduce/scale" 4118 | type: "Scale" 4119 | bottom: "conv4_13_1x1_reduce" 4120 | top: "conv4_13_1x1_reduce" 4121 | scale_param { 4122 | bias_term: true 4123 | } 4124 | } 4125 | layer { 4126 | name: "conv4_13_1x1_reduce/relu" 4127 | type: "ReLU" 4128 | bottom: "conv4_13_1x1_reduce" 4129 | top: "conv4_13_1x1_reduce" 4130 | } 4131 | layer { 4132 | name: "conv4_13_3x3" 4133 | type: "Convolution" 4134 | bottom: "conv4_13_1x1_reduce" 4135 | top: "conv4_13_3x3" 4136 | convolution_param { 4137 | num_output: 256 4138 | bias_term: false 4139 | pad: 1 4140 | kernel_size: 3 4141 | stride: 1 4142 | } 4143 | } 4144 | layer { 4145 | name: "conv4_13_3x3/bn" 4146 | type: "BatchNorm" 4147 | bottom: "conv4_13_3x3" 4148 | top: "conv4_13_3x3" 4149 | batch_norm_param { 4150 | use_global_stats: true 4151 | } 4152 | } 4153 | layer { 4154 | name: "conv4_13_3x3/scale" 4155 | type: "Scale" 4156 | bottom: "conv4_13_3x3" 4157 | top: "conv4_13_3x3" 4158 | scale_param { 4159 | bias_term: true 4160 | } 4161 | } 4162 | layer { 4163 | name: "conv4_13_3x3/relu" 4164 | type: "ReLU" 4165 | bottom: "conv4_13_3x3" 4166 | top: "conv4_13_3x3" 4167 | } 4168 | layer { 4169 | name: "conv4_13_1x1_increase" 4170 | type: "Convolution" 4171 | bottom: "conv4_13_3x3" 4172 | top: "conv4_13_1x1_increase" 4173 | convolution_param { 4174 | num_output: 1024 4175 | bias_term: false 4176 | pad: 0 4177 | kernel_size: 1 4178 | stride: 1 4179 | } 4180 | } 4181 | layer { 4182 | name: "conv4_13_1x1_increase/bn" 4183 | type: "BatchNorm" 4184 | bottom: "conv4_13_1x1_increase" 4185 | top: "conv4_13_1x1_increase" 4186 | batch_norm_param { 4187 | use_global_stats: true 4188 | } 4189 | } 4190 | layer { 4191 | name: "conv4_13_1x1_increase/scale" 4192 | type: "Scale" 4193 | bottom: "conv4_13_1x1_increase" 4194 | top: "conv4_13_1x1_increase" 4195 | scale_param { 4196 | bias_term: true 4197 | } 4198 | } 4199 | layer { 4200 | name: "conv4_13" 4201 | type: "Eltwise" 4202 | bottom: "conv4_12" 4203 | bottom: "conv4_13_1x1_increase" 4204 | top: "conv4_13" 4205 | eltwise_param { 4206 | operation: SUM 4207 | } 4208 | } 4209 | layer { 4210 | name: "conv4_13/relu" 4211 | type: "ReLU" 4212 | bottom: "conv4_13" 4213 | top: "conv4_13" 4214 | } 4215 | layer { 4216 | name: "conv4_14_1x1_reduce" 4217 | type: "Convolution" 4218 | bottom: "conv4_13" 4219 | top: "conv4_14_1x1_reduce" 4220 | convolution_param { 4221 | num_output: 256 4222 | bias_term: false 4223 | pad: 0 4224 | kernel_size: 1 4225 | stride: 1 4226 | } 4227 | } 4228 | layer { 4229 | name: "conv4_14_1x1_reduce/bn" 4230 | type: "BatchNorm" 4231 | bottom: "conv4_14_1x1_reduce" 4232 | top: "conv4_14_1x1_reduce" 4233 | batch_norm_param { 4234 | use_global_stats: true 4235 | } 4236 | } 4237 | layer { 4238 | name: "conv4_14_1x1_reduce/scale" 4239 | type: "Scale" 4240 | bottom: "conv4_14_1x1_reduce" 4241 | top: "conv4_14_1x1_reduce" 4242 | scale_param { 4243 | bias_term: true 4244 | } 4245 | } 4246 | layer { 4247 | name: "conv4_14_1x1_reduce/relu" 4248 | type: "ReLU" 4249 | bottom: "conv4_14_1x1_reduce" 4250 | top: "conv4_14_1x1_reduce" 4251 | } 4252 | layer { 4253 | name: "conv4_14_3x3" 4254 | type: "Convolution" 4255 | bottom: "conv4_14_1x1_reduce" 4256 | top: "conv4_14_3x3" 4257 | convolution_param { 4258 | num_output: 256 4259 | bias_term: false 4260 | pad: 1 4261 | kernel_size: 3 4262 | stride: 1 4263 | } 4264 | } 4265 | layer { 4266 | name: "conv4_14_3x3/bn" 4267 | type: "BatchNorm" 4268 | bottom: "conv4_14_3x3" 4269 | top: "conv4_14_3x3" 4270 | batch_norm_param { 4271 | use_global_stats: true 4272 | } 4273 | } 4274 | layer { 4275 | name: "conv4_14_3x3/scale" 4276 | type: "Scale" 4277 | bottom: "conv4_14_3x3" 4278 | top: "conv4_14_3x3" 4279 | scale_param { 4280 | bias_term: true 4281 | } 4282 | } 4283 | layer { 4284 | name: "conv4_14_3x3/relu" 4285 | type: "ReLU" 4286 | bottom: "conv4_14_3x3" 4287 | top: "conv4_14_3x3" 4288 | } 4289 | layer { 4290 | name: "conv4_14_1x1_increase" 4291 | type: "Convolution" 4292 | bottom: "conv4_14_3x3" 4293 | top: "conv4_14_1x1_increase" 4294 | convolution_param { 4295 | num_output: 1024 4296 | bias_term: false 4297 | pad: 0 4298 | kernel_size: 1 4299 | stride: 1 4300 | } 4301 | } 4302 | layer { 4303 | name: "conv4_14_1x1_increase/bn" 4304 | type: "BatchNorm" 4305 | bottom: "conv4_14_1x1_increase" 4306 | top: "conv4_14_1x1_increase" 4307 | batch_norm_param { 4308 | use_global_stats: true 4309 | } 4310 | } 4311 | layer { 4312 | name: "conv4_14_1x1_increase/scale" 4313 | type: "Scale" 4314 | bottom: "conv4_14_1x1_increase" 4315 | top: "conv4_14_1x1_increase" 4316 | scale_param { 4317 | bias_term: true 4318 | } 4319 | } 4320 | layer { 4321 | name: "conv4_14" 4322 | type: "Eltwise" 4323 | bottom: "conv4_13" 4324 | bottom: "conv4_14_1x1_increase" 4325 | top: "conv4_14" 4326 | eltwise_param { 4327 | operation: SUM 4328 | } 4329 | } 4330 | layer { 4331 | name: "conv4_14/relu" 4332 | type: "ReLU" 4333 | bottom: "conv4_14" 4334 | top: "conv4_14" 4335 | } 4336 | layer { 4337 | name: "conv4_15_1x1_reduce" 4338 | type: "Convolution" 4339 | bottom: "conv4_14" 4340 | top: "conv4_15_1x1_reduce" 4341 | convolution_param { 4342 | num_output: 256 4343 | bias_term: false 4344 | pad: 0 4345 | kernel_size: 1 4346 | stride: 1 4347 | } 4348 | } 4349 | layer { 4350 | name: "conv4_15_1x1_reduce/bn" 4351 | type: "BatchNorm" 4352 | bottom: "conv4_15_1x1_reduce" 4353 | top: "conv4_15_1x1_reduce" 4354 | batch_norm_param { 4355 | use_global_stats: true 4356 | } 4357 | } 4358 | layer { 4359 | name: "conv4_15_1x1_reduce/scale" 4360 | type: "Scale" 4361 | bottom: "conv4_15_1x1_reduce" 4362 | top: "conv4_15_1x1_reduce" 4363 | scale_param { 4364 | bias_term: true 4365 | } 4366 | } 4367 | layer { 4368 | name: "conv4_15_1x1_reduce/relu" 4369 | type: "ReLU" 4370 | bottom: "conv4_15_1x1_reduce" 4371 | top: "conv4_15_1x1_reduce" 4372 | } 4373 | layer { 4374 | name: "conv4_15_3x3" 4375 | type: "Convolution" 4376 | bottom: "conv4_15_1x1_reduce" 4377 | top: "conv4_15_3x3" 4378 | convolution_param { 4379 | num_output: 256 4380 | bias_term: false 4381 | pad: 1 4382 | kernel_size: 3 4383 | stride: 1 4384 | } 4385 | } 4386 | layer { 4387 | name: "conv4_15_3x3/bn" 4388 | type: "BatchNorm" 4389 | bottom: "conv4_15_3x3" 4390 | top: "conv4_15_3x3" 4391 | batch_norm_param { 4392 | use_global_stats: true 4393 | } 4394 | } 4395 | layer { 4396 | name: "conv4_15_3x3/scale" 4397 | type: "Scale" 4398 | bottom: "conv4_15_3x3" 4399 | top: "conv4_15_3x3" 4400 | scale_param { 4401 | bias_term: true 4402 | } 4403 | } 4404 | layer { 4405 | name: "conv4_15_3x3/relu" 4406 | type: "ReLU" 4407 | bottom: "conv4_15_3x3" 4408 | top: "conv4_15_3x3" 4409 | } 4410 | layer { 4411 | name: "conv4_15_1x1_increase" 4412 | type: "Convolution" 4413 | bottom: "conv4_15_3x3" 4414 | top: "conv4_15_1x1_increase" 4415 | convolution_param { 4416 | num_output: 1024 4417 | bias_term: false 4418 | pad: 0 4419 | kernel_size: 1 4420 | stride: 1 4421 | } 4422 | } 4423 | layer { 4424 | name: "conv4_15_1x1_increase/bn" 4425 | type: "BatchNorm" 4426 | bottom: "conv4_15_1x1_increase" 4427 | top: "conv4_15_1x1_increase" 4428 | batch_norm_param { 4429 | use_global_stats: true 4430 | } 4431 | } 4432 | layer { 4433 | name: "conv4_15_1x1_increase/scale" 4434 | type: "Scale" 4435 | bottom: "conv4_15_1x1_increase" 4436 | top: "conv4_15_1x1_increase" 4437 | scale_param { 4438 | bias_term: true 4439 | } 4440 | } 4441 | layer { 4442 | name: "conv4_15" 4443 | type: "Eltwise" 4444 | bottom: "conv4_14" 4445 | bottom: "conv4_15_1x1_increase" 4446 | top: "conv4_15" 4447 | eltwise_param { 4448 | operation: SUM 4449 | } 4450 | } 4451 | layer { 4452 | name: "conv4_15/relu" 4453 | type: "ReLU" 4454 | bottom: "conv4_15" 4455 | top: "conv4_15" 4456 | } 4457 | layer { 4458 | name: "conv4_16_1x1_reduce" 4459 | type: "Convolution" 4460 | bottom: "conv4_15" 4461 | top: "conv4_16_1x1_reduce" 4462 | convolution_param { 4463 | num_output: 256 4464 | bias_term: false 4465 | pad: 0 4466 | kernel_size: 1 4467 | stride: 1 4468 | } 4469 | } 4470 | layer { 4471 | name: "conv4_16_1x1_reduce/bn" 4472 | type: "BatchNorm" 4473 | bottom: "conv4_16_1x1_reduce" 4474 | top: "conv4_16_1x1_reduce" 4475 | batch_norm_param { 4476 | use_global_stats: true 4477 | } 4478 | } 4479 | layer { 4480 | name: "conv4_16_1x1_reduce/scale" 4481 | type: "Scale" 4482 | bottom: "conv4_16_1x1_reduce" 4483 | top: "conv4_16_1x1_reduce" 4484 | scale_param { 4485 | bias_term: true 4486 | } 4487 | } 4488 | layer { 4489 | name: "conv4_16_1x1_reduce/relu" 4490 | type: "ReLU" 4491 | bottom: "conv4_16_1x1_reduce" 4492 | top: "conv4_16_1x1_reduce" 4493 | } 4494 | layer { 4495 | name: "conv4_16_3x3" 4496 | type: "Convolution" 4497 | bottom: "conv4_16_1x1_reduce" 4498 | top: "conv4_16_3x3" 4499 | convolution_param { 4500 | num_output: 256 4501 | bias_term: false 4502 | pad: 1 4503 | kernel_size: 3 4504 | stride: 1 4505 | } 4506 | } 4507 | layer { 4508 | name: "conv4_16_3x3/bn" 4509 | type: "BatchNorm" 4510 | bottom: "conv4_16_3x3" 4511 | top: "conv4_16_3x3" 4512 | batch_norm_param { 4513 | use_global_stats: true 4514 | } 4515 | } 4516 | layer { 4517 | name: "conv4_16_3x3/scale" 4518 | type: "Scale" 4519 | bottom: "conv4_16_3x3" 4520 | top: "conv4_16_3x3" 4521 | scale_param { 4522 | bias_term: true 4523 | } 4524 | } 4525 | layer { 4526 | name: "conv4_16_3x3/relu" 4527 | type: "ReLU" 4528 | bottom: "conv4_16_3x3" 4529 | top: "conv4_16_3x3" 4530 | } 4531 | layer { 4532 | name: "conv4_16_1x1_increase" 4533 | type: "Convolution" 4534 | bottom: "conv4_16_3x3" 4535 | top: "conv4_16_1x1_increase" 4536 | convolution_param { 4537 | num_output: 1024 4538 | bias_term: false 4539 | pad: 0 4540 | kernel_size: 1 4541 | stride: 1 4542 | } 4543 | } 4544 | layer { 4545 | name: "conv4_16_1x1_increase/bn" 4546 | type: "BatchNorm" 4547 | bottom: "conv4_16_1x1_increase" 4548 | top: "conv4_16_1x1_increase" 4549 | batch_norm_param { 4550 | use_global_stats: true 4551 | } 4552 | } 4553 | layer { 4554 | name: "conv4_16_1x1_increase/scale" 4555 | type: "Scale" 4556 | bottom: "conv4_16_1x1_increase" 4557 | top: "conv4_16_1x1_increase" 4558 | scale_param { 4559 | bias_term: true 4560 | } 4561 | } 4562 | layer { 4563 | name: "conv4_16" 4564 | type: "Eltwise" 4565 | bottom: "conv4_15" 4566 | bottom: "conv4_16_1x1_increase" 4567 | top: "conv4_16" 4568 | eltwise_param { 4569 | operation: SUM 4570 | } 4571 | } 4572 | layer { 4573 | name: "conv4_16/relu" 4574 | type: "ReLU" 4575 | bottom: "conv4_16" 4576 | top: "conv4_16" 4577 | } 4578 | layer { 4579 | name: "conv4_17_1x1_reduce" 4580 | type: "Convolution" 4581 | bottom: "conv4_16" 4582 | top: "conv4_17_1x1_reduce" 4583 | convolution_param { 4584 | num_output: 256 4585 | bias_term: false 4586 | pad: 0 4587 | kernel_size: 1 4588 | stride: 1 4589 | } 4590 | } 4591 | layer { 4592 | name: "conv4_17_1x1_reduce/bn" 4593 | type: "BatchNorm" 4594 | bottom: "conv4_17_1x1_reduce" 4595 | top: "conv4_17_1x1_reduce" 4596 | batch_norm_param { 4597 | use_global_stats: true 4598 | } 4599 | } 4600 | layer { 4601 | name: "conv4_17_1x1_reduce/scale" 4602 | type: "Scale" 4603 | bottom: "conv4_17_1x1_reduce" 4604 | top: "conv4_17_1x1_reduce" 4605 | scale_param { 4606 | bias_term: true 4607 | } 4608 | } 4609 | layer { 4610 | name: "conv4_17_1x1_reduce/relu" 4611 | type: "ReLU" 4612 | bottom: "conv4_17_1x1_reduce" 4613 | top: "conv4_17_1x1_reduce" 4614 | } 4615 | layer { 4616 | name: "conv4_17_3x3" 4617 | type: "Convolution" 4618 | bottom: "conv4_17_1x1_reduce" 4619 | top: "conv4_17_3x3" 4620 | convolution_param { 4621 | num_output: 256 4622 | bias_term: false 4623 | pad: 1 4624 | kernel_size: 3 4625 | stride: 1 4626 | } 4627 | } 4628 | layer { 4629 | name: "conv4_17_3x3/bn" 4630 | type: "BatchNorm" 4631 | bottom: "conv4_17_3x3" 4632 | top: "conv4_17_3x3" 4633 | batch_norm_param { 4634 | use_global_stats: true 4635 | } 4636 | } 4637 | layer { 4638 | name: "conv4_17_3x3/scale" 4639 | type: "Scale" 4640 | bottom: "conv4_17_3x3" 4641 | top: "conv4_17_3x3" 4642 | scale_param { 4643 | bias_term: true 4644 | } 4645 | } 4646 | layer { 4647 | name: "conv4_17_3x3/relu" 4648 | type: "ReLU" 4649 | bottom: "conv4_17_3x3" 4650 | top: "conv4_17_3x3" 4651 | } 4652 | layer { 4653 | name: "conv4_17_1x1_increase" 4654 | type: "Convolution" 4655 | bottom: "conv4_17_3x3" 4656 | top: "conv4_17_1x1_increase" 4657 | convolution_param { 4658 | num_output: 1024 4659 | bias_term: false 4660 | pad: 0 4661 | kernel_size: 1 4662 | stride: 1 4663 | } 4664 | } 4665 | layer { 4666 | name: "conv4_17_1x1_increase/bn" 4667 | type: "BatchNorm" 4668 | bottom: "conv4_17_1x1_increase" 4669 | top: "conv4_17_1x1_increase" 4670 | batch_norm_param { 4671 | use_global_stats: true 4672 | } 4673 | } 4674 | layer { 4675 | name: "conv4_17_1x1_increase/scale" 4676 | type: "Scale" 4677 | bottom: "conv4_17_1x1_increase" 4678 | top: "conv4_17_1x1_increase" 4679 | scale_param { 4680 | bias_term: true 4681 | } 4682 | } 4683 | layer { 4684 | name: "conv4_17" 4685 | type: "Eltwise" 4686 | bottom: "conv4_16" 4687 | bottom: "conv4_17_1x1_increase" 4688 | top: "conv4_17" 4689 | eltwise_param { 4690 | operation: SUM 4691 | } 4692 | } 4693 | layer { 4694 | name: "conv4_17/relu" 4695 | type: "ReLU" 4696 | bottom: "conv4_17" 4697 | top: "conv4_17" 4698 | } 4699 | layer { 4700 | name: "conv4_18_1x1_reduce" 4701 | type: "Convolution" 4702 | bottom: "conv4_17" 4703 | top: "conv4_18_1x1_reduce" 4704 | convolution_param { 4705 | num_output: 256 4706 | bias_term: false 4707 | pad: 0 4708 | kernel_size: 1 4709 | stride: 1 4710 | } 4711 | } 4712 | layer { 4713 | name: "conv4_18_1x1_reduce/bn" 4714 | type: "BatchNorm" 4715 | bottom: "conv4_18_1x1_reduce" 4716 | top: "conv4_18_1x1_reduce" 4717 | batch_norm_param { 4718 | use_global_stats: true 4719 | } 4720 | } 4721 | layer { 4722 | name: "conv4_18_1x1_reduce/scale" 4723 | type: "Scale" 4724 | bottom: "conv4_18_1x1_reduce" 4725 | top: "conv4_18_1x1_reduce" 4726 | scale_param { 4727 | bias_term: true 4728 | } 4729 | } 4730 | layer { 4731 | name: "conv4_18_1x1_reduce/relu" 4732 | type: "ReLU" 4733 | bottom: "conv4_18_1x1_reduce" 4734 | top: "conv4_18_1x1_reduce" 4735 | } 4736 | layer { 4737 | name: "conv4_18_3x3" 4738 | type: "Convolution" 4739 | bottom: "conv4_18_1x1_reduce" 4740 | top: "conv4_18_3x3" 4741 | convolution_param { 4742 | num_output: 256 4743 | bias_term: false 4744 | pad: 1 4745 | kernel_size: 3 4746 | stride: 1 4747 | } 4748 | } 4749 | layer { 4750 | name: "conv4_18_3x3/bn" 4751 | type: "BatchNorm" 4752 | bottom: "conv4_18_3x3" 4753 | top: "conv4_18_3x3" 4754 | batch_norm_param { 4755 | use_global_stats: true 4756 | } 4757 | } 4758 | layer { 4759 | name: "conv4_18_3x3/scale" 4760 | type: "Scale" 4761 | bottom: "conv4_18_3x3" 4762 | top: "conv4_18_3x3" 4763 | scale_param { 4764 | bias_term: true 4765 | } 4766 | } 4767 | layer { 4768 | name: "conv4_18_3x3/relu" 4769 | type: "ReLU" 4770 | bottom: "conv4_18_3x3" 4771 | top: "conv4_18_3x3" 4772 | } 4773 | layer { 4774 | name: "conv4_18_1x1_increase" 4775 | type: "Convolution" 4776 | bottom: "conv4_18_3x3" 4777 | top: "conv4_18_1x1_increase" 4778 | convolution_param { 4779 | num_output: 1024 4780 | bias_term: false 4781 | pad: 0 4782 | kernel_size: 1 4783 | stride: 1 4784 | } 4785 | } 4786 | layer { 4787 | name: "conv4_18_1x1_increase/bn" 4788 | type: "BatchNorm" 4789 | bottom: "conv4_18_1x1_increase" 4790 | top: "conv4_18_1x1_increase" 4791 | batch_norm_param { 4792 | use_global_stats: true 4793 | } 4794 | } 4795 | layer { 4796 | name: "conv4_18_1x1_increase/scale" 4797 | type: "Scale" 4798 | bottom: "conv4_18_1x1_increase" 4799 | top: "conv4_18_1x1_increase" 4800 | scale_param { 4801 | bias_term: true 4802 | } 4803 | } 4804 | layer { 4805 | name: "conv4_18" 4806 | type: "Eltwise" 4807 | bottom: "conv4_17" 4808 | bottom: "conv4_18_1x1_increase" 4809 | top: "conv4_18" 4810 | eltwise_param { 4811 | operation: SUM 4812 | } 4813 | } 4814 | layer { 4815 | name: "conv4_18/relu" 4816 | type: "ReLU" 4817 | bottom: "conv4_18" 4818 | top: "conv4_18" 4819 | } 4820 | layer { 4821 | name: "conv4_19_1x1_reduce" 4822 | type: "Convolution" 4823 | bottom: "conv4_18" 4824 | top: "conv4_19_1x1_reduce" 4825 | convolution_param { 4826 | num_output: 256 4827 | bias_term: false 4828 | pad: 0 4829 | kernel_size: 1 4830 | stride: 1 4831 | } 4832 | } 4833 | layer { 4834 | name: "conv4_19_1x1_reduce/bn" 4835 | type: "BatchNorm" 4836 | bottom: "conv4_19_1x1_reduce" 4837 | top: "conv4_19_1x1_reduce" 4838 | batch_norm_param { 4839 | use_global_stats: true 4840 | } 4841 | } 4842 | layer { 4843 | name: "conv4_19_1x1_reduce/scale" 4844 | type: "Scale" 4845 | bottom: "conv4_19_1x1_reduce" 4846 | top: "conv4_19_1x1_reduce" 4847 | scale_param { 4848 | bias_term: true 4849 | } 4850 | } 4851 | layer { 4852 | name: "conv4_19_1x1_reduce/relu" 4853 | type: "ReLU" 4854 | bottom: "conv4_19_1x1_reduce" 4855 | top: "conv4_19_1x1_reduce" 4856 | } 4857 | layer { 4858 | name: "conv4_19_3x3" 4859 | type: "Convolution" 4860 | bottom: "conv4_19_1x1_reduce" 4861 | top: "conv4_19_3x3" 4862 | convolution_param { 4863 | num_output: 256 4864 | bias_term: false 4865 | pad: 1 4866 | kernel_size: 3 4867 | stride: 1 4868 | } 4869 | } 4870 | layer { 4871 | name: "conv4_19_3x3/bn" 4872 | type: "BatchNorm" 4873 | bottom: "conv4_19_3x3" 4874 | top: "conv4_19_3x3" 4875 | batch_norm_param { 4876 | use_global_stats: true 4877 | } 4878 | } 4879 | layer { 4880 | name: "conv4_19_3x3/scale" 4881 | type: "Scale" 4882 | bottom: "conv4_19_3x3" 4883 | top: "conv4_19_3x3" 4884 | scale_param { 4885 | bias_term: true 4886 | } 4887 | } 4888 | layer { 4889 | name: "conv4_19_3x3/relu" 4890 | type: "ReLU" 4891 | bottom: "conv4_19_3x3" 4892 | top: "conv4_19_3x3" 4893 | } 4894 | layer { 4895 | name: "conv4_19_1x1_increase" 4896 | type: "Convolution" 4897 | bottom: "conv4_19_3x3" 4898 | top: "conv4_19_1x1_increase" 4899 | convolution_param { 4900 | num_output: 1024 4901 | bias_term: false 4902 | pad: 0 4903 | kernel_size: 1 4904 | stride: 1 4905 | } 4906 | } 4907 | layer { 4908 | name: "conv4_19_1x1_increase/bn" 4909 | type: "BatchNorm" 4910 | bottom: "conv4_19_1x1_increase" 4911 | top: "conv4_19_1x1_increase" 4912 | batch_norm_param { 4913 | use_global_stats: true 4914 | } 4915 | } 4916 | layer { 4917 | name: "conv4_19_1x1_increase/scale" 4918 | type: "Scale" 4919 | bottom: "conv4_19_1x1_increase" 4920 | top: "conv4_19_1x1_increase" 4921 | scale_param { 4922 | bias_term: true 4923 | } 4924 | } 4925 | layer { 4926 | name: "conv4_19" 4927 | type: "Eltwise" 4928 | bottom: "conv4_18" 4929 | bottom: "conv4_19_1x1_increase" 4930 | top: "conv4_19" 4931 | eltwise_param { 4932 | operation: SUM 4933 | } 4934 | } 4935 | layer { 4936 | name: "conv4_19/relu" 4937 | type: "ReLU" 4938 | bottom: "conv4_19" 4939 | top: "conv4_19" 4940 | } 4941 | layer { 4942 | name: "conv4_20_1x1_reduce" 4943 | type: "Convolution" 4944 | bottom: "conv4_19" 4945 | top: "conv4_20_1x1_reduce" 4946 | convolution_param { 4947 | num_output: 256 4948 | bias_term: false 4949 | pad: 0 4950 | kernel_size: 1 4951 | stride: 1 4952 | } 4953 | } 4954 | layer { 4955 | name: "conv4_20_1x1_reduce/bn" 4956 | type: "BatchNorm" 4957 | bottom: "conv4_20_1x1_reduce" 4958 | top: "conv4_20_1x1_reduce" 4959 | batch_norm_param { 4960 | use_global_stats: true 4961 | } 4962 | } 4963 | layer { 4964 | name: "conv4_20_1x1_reduce/scale" 4965 | type: "Scale" 4966 | bottom: "conv4_20_1x1_reduce" 4967 | top: "conv4_20_1x1_reduce" 4968 | scale_param { 4969 | bias_term: true 4970 | } 4971 | } 4972 | layer { 4973 | name: "conv4_20_1x1_reduce/relu" 4974 | type: "ReLU" 4975 | bottom: "conv4_20_1x1_reduce" 4976 | top: "conv4_20_1x1_reduce" 4977 | } 4978 | layer { 4979 | name: "conv4_20_3x3" 4980 | type: "Convolution" 4981 | bottom: "conv4_20_1x1_reduce" 4982 | top: "conv4_20_3x3" 4983 | convolution_param { 4984 | num_output: 256 4985 | bias_term: false 4986 | pad: 1 4987 | kernel_size: 3 4988 | stride: 1 4989 | } 4990 | } 4991 | layer { 4992 | name: "conv4_20_3x3/bn" 4993 | type: "BatchNorm" 4994 | bottom: "conv4_20_3x3" 4995 | top: "conv4_20_3x3" 4996 | batch_norm_param { 4997 | use_global_stats: true 4998 | } 4999 | } 5000 | layer { 5001 | name: "conv4_20_3x3/scale" 5002 | type: "Scale" 5003 | bottom: "conv4_20_3x3" 5004 | top: "conv4_20_3x3" 5005 | scale_param { 5006 | bias_term: true 5007 | } 5008 | } 5009 | layer { 5010 | name: "conv4_20_3x3/relu" 5011 | type: "ReLU" 5012 | bottom: "conv4_20_3x3" 5013 | top: "conv4_20_3x3" 5014 | } 5015 | layer { 5016 | name: "conv4_20_1x1_increase" 5017 | type: "Convolution" 5018 | bottom: "conv4_20_3x3" 5019 | top: "conv4_20_1x1_increase" 5020 | convolution_param { 5021 | num_output: 1024 5022 | bias_term: false 5023 | pad: 0 5024 | kernel_size: 1 5025 | stride: 1 5026 | } 5027 | } 5028 | layer { 5029 | name: "conv4_20_1x1_increase/bn" 5030 | type: "BatchNorm" 5031 | bottom: "conv4_20_1x1_increase" 5032 | top: "conv4_20_1x1_increase" 5033 | batch_norm_param { 5034 | use_global_stats: true 5035 | } 5036 | } 5037 | layer { 5038 | name: "conv4_20_1x1_increase/scale" 5039 | type: "Scale" 5040 | bottom: "conv4_20_1x1_increase" 5041 | top: "conv4_20_1x1_increase" 5042 | scale_param { 5043 | bias_term: true 5044 | } 5045 | } 5046 | layer { 5047 | name: "conv4_20" 5048 | type: "Eltwise" 5049 | bottom: "conv4_19" 5050 | bottom: "conv4_20_1x1_increase" 5051 | top: "conv4_20" 5052 | eltwise_param { 5053 | operation: SUM 5054 | } 5055 | } 5056 | layer { 5057 | name: "conv4_20/relu" 5058 | type: "ReLU" 5059 | bottom: "conv4_20" 5060 | top: "conv4_20" 5061 | } 5062 | layer { 5063 | name: "conv4_21_1x1_reduce" 5064 | type: "Convolution" 5065 | bottom: "conv4_20" 5066 | top: "conv4_21_1x1_reduce" 5067 | convolution_param { 5068 | num_output: 256 5069 | bias_term: false 5070 | pad: 0 5071 | kernel_size: 1 5072 | stride: 1 5073 | } 5074 | } 5075 | layer { 5076 | name: "conv4_21_1x1_reduce/bn" 5077 | type: "BatchNorm" 5078 | bottom: "conv4_21_1x1_reduce" 5079 | top: "conv4_21_1x1_reduce" 5080 | batch_norm_param { 5081 | use_global_stats: true 5082 | } 5083 | } 5084 | layer { 5085 | name: "conv4_21_1x1_reduce/scale" 5086 | type: "Scale" 5087 | bottom: "conv4_21_1x1_reduce" 5088 | top: "conv4_21_1x1_reduce" 5089 | scale_param { 5090 | bias_term: true 5091 | } 5092 | } 5093 | layer { 5094 | name: "conv4_21_1x1_reduce/relu" 5095 | type: "ReLU" 5096 | bottom: "conv4_21_1x1_reduce" 5097 | top: "conv4_21_1x1_reduce" 5098 | } 5099 | layer { 5100 | name: "conv4_21_3x3" 5101 | type: "Convolution" 5102 | bottom: "conv4_21_1x1_reduce" 5103 | top: "conv4_21_3x3" 5104 | convolution_param { 5105 | num_output: 256 5106 | bias_term: false 5107 | pad: 1 5108 | kernel_size: 3 5109 | stride: 1 5110 | } 5111 | } 5112 | layer { 5113 | name: "conv4_21_3x3/bn" 5114 | type: "BatchNorm" 5115 | bottom: "conv4_21_3x3" 5116 | top: "conv4_21_3x3" 5117 | batch_norm_param { 5118 | use_global_stats: true 5119 | } 5120 | } 5121 | layer { 5122 | name: "conv4_21_3x3/scale" 5123 | type: "Scale" 5124 | bottom: "conv4_21_3x3" 5125 | top: "conv4_21_3x3" 5126 | scale_param { 5127 | bias_term: true 5128 | } 5129 | } 5130 | layer { 5131 | name: "conv4_21_3x3/relu" 5132 | type: "ReLU" 5133 | bottom: "conv4_21_3x3" 5134 | top: "conv4_21_3x3" 5135 | } 5136 | layer { 5137 | name: "conv4_21_1x1_increase" 5138 | type: "Convolution" 5139 | bottom: "conv4_21_3x3" 5140 | top: "conv4_21_1x1_increase" 5141 | convolution_param { 5142 | num_output: 1024 5143 | bias_term: false 5144 | pad: 0 5145 | kernel_size: 1 5146 | stride: 1 5147 | } 5148 | } 5149 | layer { 5150 | name: "conv4_21_1x1_increase/bn" 5151 | type: "BatchNorm" 5152 | bottom: "conv4_21_1x1_increase" 5153 | top: "conv4_21_1x1_increase" 5154 | batch_norm_param { 5155 | use_global_stats: true 5156 | } 5157 | } 5158 | layer { 5159 | name: "conv4_21_1x1_increase/scale" 5160 | type: "Scale" 5161 | bottom: "conv4_21_1x1_increase" 5162 | top: "conv4_21_1x1_increase" 5163 | scale_param { 5164 | bias_term: true 5165 | } 5166 | } 5167 | layer { 5168 | name: "conv4_21" 5169 | type: "Eltwise" 5170 | bottom: "conv4_20" 5171 | bottom: "conv4_21_1x1_increase" 5172 | top: "conv4_21" 5173 | eltwise_param { 5174 | operation: SUM 5175 | } 5176 | } 5177 | layer { 5178 | name: "conv4_21/relu" 5179 | type: "ReLU" 5180 | bottom: "conv4_21" 5181 | top: "conv4_21" 5182 | } 5183 | layer { 5184 | name: "conv4_22_1x1_reduce" 5185 | type: "Convolution" 5186 | bottom: "conv4_21" 5187 | top: "conv4_22_1x1_reduce" 5188 | convolution_param { 5189 | num_output: 256 5190 | bias_term: false 5191 | pad: 0 5192 | kernel_size: 1 5193 | stride: 1 5194 | } 5195 | } 5196 | layer { 5197 | name: "conv4_22_1x1_reduce/bn" 5198 | type: "BatchNorm" 5199 | bottom: "conv4_22_1x1_reduce" 5200 | top: "conv4_22_1x1_reduce" 5201 | batch_norm_param { 5202 | use_global_stats: true 5203 | } 5204 | } 5205 | layer { 5206 | name: "conv4_22_1x1_reduce/scale" 5207 | type: "Scale" 5208 | bottom: "conv4_22_1x1_reduce" 5209 | top: "conv4_22_1x1_reduce" 5210 | scale_param { 5211 | bias_term: true 5212 | } 5213 | } 5214 | layer { 5215 | name: "conv4_22_1x1_reduce/relu" 5216 | type: "ReLU" 5217 | bottom: "conv4_22_1x1_reduce" 5218 | top: "conv4_22_1x1_reduce" 5219 | } 5220 | layer { 5221 | name: "conv4_22_3x3" 5222 | type: "Convolution" 5223 | bottom: "conv4_22_1x1_reduce" 5224 | top: "conv4_22_3x3" 5225 | convolution_param { 5226 | num_output: 256 5227 | bias_term: false 5228 | pad: 1 5229 | kernel_size: 3 5230 | stride: 1 5231 | } 5232 | } 5233 | layer { 5234 | name: "conv4_22_3x3/bn" 5235 | type: "BatchNorm" 5236 | bottom: "conv4_22_3x3" 5237 | top: "conv4_22_3x3" 5238 | batch_norm_param { 5239 | use_global_stats: true 5240 | } 5241 | } 5242 | layer { 5243 | name: "conv4_22_3x3/scale" 5244 | type: "Scale" 5245 | bottom: "conv4_22_3x3" 5246 | top: "conv4_22_3x3" 5247 | scale_param { 5248 | bias_term: true 5249 | } 5250 | } 5251 | layer { 5252 | name: "conv4_22_3x3/relu" 5253 | type: "ReLU" 5254 | bottom: "conv4_22_3x3" 5255 | top: "conv4_22_3x3" 5256 | } 5257 | layer { 5258 | name: "conv4_22_1x1_increase" 5259 | type: "Convolution" 5260 | bottom: "conv4_22_3x3" 5261 | top: "conv4_22_1x1_increase" 5262 | convolution_param { 5263 | num_output: 1024 5264 | bias_term: false 5265 | pad: 0 5266 | kernel_size: 1 5267 | stride: 1 5268 | } 5269 | } 5270 | layer { 5271 | name: "conv4_22_1x1_increase/bn" 5272 | type: "BatchNorm" 5273 | bottom: "conv4_22_1x1_increase" 5274 | top: "conv4_22_1x1_increase" 5275 | batch_norm_param { 5276 | use_global_stats: true 5277 | } 5278 | } 5279 | layer { 5280 | name: "conv4_22_1x1_increase/scale" 5281 | type: "Scale" 5282 | bottom: "conv4_22_1x1_increase" 5283 | top: "conv4_22_1x1_increase" 5284 | scale_param { 5285 | bias_term: true 5286 | } 5287 | } 5288 | layer { 5289 | name: "conv4_22" 5290 | type: "Eltwise" 5291 | bottom: "conv4_21" 5292 | bottom: "conv4_22_1x1_increase" 5293 | top: "conv4_22" 5294 | eltwise_param { 5295 | operation: SUM 5296 | } 5297 | } 5298 | layer { 5299 | name: "conv4_22/relu" 5300 | type: "ReLU" 5301 | bottom: "conv4_22" 5302 | top: "conv4_22" 5303 | } 5304 | layer { 5305 | name: "conv4_23_1x1_reduce" 5306 | type: "Convolution" 5307 | bottom: "conv4_22" 5308 | top: "conv4_23_1x1_reduce" 5309 | convolution_param { 5310 | num_output: 256 5311 | bias_term: false 5312 | pad: 0 5313 | kernel_size: 1 5314 | stride: 1 5315 | } 5316 | } 5317 | layer { 5318 | name: "conv4_23_1x1_reduce/bn" 5319 | type: "BatchNorm" 5320 | bottom: "conv4_23_1x1_reduce" 5321 | top: "conv4_23_1x1_reduce" 5322 | batch_norm_param { 5323 | use_global_stats: true 5324 | } 5325 | } 5326 | layer { 5327 | name: "conv4_23_1x1_reduce/scale" 5328 | type: "Scale" 5329 | bottom: "conv4_23_1x1_reduce" 5330 | top: "conv4_23_1x1_reduce" 5331 | scale_param { 5332 | bias_term: true 5333 | } 5334 | } 5335 | layer { 5336 | name: "conv4_23_1x1_reduce/relu" 5337 | type: "ReLU" 5338 | bottom: "conv4_23_1x1_reduce" 5339 | top: "conv4_23_1x1_reduce" 5340 | } 5341 | layer { 5342 | name: "conv4_23_3x3" 5343 | type: "Convolution" 5344 | bottom: "conv4_23_1x1_reduce" 5345 | top: "conv4_23_3x3" 5346 | convolution_param { 5347 | num_output: 256 5348 | bias_term: false 5349 | pad: 1 5350 | kernel_size: 3 5351 | stride: 1 5352 | } 5353 | } 5354 | layer { 5355 | name: "conv4_23_3x3/bn" 5356 | type: "BatchNorm" 5357 | bottom: "conv4_23_3x3" 5358 | top: "conv4_23_3x3" 5359 | batch_norm_param { 5360 | use_global_stats: true 5361 | } 5362 | } 5363 | layer { 5364 | name: "conv4_23_3x3/scale" 5365 | type: "Scale" 5366 | bottom: "conv4_23_3x3" 5367 | top: "conv4_23_3x3" 5368 | scale_param { 5369 | bias_term: true 5370 | } 5371 | } 5372 | layer { 5373 | name: "conv4_23_3x3/relu" 5374 | type: "ReLU" 5375 | bottom: "conv4_23_3x3" 5376 | top: "conv4_23_3x3" 5377 | } 5378 | layer { 5379 | name: "conv4_23_1x1_increase" 5380 | type: "Convolution" 5381 | bottom: "conv4_23_3x3" 5382 | top: "conv4_23_1x1_increase" 5383 | convolution_param { 5384 | num_output: 1024 5385 | bias_term: false 5386 | pad: 0 5387 | kernel_size: 1 5388 | stride: 1 5389 | } 5390 | } 5391 | layer { 5392 | name: "conv4_23_1x1_increase/bn" 5393 | type: "BatchNorm" 5394 | bottom: "conv4_23_1x1_increase" 5395 | top: "conv4_23_1x1_increase" 5396 | batch_norm_param { 5397 | use_global_stats: true 5398 | } 5399 | } 5400 | layer { 5401 | name: "conv4_23_1x1_increase/scale" 5402 | type: "Scale" 5403 | bottom: "conv4_23_1x1_increase" 5404 | top: "conv4_23_1x1_increase" 5405 | scale_param { 5406 | bias_term: true 5407 | } 5408 | } 5409 | layer { 5410 | name: "conv4_23" 5411 | type: "Eltwise" 5412 | bottom: "conv4_22" 5413 | bottom: "conv4_23_1x1_increase" 5414 | top: "conv4_23" 5415 | eltwise_param { 5416 | operation: SUM 5417 | } 5418 | } 5419 | layer { 5420 | name: "conv4_23/relu" 5421 | type: "ReLU" 5422 | bottom: "conv4_23" 5423 | top: "conv4_23" 5424 | } 5425 | layer { 5426 | name: "conv5_1_1x1_reduce" 5427 | type: "Convolution" 5428 | bottom: "conv4_23" 5429 | top: "conv5_1_1x1_reduce" 5430 | convolution_param { 5431 | num_output: 512 5432 | bias_term: false 5433 | pad: 0 5434 | kernel_size: 1 5435 | stride: 1 5436 | } 5437 | } 5438 | layer { 5439 | name: "conv5_1_1x1_reduce/bn" 5440 | type: "BatchNorm" 5441 | bottom: "conv5_1_1x1_reduce" 5442 | top: "conv5_1_1x1_reduce" 5443 | batch_norm_param { 5444 | use_global_stats: true 5445 | } 5446 | } 5447 | layer { 5448 | name: "conv5_1_1x1_reduce/scale" 5449 | type: "Scale" 5450 | bottom: "conv5_1_1x1_reduce" 5451 | top: "conv5_1_1x1_reduce" 5452 | scale_param { 5453 | bias_term: true 5454 | } 5455 | } 5456 | layer { 5457 | name: "conv5_1_1x1_reduce/relu" 5458 | type: "ReLU" 5459 | bottom: "conv5_1_1x1_reduce" 5460 | top: "conv5_1_1x1_reduce" 5461 | } 5462 | layer { 5463 | name: "conv5_1_3x3" 5464 | type: "Convolution" 5465 | bottom: "conv5_1_1x1_reduce" 5466 | top: "conv5_1_3x3" 5467 | convolution_param { 5468 | num_output: 512 5469 | bias_term: false 5470 | pad: 1 5471 | kernel_size: 3 5472 | stride: 2 5473 | } 5474 | } 5475 | layer { 5476 | name: "conv5_1_3x3/bn" 5477 | type: "BatchNorm" 5478 | bottom: "conv5_1_3x3" 5479 | top: "conv5_1_3x3" 5480 | batch_norm_param { 5481 | use_global_stats: true 5482 | } 5483 | } 5484 | layer { 5485 | name: "conv5_1_3x3/scale" 5486 | type: "Scale" 5487 | bottom: "conv5_1_3x3" 5488 | top: "conv5_1_3x3" 5489 | scale_param { 5490 | bias_term: true 5491 | } 5492 | } 5493 | layer { 5494 | name: "conv5_1_3x3/relu" 5495 | type: "ReLU" 5496 | bottom: "conv5_1_3x3" 5497 | top: "conv5_1_3x3" 5498 | } 5499 | layer { 5500 | name: "conv5_1_1x1_increase" 5501 | type: "Convolution" 5502 | bottom: "conv5_1_3x3" 5503 | top: "conv5_1_1x1_increase" 5504 | convolution_param { 5505 | num_output: 2048 5506 | bias_term: false 5507 | pad: 0 5508 | kernel_size: 1 5509 | stride: 1 5510 | } 5511 | } 5512 | layer { 5513 | name: "conv5_1_1x1_increase/bn" 5514 | type: "BatchNorm" 5515 | bottom: "conv5_1_1x1_increase" 5516 | top: "conv5_1_1x1_increase" 5517 | batch_norm_param { 5518 | use_global_stats: true 5519 | } 5520 | } 5521 | layer { 5522 | name: "conv5_1_1x1_increase/scale" 5523 | type: "Scale" 5524 | bottom: "conv5_1_1x1_increase" 5525 | top: "conv5_1_1x1_increase" 5526 | scale_param { 5527 | bias_term: true 5528 | } 5529 | } 5530 | layer { 5531 | name: "conv5_1_1x1_proj" 5532 | type: "Convolution" 5533 | bottom: "conv4_23" 5534 | top: "conv5_1_1x1_proj" 5535 | convolution_param { 5536 | num_output: 2048 5537 | bias_term: false 5538 | pad: 0 5539 | kernel_size: 1 5540 | stride: 2 5541 | } 5542 | } 5543 | layer { 5544 | name: "conv5_1_1x1_proj/bn" 5545 | type: "BatchNorm" 5546 | bottom: "conv5_1_1x1_proj" 5547 | top: "conv5_1_1x1_proj" 5548 | batch_norm_param { 5549 | use_global_stats: true 5550 | } 5551 | } 5552 | layer { 5553 | name: "conv5_1_1x1_proj/scale" 5554 | type: "Scale" 5555 | bottom: "conv5_1_1x1_proj" 5556 | top: "conv5_1_1x1_proj" 5557 | scale_param { 5558 | bias_term: true 5559 | } 5560 | } 5561 | layer { 5562 | name: "conv5_1" 5563 | type: "Eltwise" 5564 | bottom: "conv5_1_1x1_proj" 5565 | bottom: "conv5_1_1x1_increase" 5566 | top: "conv5_1" 5567 | eltwise_param { 5568 | operation: SUM 5569 | } 5570 | } 5571 | layer { 5572 | name: "conv5_1/relu" 5573 | type: "ReLU" 5574 | bottom: "conv5_1" 5575 | top: "conv5_1" 5576 | } 5577 | layer { 5578 | name: "conv5_2_1x1_reduce" 5579 | type: "Convolution" 5580 | bottom: "conv5_1" 5581 | top: "conv5_2_1x1_reduce" 5582 | convolution_param { 5583 | num_output: 512 5584 | bias_term: false 5585 | pad: 0 5586 | kernel_size: 1 5587 | stride: 1 5588 | } 5589 | } 5590 | layer { 5591 | name: "conv5_2_1x1_reduce/bn" 5592 | type: "BatchNorm" 5593 | bottom: "conv5_2_1x1_reduce" 5594 | top: "conv5_2_1x1_reduce" 5595 | batch_norm_param { 5596 | use_global_stats: true 5597 | } 5598 | } 5599 | layer { 5600 | name: "conv5_2_1x1_reduce/scale" 5601 | type: "Scale" 5602 | bottom: "conv5_2_1x1_reduce" 5603 | top: "conv5_2_1x1_reduce" 5604 | scale_param { 5605 | bias_term: true 5606 | } 5607 | } 5608 | layer { 5609 | name: "conv5_2_1x1_reduce/relu" 5610 | type: "ReLU" 5611 | bottom: "conv5_2_1x1_reduce" 5612 | top: "conv5_2_1x1_reduce" 5613 | } 5614 | layer { 5615 | name: "conv5_2_3x3" 5616 | type: "Convolution" 5617 | bottom: "conv5_2_1x1_reduce" 5618 | top: "conv5_2_3x3" 5619 | convolution_param { 5620 | num_output: 512 5621 | bias_term: false 5622 | pad: 1 5623 | kernel_size: 3 5624 | stride: 1 5625 | } 5626 | } 5627 | layer { 5628 | name: "conv5_2_3x3/bn" 5629 | type: "BatchNorm" 5630 | bottom: "conv5_2_3x3" 5631 | top: "conv5_2_3x3" 5632 | batch_norm_param { 5633 | use_global_stats: true 5634 | } 5635 | } 5636 | layer { 5637 | name: "conv5_2_3x3/scale" 5638 | type: "Scale" 5639 | bottom: "conv5_2_3x3" 5640 | top: "conv5_2_3x3" 5641 | scale_param { 5642 | bias_term: true 5643 | } 5644 | } 5645 | layer { 5646 | name: "conv5_2_3x3/relu" 5647 | type: "ReLU" 5648 | bottom: "conv5_2_3x3" 5649 | top: "conv5_2_3x3" 5650 | } 5651 | layer { 5652 | name: "conv5_2_1x1_increase" 5653 | type: "Convolution" 5654 | bottom: "conv5_2_3x3" 5655 | top: "conv5_2_1x1_increase" 5656 | convolution_param { 5657 | num_output: 2048 5658 | bias_term: false 5659 | pad: 0 5660 | kernel_size: 1 5661 | stride: 1 5662 | } 5663 | } 5664 | layer { 5665 | name: "conv5_2_1x1_increase/bn" 5666 | type: "BatchNorm" 5667 | bottom: "conv5_2_1x1_increase" 5668 | top: "conv5_2_1x1_increase" 5669 | batch_norm_param { 5670 | use_global_stats: true 5671 | } 5672 | } 5673 | layer { 5674 | name: "conv5_2_1x1_increase/scale" 5675 | type: "Scale" 5676 | bottom: "conv5_2_1x1_increase" 5677 | top: "conv5_2_1x1_increase" 5678 | scale_param { 5679 | bias_term: true 5680 | } 5681 | } 5682 | layer { 5683 | name: "conv5_2" 5684 | type: "Eltwise" 5685 | bottom: "conv5_1" 5686 | bottom: "conv5_2_1x1_increase" 5687 | top: "conv5_2" 5688 | eltwise_param { 5689 | operation: SUM 5690 | } 5691 | } 5692 | layer { 5693 | name: "conv5_2/relu" 5694 | type: "ReLU" 5695 | bottom: "conv5_2" 5696 | top: "conv5_2" 5697 | } 5698 | layer { 5699 | name: "conv5_3_1x1_reduce" 5700 | type: "Convolution" 5701 | bottom: "conv5_2" 5702 | top: "conv5_3_1x1_reduce" 5703 | convolution_param { 5704 | num_output: 512 5705 | bias_term: false 5706 | pad: 0 5707 | kernel_size: 1 5708 | stride: 1 5709 | } 5710 | } 5711 | layer { 5712 | name: "conv5_3_1x1_reduce/bn" 5713 | type: "BatchNorm" 5714 | bottom: "conv5_3_1x1_reduce" 5715 | top: "conv5_3_1x1_reduce" 5716 | batch_norm_param { 5717 | use_global_stats: true 5718 | } 5719 | } 5720 | layer { 5721 | name: "conv5_3_1x1_reduce/scale" 5722 | type: "Scale" 5723 | bottom: "conv5_3_1x1_reduce" 5724 | top: "conv5_3_1x1_reduce" 5725 | scale_param { 5726 | bias_term: true 5727 | } 5728 | } 5729 | layer { 5730 | name: "conv5_3_1x1_reduce/relu" 5731 | type: "ReLU" 5732 | bottom: "conv5_3_1x1_reduce" 5733 | top: "conv5_3_1x1_reduce" 5734 | } 5735 | layer { 5736 | name: "conv5_3_3x3" 5737 | type: "Convolution" 5738 | bottom: "conv5_3_1x1_reduce" 5739 | top: "conv5_3_3x3" 5740 | convolution_param { 5741 | num_output: 512 5742 | bias_term: false 5743 | pad: 1 5744 | kernel_size: 3 5745 | stride: 1 5746 | } 5747 | } 5748 | layer { 5749 | name: "conv5_3_3x3/bn" 5750 | type: "BatchNorm" 5751 | bottom: "conv5_3_3x3" 5752 | top: "conv5_3_3x3" 5753 | batch_norm_param { 5754 | use_global_stats: true 5755 | } 5756 | } 5757 | layer { 5758 | name: "conv5_3_3x3/scale" 5759 | type: "Scale" 5760 | bottom: "conv5_3_3x3" 5761 | top: "conv5_3_3x3" 5762 | scale_param { 5763 | bias_term: true 5764 | } 5765 | } 5766 | layer { 5767 | name: "conv5_3_3x3/relu" 5768 | type: "ReLU" 5769 | bottom: "conv5_3_3x3" 5770 | top: "conv5_3_3x3" 5771 | } 5772 | layer { 5773 | name: "conv5_3_1x1_increase" 5774 | type: "Convolution" 5775 | bottom: "conv5_3_3x3" 5776 | top: "conv5_3_1x1_increase" 5777 | convolution_param { 5778 | num_output: 2048 5779 | bias_term: false 5780 | pad: 0 5781 | kernel_size: 1 5782 | stride: 1 5783 | } 5784 | } 5785 | layer { 5786 | name: "conv5_3_1x1_increase/bn" 5787 | type: "BatchNorm" 5788 | bottom: "conv5_3_1x1_increase" 5789 | top: "conv5_3_1x1_increase" 5790 | batch_norm_param { 5791 | use_global_stats: true 5792 | } 5793 | } 5794 | layer { 5795 | name: "conv5_3_1x1_increase/scale" 5796 | type: "Scale" 5797 | bottom: "conv5_3_1x1_increase" 5798 | top: "conv5_3_1x1_increase" 5799 | scale_param { 5800 | bias_term: true 5801 | } 5802 | } 5803 | layer { 5804 | name: "conv5_3" 5805 | type: "Eltwise" 5806 | bottom: "conv5_2" 5807 | bottom: "conv5_3_1x1_increase" 5808 | top: "conv5_3" 5809 | eltwise_param { 5810 | operation: SUM 5811 | } 5812 | } 5813 | layer { 5814 | name: "conv5_3/relu" 5815 | type: "ReLU" 5816 | bottom: "conv5_3" 5817 | top: "conv5_3" 5818 | } 5819 | layer { 5820 | name: "pool5/7x7_s1" 5821 | type: "Pooling" 5822 | bottom: "conv5_3" 5823 | top: "pool5/7x7_s1" 5824 | pooling_param { 5825 | pool: AVE 5826 | kernel_size: 7 5827 | stride: 1 5828 | } 5829 | } 5830 | layer { 5831 | name: "classifier" 5832 | type: "InnerProduct" 5833 | bottom: "pool5/7x7_s1" 5834 | top: "classifier" 5835 | inner_product_param { 5836 | num_output: 365 5837 | } 5838 | } 5839 | layer { 5840 | name: "prob" 5841 | type: "Softmax" 5842 | bottom: "classifier" 5843 | top: "prob" 5844 | } 5845 | --------------------------------------------------------------------------------