Repository: KaimingHe/deep-residual-networks Branch: master Commit: a7026cb6d478 Files: 6 Total size: 199.4 KB Directory structure: gitextract_rc3c25mq/ ├── .gitmodules ├── LICENSE ├── README.md └── prototxt/ ├── ResNet-101-deploy.prototxt ├── ResNet-152-deploy.prototxt └── ResNet-50-deploy.prototxt ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitmodules ================================================ [submodule "caffe"] path = caffe url = https://github.com/BVLC/caffe.git branch = master ================================================ FILE: LICENSE ================================================ The MIT License (MIT) Copyright (c) 2016 Shaoqing Ren Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================ # Deep Residual Networks By [Kaiming He](http://kaiminghe.com), [Xiangyu Zhang](https://scholar.google.com/citations?user=yuB-cfoAAAAJ&hl=en), [Shaoqing Ren](http://home.ustc.edu.cn/~sqren/), [Jian Sun](http://research.microsoft.com/en-us/people/jiansun/). Microsoft Research Asia (MSRA). ### Table of Contents 0. [Introduction](#introduction) 0. [Citation](#citation) 0. [Disclaimer and known issues](#disclaimer-and-known-issues) 0. [Models](#models) 0. [Results](#results) 0. [Third-party re-implementations](#third-party-re-implementations) ### Introduction This repository contains the original models (ResNet-50, ResNet-101, and ResNet-152) described in the paper "Deep Residual Learning for Image Recognition" (http://arxiv.org/abs/1512.03385). These models are those used in [ILSVRC] (http://image-net.org/challenges/LSVRC/2015/) and [COCO](http://mscoco.org/dataset/#detections-challenge2015) 2015 competitions, which won the 1st places in: ImageNet classification, ImageNet detection, ImageNet localization, COCO detection, and COCO segmentation. **Note** 0. Re-implementations with **training code** and models from Facebook AI Research (FAIR): [blog](http://torch.ch/blog/2016/02/04/resnets.html), [code](https://github.com/facebook/fb.resnet.torch) 0. Code of improved **1K-layer ResNets** with 4.62% test error on CIFAR-10 in our new arXiv paper: https://github.com/KaimingHe/resnet-1k-layers ### Citation If you use these models in your research, please cite: @article{He2015, author = {Kaiming He and Xiangyu Zhang and Shaoqing Ren and Jian Sun}, title = {Deep Residual Learning for Image Recognition}, journal = {arXiv preprint arXiv:1512.03385}, year = {2015} } ### Disclaimer and known issues 0. These models are converted from our own implementation to a recent version of Caffe (2016/2/3, b590f1d). The numerical results using this code are as in the tables below. 0. These models are for the usage of testing or fine-tuning. 0. These models were **not** trained using this version of Caffe. 0. If you want to train these models using this version of Caffe without modifications, please notice that: - GPU memory might be insufficient for extremely deep models. - Changes of mini-batch size should impact accuracy (we use a mini-batch of 256 images on 8 GPUs, that is, 32 images per GPU). - Implementation of data augmentation might be different (see our paper about the data augmentation we used). - We randomly shuffle data at the beginning of every epoch. - There might be some other untested issues. 0. In our BN layers, the provided mean and variance are strictly computed using average (**not** moving average) on a sufficiently large training batch after the training procedure. The numerical results are very stable (variation of val error < 0.1%). Using moving average might lead to different results. 0. In the BN paper, the BN layer learns gamma/beta. To implement BN in this version of Caffe, we use its provided "batch_norm_layer" (which has no gamma/beta learned) followed by "scale_layer" (which learns gamma/beta). 0. We use Caffe's implementation of SGD with momentum: v := momentum\*v + lr\*g. **If you want to port these models to other libraries (e.g., Torch, CNTK), please pay careful attention to the possibly different implementation of SGD with momentum**: v := momentum\*v + (1-momentum)\*lr\*g, which changes the effective learning rates. ### Models 0. Visualizations of network structures (tools from [ethereon](http://ethereon.github.io/netscope/quickstart.html)): - [ResNet-50] (http://ethereon.github.io/netscope/#/gist/db945b393d40bfa26006) - [ResNet-101] (http://ethereon.github.io/netscope/#/gist/b21e2aae116dc1ac7b50) - [ResNet-152] (http://ethereon.github.io/netscope/#/gist/d38f3e6091952b45198b) 0. Model files: - ~~MSR download: [link] (http://research.microsoft.com/en-us/um/people/kahe/resnet/models.zip)~~ - OneDrive download: [link](https://onedrive.live.com/?authkey=%21AAFW2-FVoxeVRck&id=4006CBB8476FF777%2117887&cid=4006CBB8476FF777) ### Results 0. Curves on ImageNet (solid lines: 1-crop val error; dashed lines: training error): ![Training curves](https://cloud.githubusercontent.com/assets/11435359/13046277/e904c04c-d412-11e5-9260-efc5b8301e2f.jpg) 0. 1-crop validation error on ImageNet (center 224x224 crop from resized image with shorter side=256): model|top-1|top-5 :---:|:---:|:---: [VGG-16](http://www.vlfeat.org/matconvnet/pretrained/)|[28.5%](http://www.vlfeat.org/matconvnet/pretrained/)|[9.9%](http://www.vlfeat.org/matconvnet/pretrained/) ResNet-50|24.7%|7.8% ResNet-101|23.6%|7.1% ResNet-152|23.0%|6.7% 0. 10-crop validation error on ImageNet (averaging softmax scores of 10 224x224 crops from resized image with shorter side=256), the same as those in the paper: model|top-1|top-5 :---:|:---:|:---: ResNet-50|22.9%|6.7% ResNet-101|21.8%|6.1% ResNet-152|21.4%|5.7% ### Third-party re-implementations Deep residual networks are very easy to implement and train. We recommend to see also the following third-party re-implementations and extensions: 0. By Facebook AI Research (FAIR), with **training code in Torch and pre-trained ResNet-18/34/50/101 models for ImageNet**: [blog](http://torch.ch/blog/2016/02/04/resnets.html), [code](https://github.com/facebook/fb.resnet.torch) 0. Torch, CIFAR-10, with ResNet-20 to ResNet-110, training code, and curves: [code](https://github.com/gcr/torch-residual-networks) 0. Lasagne, CIFAR-10, with ResNet-32 and ResNet-56 and training code: [code](https://github.com/Lasagne/Recipes/tree/master/papers/deep_residual_learning) 0. Neon, CIFAR-10, with pre-trained ResNet-32 to ResNet-110 models, training code, and curves: [code](https://github.com/apark263/cfmz) 0. Torch, MNIST, 100 layers: [blog](https://deepmlblog.wordpress.com/2016/01/05/residual-networks-in-torch-mnist/), [code](https://github.com/arunpatala/residual.mnist) 0. A winning entry in Kaggle's right whale recognition challenge: [blog](http://blog.kaggle.com/2016/02/04/noaa-right-whale-recognition-winners-interview-2nd-place-felix-lau/), [code](https://github.com/felixlaumon/kaggle-right-whale) 0. Neon, Place2 (mini), 40 layers: [blog](http://www.nervanasys.com/using-neon-for-scene-recognition-mini-places2/), [code](https://github.com/hunterlang/mpmz/) 0. MatConvNet, CIFAR-10, with ResNet-20 to ResNet-110, training code, and curves: [code](https://github.com/suhangpro/matresnet) 0. TensorFlow, CIFAR-10, with ResNet-32,110,182 training code and curves: [code](https://github.com/ppwwyyxx/tensorpack/tree/master/examples/ResNet) 0. MatConvNet, reproducing CIFAR-10 and ImageNet experiments (supporting official MatConvNet), training code and curves: [blog](https://zhanghang1989.github.io/ResNet/), [code](https://github.com/zhanghang1989/ResNet-Matconvnet) 0. Keras, ResNet-50: [code](https://github.com/raghakot/keras-resnet) Converters: 0. MatConvNet: [url](http://www.vlfeat.org/matconvnet/pretrained/#imagenet-ilsvrc-classification) 0. TensorFlow: [url](https://github.com/ry/tensorflow-resnet) ================================================ FILE: prototxt/ResNet-101-deploy.prototxt ================================================ name: "ResNet-101" input: "data" input_dim: 1 input_dim: 3 input_dim: 224 input_dim: 224 layer { bottom: "data" top: "conv1" name: "conv1" type: "Convolution" convolution_param { num_output: 64 kernel_size: 7 pad: 3 stride: 2 bias_term: false } } layer { bottom: "conv1" top: "conv1" name: "bn_conv1" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "conv1" top: "conv1" name: "scale_conv1" type: "Scale" scale_param { bias_term: true } } layer { top: "conv1" bottom: "conv1" name: "conv1_relu" type: "ReLU" } layer { bottom: "conv1" top: "pool1" name: "pool1" type: "Pooling" pooling_param { kernel_size: 3 stride: 2 pool: MAX } } layer { bottom: "pool1" top: "res2a_branch1" name: "res2a_branch1" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2a_branch1" top: "res2a_branch1" name: "bn2a_branch1" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2a_branch1" top: "res2a_branch1" name: "scale2a_branch1" type: "Scale" scale_param { bias_term: true } } layer { bottom: "pool1" top: "res2a_branch2a" name: "res2a_branch2a" type: "Convolution" convolution_param { num_output: 64 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2a_branch2a" top: "res2a_branch2a" name: "bn2a_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2a_branch2a" top: "res2a_branch2a" name: "scale2a_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res2a_branch2a" bottom: "res2a_branch2a" name: "res2a_branch2a_relu" type: "ReLU" } layer { bottom: "res2a_branch2a" top: "res2a_branch2b" name: "res2a_branch2b" type: "Convolution" convolution_param { num_output: 64 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res2a_branch2b" top: "res2a_branch2b" name: "bn2a_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2a_branch2b" top: "res2a_branch2b" name: "scale2a_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res2a_branch2b" bottom: "res2a_branch2b" name: "res2a_branch2b_relu" type: "ReLU" } layer { bottom: "res2a_branch2b" top: "res2a_branch2c" name: "res2a_branch2c" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2a_branch2c" top: "res2a_branch2c" name: "bn2a_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2a_branch2c" top: "res2a_branch2c" name: "scale2a_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res2a_branch1" bottom: "res2a_branch2c" top: "res2a" name: "res2a" type: "Eltwise" } layer { bottom: "res2a" top: "res2a" name: "res2a_relu" type: "ReLU" } layer { bottom: "res2a" top: "res2b_branch2a" name: "res2b_branch2a" type: "Convolution" convolution_param { num_output: 64 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2b_branch2a" top: "res2b_branch2a" name: "bn2b_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2b_branch2a" top: "res2b_branch2a" name: "scale2b_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res2b_branch2a" bottom: "res2b_branch2a" name: "res2b_branch2a_relu" type: "ReLU" } layer { bottom: "res2b_branch2a" top: "res2b_branch2b" name: "res2b_branch2b" type: "Convolution" convolution_param { num_output: 64 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res2b_branch2b" top: "res2b_branch2b" name: "bn2b_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2b_branch2b" top: "res2b_branch2b" name: "scale2b_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res2b_branch2b" bottom: "res2b_branch2b" name: "res2b_branch2b_relu" type: "ReLU" } layer { bottom: "res2b_branch2b" top: "res2b_branch2c" name: "res2b_branch2c" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2b_branch2c" top: "res2b_branch2c" name: "bn2b_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2b_branch2c" top: "res2b_branch2c" name: "scale2b_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res2a" bottom: "res2b_branch2c" top: "res2b" name: "res2b" type: "Eltwise" } layer { bottom: "res2b" top: "res2b" name: "res2b_relu" type: "ReLU" } layer { bottom: "res2b" top: "res2c_branch2a" name: "res2c_branch2a" type: "Convolution" convolution_param { num_output: 64 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2c_branch2a" top: "res2c_branch2a" name: "bn2c_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2c_branch2a" top: "res2c_branch2a" name: "scale2c_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res2c_branch2a" bottom: "res2c_branch2a" name: "res2c_branch2a_relu" type: "ReLU" } layer { bottom: "res2c_branch2a" top: "res2c_branch2b" name: "res2c_branch2b" type: "Convolution" convolution_param { num_output: 64 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res2c_branch2b" top: "res2c_branch2b" name: "bn2c_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2c_branch2b" top: "res2c_branch2b" name: "scale2c_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res2c_branch2b" bottom: "res2c_branch2b" name: "res2c_branch2b_relu" type: "ReLU" } layer { bottom: "res2c_branch2b" top: "res2c_branch2c" name: "res2c_branch2c" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2c_branch2c" top: "res2c_branch2c" name: "bn2c_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2c_branch2c" top: "res2c_branch2c" name: "scale2c_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res2b" bottom: "res2c_branch2c" top: "res2c" name: "res2c" type: "Eltwise" } layer { bottom: "res2c" top: "res2c" name: "res2c_relu" type: "ReLU" } layer { bottom: "res2c" top: "res3a_branch1" name: "res3a_branch1" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 2 bias_term: false } } layer { bottom: "res3a_branch1" top: "res3a_branch1" name: "bn3a_branch1" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3a_branch1" top: "res3a_branch1" name: "scale3a_branch1" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res2c" top: "res3a_branch2a" name: "res3a_branch2a" type: "Convolution" convolution_param { num_output: 128 kernel_size: 1 pad: 0 stride: 2 bias_term: false } } layer { bottom: "res3a_branch2a" top: "res3a_branch2a" name: "bn3a_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3a_branch2a" top: "res3a_branch2a" name: "scale3a_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res3a_branch2a" bottom: "res3a_branch2a" name: "res3a_branch2a_relu" type: "ReLU" } layer { bottom: "res3a_branch2a" top: "res3a_branch2b" name: "res3a_branch2b" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res3a_branch2b" top: "res3a_branch2b" name: "bn3a_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3a_branch2b" top: "res3a_branch2b" name: "scale3a_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res3a_branch2b" bottom: "res3a_branch2b" name: "res3a_branch2b_relu" type: "ReLU" } layer { bottom: "res3a_branch2b" top: "res3a_branch2c" name: "res3a_branch2c" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3a_branch2c" top: "res3a_branch2c" name: "bn3a_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3a_branch2c" top: "res3a_branch2c" name: "scale3a_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3a_branch1" bottom: "res3a_branch2c" top: "res3a" name: "res3a" type: "Eltwise" } layer { bottom: "res3a" top: "res3a" name: "res3a_relu" type: "ReLU" } layer { bottom: "res3a" top: "res3b1_branch2a" name: "res3b1_branch2a" type: "Convolution" convolution_param { num_output: 128 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b1_branch2a" top: "res3b1_branch2a" name: "bn3b1_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b1_branch2a" top: "res3b1_branch2a" name: "scale3b1_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b1_branch2a" bottom: "res3b1_branch2a" name: "res3b1_branch2a_relu" type: "ReLU" } layer { bottom: "res3b1_branch2a" top: "res3b1_branch2b" name: "res3b1_branch2b" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res3b1_branch2b" top: "res3b1_branch2b" name: "bn3b1_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b1_branch2b" top: "res3b1_branch2b" name: "scale3b1_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b1_branch2b" bottom: "res3b1_branch2b" name: "res3b1_branch2b_relu" type: "ReLU" } layer { bottom: "res3b1_branch2b" top: "res3b1_branch2c" name: "res3b1_branch2c" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b1_branch2c" top: "res3b1_branch2c" name: "bn3b1_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b1_branch2c" top: "res3b1_branch2c" name: "scale3b1_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3a" bottom: "res3b1_branch2c" top: "res3b1" name: "res3b1" type: "Eltwise" } layer { bottom: "res3b1" top: "res3b1" name: "res3b1_relu" type: "ReLU" } layer { bottom: "res3b1" top: "res3b2_branch2a" name: "res3b2_branch2a" type: "Convolution" convolution_param { num_output: 128 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b2_branch2a" top: "res3b2_branch2a" name: "bn3b2_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b2_branch2a" top: "res3b2_branch2a" name: "scale3b2_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b2_branch2a" bottom: "res3b2_branch2a" name: "res3b2_branch2a_relu" type: "ReLU" } layer { bottom: "res3b2_branch2a" top: "res3b2_branch2b" name: "res3b2_branch2b" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res3b2_branch2b" top: "res3b2_branch2b" name: "bn3b2_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b2_branch2b" top: "res3b2_branch2b" name: "scale3b2_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b2_branch2b" bottom: "res3b2_branch2b" name: "res3b2_branch2b_relu" type: "ReLU" } layer { bottom: "res3b2_branch2b" top: "res3b2_branch2c" name: "res3b2_branch2c" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b2_branch2c" top: "res3b2_branch2c" name: "bn3b2_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b2_branch2c" top: "res3b2_branch2c" name: "scale3b2_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3b1" bottom: "res3b2_branch2c" top: "res3b2" name: "res3b2" type: "Eltwise" } layer { bottom: "res3b2" top: "res3b2" name: "res3b2_relu" type: "ReLU" } layer { bottom: "res3b2" top: "res3b3_branch2a" name: "res3b3_branch2a" type: "Convolution" convolution_param { num_output: 128 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b3_branch2a" top: "res3b3_branch2a" name: "bn3b3_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b3_branch2a" top: "res3b3_branch2a" name: "scale3b3_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b3_branch2a" bottom: "res3b3_branch2a" name: "res3b3_branch2a_relu" type: "ReLU" } layer { bottom: "res3b3_branch2a" top: "res3b3_branch2b" name: "res3b3_branch2b" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res3b3_branch2b" top: "res3b3_branch2b" name: "bn3b3_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b3_branch2b" top: "res3b3_branch2b" name: "scale3b3_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b3_branch2b" bottom: "res3b3_branch2b" name: "res3b3_branch2b_relu" type: "ReLU" } layer { bottom: "res3b3_branch2b" top: "res3b3_branch2c" name: "res3b3_branch2c" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b3_branch2c" top: "res3b3_branch2c" name: "bn3b3_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b3_branch2c" top: "res3b3_branch2c" name: "scale3b3_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3b2" bottom: "res3b3_branch2c" top: "res3b3" name: "res3b3" type: "Eltwise" } layer { bottom: "res3b3" top: "res3b3" name: "res3b3_relu" type: "ReLU" } layer { bottom: "res3b3" top: "res4a_branch1" name: "res4a_branch1" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 2 bias_term: false } } layer { bottom: "res4a_branch1" top: "res4a_branch1" name: "bn4a_branch1" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4a_branch1" top: "res4a_branch1" name: "scale4a_branch1" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3b3" top: "res4a_branch2a" name: "res4a_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 2 bias_term: false } } layer { bottom: "res4a_branch2a" top: "res4a_branch2a" name: "bn4a_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4a_branch2a" top: "res4a_branch2a" name: "scale4a_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4a_branch2a" bottom: "res4a_branch2a" name: "res4a_branch2a_relu" type: "ReLU" } layer { bottom: "res4a_branch2a" top: "res4a_branch2b" name: "res4a_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4a_branch2b" top: "res4a_branch2b" name: "bn4a_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4a_branch2b" top: "res4a_branch2b" name: "scale4a_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4a_branch2b" bottom: "res4a_branch2b" name: "res4a_branch2b_relu" type: "ReLU" } layer { bottom: "res4a_branch2b" top: "res4a_branch2c" name: "res4a_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4a_branch2c" top: "res4a_branch2c" name: "bn4a_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4a_branch2c" top: "res4a_branch2c" name: "scale4a_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4a_branch1" bottom: "res4a_branch2c" top: "res4a" name: "res4a" type: "Eltwise" } layer { bottom: "res4a" top: "res4a" name: "res4a_relu" type: "ReLU" } layer { bottom: "res4a" top: "res4b1_branch2a" name: "res4b1_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b1_branch2a" top: "res4b1_branch2a" name: "bn4b1_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b1_branch2a" top: "res4b1_branch2a" name: "scale4b1_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b1_branch2a" bottom: "res4b1_branch2a" name: "res4b1_branch2a_relu" type: "ReLU" } layer { bottom: "res4b1_branch2a" top: "res4b1_branch2b" name: "res4b1_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b1_branch2b" top: "res4b1_branch2b" name: "bn4b1_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b1_branch2b" top: "res4b1_branch2b" name: "scale4b1_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b1_branch2b" bottom: "res4b1_branch2b" name: "res4b1_branch2b_relu" type: "ReLU" } layer { bottom: "res4b1_branch2b" top: "res4b1_branch2c" name: "res4b1_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b1_branch2c" top: "res4b1_branch2c" name: "bn4b1_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b1_branch2c" top: "res4b1_branch2c" name: "scale4b1_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4a" bottom: "res4b1_branch2c" top: "res4b1" name: "res4b1" type: "Eltwise" } layer { bottom: "res4b1" top: "res4b1" name: "res4b1_relu" type: "ReLU" } layer { bottom: "res4b1" top: "res4b2_branch2a" name: "res4b2_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b2_branch2a" top: "res4b2_branch2a" name: "bn4b2_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b2_branch2a" top: "res4b2_branch2a" name: "scale4b2_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b2_branch2a" bottom: "res4b2_branch2a" name: "res4b2_branch2a_relu" type: "ReLU" } layer { bottom: "res4b2_branch2a" top: "res4b2_branch2b" name: "res4b2_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b2_branch2b" top: "res4b2_branch2b" name: "bn4b2_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b2_branch2b" top: "res4b2_branch2b" name: "scale4b2_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b2_branch2b" bottom: "res4b2_branch2b" name: "res4b2_branch2b_relu" type: "ReLU" } layer { bottom: "res4b2_branch2b" top: "res4b2_branch2c" name: "res4b2_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b2_branch2c" top: "res4b2_branch2c" name: "bn4b2_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b2_branch2c" top: "res4b2_branch2c" name: "scale4b2_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b1" bottom: "res4b2_branch2c" top: "res4b2" name: "res4b2" type: "Eltwise" } layer { bottom: "res4b2" top: "res4b2" name: "res4b2_relu" type: "ReLU" } layer { bottom: "res4b2" top: "res4b3_branch2a" name: "res4b3_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b3_branch2a" top: "res4b3_branch2a" name: "bn4b3_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b3_branch2a" top: "res4b3_branch2a" name: "scale4b3_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b3_branch2a" bottom: "res4b3_branch2a" name: "res4b3_branch2a_relu" type: "ReLU" } layer { bottom: "res4b3_branch2a" top: "res4b3_branch2b" name: "res4b3_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b3_branch2b" top: "res4b3_branch2b" name: "bn4b3_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b3_branch2b" top: "res4b3_branch2b" name: "scale4b3_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b3_branch2b" bottom: "res4b3_branch2b" name: "res4b3_branch2b_relu" type: "ReLU" } layer { bottom: "res4b3_branch2b" top: "res4b3_branch2c" name: "res4b3_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b3_branch2c" top: "res4b3_branch2c" name: "bn4b3_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b3_branch2c" top: "res4b3_branch2c" name: "scale4b3_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b2" bottom: "res4b3_branch2c" top: "res4b3" name: "res4b3" type: "Eltwise" } layer { bottom: "res4b3" top: "res4b3" name: "res4b3_relu" type: "ReLU" } layer { bottom: "res4b3" top: "res4b4_branch2a" name: "res4b4_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b4_branch2a" top: "res4b4_branch2a" name: "bn4b4_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b4_branch2a" top: "res4b4_branch2a" name: "scale4b4_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b4_branch2a" bottom: "res4b4_branch2a" name: "res4b4_branch2a_relu" type: "ReLU" } layer { bottom: "res4b4_branch2a" top: "res4b4_branch2b" name: "res4b4_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b4_branch2b" top: "res4b4_branch2b" name: "bn4b4_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b4_branch2b" top: "res4b4_branch2b" name: "scale4b4_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b4_branch2b" bottom: "res4b4_branch2b" name: "res4b4_branch2b_relu" type: "ReLU" } layer { bottom: "res4b4_branch2b" top: "res4b4_branch2c" name: "res4b4_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b4_branch2c" top: "res4b4_branch2c" name: "bn4b4_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b4_branch2c" top: "res4b4_branch2c" name: "scale4b4_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b3" bottom: "res4b4_branch2c" top: "res4b4" name: "res4b4" type: "Eltwise" } layer { bottom: "res4b4" top: "res4b4" name: "res4b4_relu" type: "ReLU" } layer { bottom: "res4b4" top: "res4b5_branch2a" name: "res4b5_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b5_branch2a" top: "res4b5_branch2a" name: "bn4b5_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b5_branch2a" top: "res4b5_branch2a" name: "scale4b5_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b5_branch2a" bottom: "res4b5_branch2a" name: "res4b5_branch2a_relu" type: "ReLU" } layer { bottom: "res4b5_branch2a" top: "res4b5_branch2b" name: "res4b5_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b5_branch2b" top: "res4b5_branch2b" name: "bn4b5_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b5_branch2b" top: "res4b5_branch2b" name: "scale4b5_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b5_branch2b" bottom: "res4b5_branch2b" name: "res4b5_branch2b_relu" type: "ReLU" } layer { bottom: "res4b5_branch2b" top: "res4b5_branch2c" name: "res4b5_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b5_branch2c" top: "res4b5_branch2c" name: "bn4b5_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b5_branch2c" top: "res4b5_branch2c" name: "scale4b5_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b4" bottom: "res4b5_branch2c" top: "res4b5" name: "res4b5" type: "Eltwise" } layer { bottom: "res4b5" top: "res4b5" name: "res4b5_relu" type: "ReLU" } layer { bottom: "res4b5" top: "res4b6_branch2a" name: "res4b6_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b6_branch2a" top: "res4b6_branch2a" name: "bn4b6_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b6_branch2a" top: "res4b6_branch2a" name: "scale4b6_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b6_branch2a" bottom: "res4b6_branch2a" name: "res4b6_branch2a_relu" type: "ReLU" } layer { bottom: "res4b6_branch2a" top: "res4b6_branch2b" name: "res4b6_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b6_branch2b" top: "res4b6_branch2b" name: "bn4b6_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b6_branch2b" top: "res4b6_branch2b" name: "scale4b6_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b6_branch2b" bottom: "res4b6_branch2b" name: "res4b6_branch2b_relu" type: "ReLU" } layer { bottom: "res4b6_branch2b" top: "res4b6_branch2c" name: "res4b6_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b6_branch2c" top: "res4b6_branch2c" name: "bn4b6_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b6_branch2c" top: "res4b6_branch2c" name: "scale4b6_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b5" bottom: "res4b6_branch2c" top: "res4b6" name: "res4b6" type: "Eltwise" } layer { bottom: "res4b6" top: "res4b6" name: "res4b6_relu" type: "ReLU" } layer { bottom: "res4b6" top: "res4b7_branch2a" name: "res4b7_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b7_branch2a" top: "res4b7_branch2a" name: "bn4b7_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b7_branch2a" top: "res4b7_branch2a" name: "scale4b7_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b7_branch2a" bottom: "res4b7_branch2a" name: "res4b7_branch2a_relu" type: "ReLU" } layer { bottom: "res4b7_branch2a" top: "res4b7_branch2b" name: "res4b7_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b7_branch2b" top: "res4b7_branch2b" name: "bn4b7_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b7_branch2b" top: "res4b7_branch2b" name: "scale4b7_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b7_branch2b" bottom: "res4b7_branch2b" name: "res4b7_branch2b_relu" type: "ReLU" } layer { bottom: "res4b7_branch2b" top: "res4b7_branch2c" name: "res4b7_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b7_branch2c" top: "res4b7_branch2c" name: "bn4b7_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b7_branch2c" top: "res4b7_branch2c" name: "scale4b7_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b6" bottom: "res4b7_branch2c" top: "res4b7" name: "res4b7" type: "Eltwise" } layer { bottom: "res4b7" top: "res4b7" name: "res4b7_relu" type: "ReLU" } layer { bottom: "res4b7" top: "res4b8_branch2a" name: "res4b8_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b8_branch2a" top: "res4b8_branch2a" name: "bn4b8_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b8_branch2a" top: "res4b8_branch2a" name: "scale4b8_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b8_branch2a" bottom: "res4b8_branch2a" name: "res4b8_branch2a_relu" type: "ReLU" } layer { bottom: "res4b8_branch2a" top: "res4b8_branch2b" name: "res4b8_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b8_branch2b" top: "res4b8_branch2b" name: "bn4b8_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b8_branch2b" top: "res4b8_branch2b" name: "scale4b8_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b8_branch2b" bottom: "res4b8_branch2b" name: "res4b8_branch2b_relu" type: "ReLU" } layer { bottom: "res4b8_branch2b" top: "res4b8_branch2c" name: "res4b8_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b8_branch2c" top: "res4b8_branch2c" name: "bn4b8_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b8_branch2c" top: "res4b8_branch2c" name: "scale4b8_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b7" bottom: "res4b8_branch2c" top: "res4b8" name: "res4b8" type: "Eltwise" } layer { bottom: "res4b8" top: "res4b8" name: "res4b8_relu" type: "ReLU" } layer { bottom: "res4b8" top: "res4b9_branch2a" name: "res4b9_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b9_branch2a" top: "res4b9_branch2a" name: "bn4b9_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b9_branch2a" top: "res4b9_branch2a" name: "scale4b9_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b9_branch2a" bottom: "res4b9_branch2a" name: "res4b9_branch2a_relu" type: "ReLU" } layer { bottom: "res4b9_branch2a" top: "res4b9_branch2b" name: "res4b9_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b9_branch2b" top: "res4b9_branch2b" name: "bn4b9_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b9_branch2b" top: "res4b9_branch2b" name: "scale4b9_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b9_branch2b" bottom: "res4b9_branch2b" name: "res4b9_branch2b_relu" type: "ReLU" } layer { bottom: "res4b9_branch2b" top: "res4b9_branch2c" name: "res4b9_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b9_branch2c" top: "res4b9_branch2c" name: "bn4b9_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b9_branch2c" top: "res4b9_branch2c" name: "scale4b9_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b8" bottom: "res4b9_branch2c" top: "res4b9" name: "res4b9" type: "Eltwise" } layer { bottom: "res4b9" top: "res4b9" name: "res4b9_relu" type: "ReLU" } layer { bottom: "res4b9" top: "res4b10_branch2a" name: "res4b10_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b10_branch2a" top: "res4b10_branch2a" name: "bn4b10_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b10_branch2a" top: "res4b10_branch2a" name: "scale4b10_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b10_branch2a" bottom: "res4b10_branch2a" name: "res4b10_branch2a_relu" type: "ReLU" } layer { bottom: "res4b10_branch2a" top: "res4b10_branch2b" name: "res4b10_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b10_branch2b" top: "res4b10_branch2b" name: "bn4b10_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b10_branch2b" top: "res4b10_branch2b" name: "scale4b10_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b10_branch2b" bottom: "res4b10_branch2b" name: "res4b10_branch2b_relu" type: "ReLU" } layer { bottom: "res4b10_branch2b" top: "res4b10_branch2c" name: "res4b10_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b10_branch2c" top: "res4b10_branch2c" name: "bn4b10_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b10_branch2c" top: "res4b10_branch2c" name: "scale4b10_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b9" bottom: "res4b10_branch2c" top: "res4b10" name: "res4b10" type: "Eltwise" } layer { bottom: "res4b10" top: "res4b10" name: "res4b10_relu" type: "ReLU" } layer { bottom: "res4b10" top: "res4b11_branch2a" name: "res4b11_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b11_branch2a" top: "res4b11_branch2a" name: "bn4b11_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b11_branch2a" top: "res4b11_branch2a" name: "scale4b11_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b11_branch2a" bottom: "res4b11_branch2a" name: "res4b11_branch2a_relu" type: "ReLU" } layer { bottom: "res4b11_branch2a" top: "res4b11_branch2b" name: "res4b11_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b11_branch2b" top: "res4b11_branch2b" name: "bn4b11_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b11_branch2b" top: "res4b11_branch2b" name: "scale4b11_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b11_branch2b" bottom: "res4b11_branch2b" name: "res4b11_branch2b_relu" type: "ReLU" } layer { bottom: "res4b11_branch2b" top: "res4b11_branch2c" name: "res4b11_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b11_branch2c" top: "res4b11_branch2c" name: "bn4b11_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b11_branch2c" top: "res4b11_branch2c" name: "scale4b11_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b10" bottom: "res4b11_branch2c" top: "res4b11" name: "res4b11" type: "Eltwise" } layer { bottom: "res4b11" top: "res4b11" name: "res4b11_relu" type: "ReLU" } layer { bottom: "res4b11" top: "res4b12_branch2a" name: "res4b12_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b12_branch2a" top: "res4b12_branch2a" name: "bn4b12_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b12_branch2a" top: "res4b12_branch2a" name: "scale4b12_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b12_branch2a" bottom: "res4b12_branch2a" name: "res4b12_branch2a_relu" type: "ReLU" } layer { bottom: "res4b12_branch2a" top: "res4b12_branch2b" name: "res4b12_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b12_branch2b" top: "res4b12_branch2b" name: "bn4b12_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b12_branch2b" top: "res4b12_branch2b" name: "scale4b12_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b12_branch2b" bottom: "res4b12_branch2b" name: "res4b12_branch2b_relu" type: "ReLU" } layer { bottom: "res4b12_branch2b" top: "res4b12_branch2c" name: "res4b12_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b12_branch2c" top: "res4b12_branch2c" name: "bn4b12_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b12_branch2c" top: "res4b12_branch2c" name: "scale4b12_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b11" bottom: "res4b12_branch2c" top: "res4b12" name: "res4b12" type: "Eltwise" } layer { bottom: "res4b12" top: "res4b12" name: "res4b12_relu" type: "ReLU" } layer { bottom: "res4b12" top: "res4b13_branch2a" name: "res4b13_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b13_branch2a" top: "res4b13_branch2a" name: "bn4b13_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b13_branch2a" top: "res4b13_branch2a" name: "scale4b13_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b13_branch2a" bottom: "res4b13_branch2a" name: "res4b13_branch2a_relu" type: "ReLU" } layer { bottom: "res4b13_branch2a" top: "res4b13_branch2b" name: "res4b13_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b13_branch2b" top: "res4b13_branch2b" name: "bn4b13_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b13_branch2b" top: "res4b13_branch2b" name: "scale4b13_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b13_branch2b" bottom: "res4b13_branch2b" name: "res4b13_branch2b_relu" type: "ReLU" } layer { bottom: "res4b13_branch2b" top: "res4b13_branch2c" name: "res4b13_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b13_branch2c" top: "res4b13_branch2c" name: "bn4b13_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b13_branch2c" top: "res4b13_branch2c" name: "scale4b13_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b12" bottom: "res4b13_branch2c" top: "res4b13" name: "res4b13" type: "Eltwise" } layer { bottom: "res4b13" top: "res4b13" name: "res4b13_relu" type: "ReLU" } layer { bottom: "res4b13" top: "res4b14_branch2a" name: "res4b14_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b14_branch2a" top: "res4b14_branch2a" name: "bn4b14_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b14_branch2a" top: "res4b14_branch2a" name: "scale4b14_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b14_branch2a" bottom: "res4b14_branch2a" name: "res4b14_branch2a_relu" type: "ReLU" } layer { bottom: "res4b14_branch2a" top: "res4b14_branch2b" name: "res4b14_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b14_branch2b" top: "res4b14_branch2b" name: "bn4b14_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b14_branch2b" top: "res4b14_branch2b" name: "scale4b14_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b14_branch2b" bottom: "res4b14_branch2b" name: "res4b14_branch2b_relu" type: "ReLU" } layer { bottom: "res4b14_branch2b" top: "res4b14_branch2c" name: "res4b14_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b14_branch2c" top: "res4b14_branch2c" name: "bn4b14_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b14_branch2c" top: "res4b14_branch2c" name: "scale4b14_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b13" bottom: "res4b14_branch2c" top: "res4b14" name: "res4b14" type: "Eltwise" } layer { bottom: "res4b14" top: "res4b14" name: "res4b14_relu" type: "ReLU" } layer { bottom: "res4b14" top: "res4b15_branch2a" name: "res4b15_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b15_branch2a" top: "res4b15_branch2a" name: "bn4b15_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b15_branch2a" top: "res4b15_branch2a" name: "scale4b15_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b15_branch2a" bottom: "res4b15_branch2a" name: "res4b15_branch2a_relu" type: "ReLU" } layer { bottom: "res4b15_branch2a" top: "res4b15_branch2b" name: "res4b15_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b15_branch2b" top: "res4b15_branch2b" name: "bn4b15_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b15_branch2b" top: "res4b15_branch2b" name: "scale4b15_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b15_branch2b" bottom: "res4b15_branch2b" name: "res4b15_branch2b_relu" type: "ReLU" } layer { bottom: "res4b15_branch2b" top: "res4b15_branch2c" name: "res4b15_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b15_branch2c" top: "res4b15_branch2c" name: "bn4b15_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b15_branch2c" top: "res4b15_branch2c" name: "scale4b15_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b14" bottom: "res4b15_branch2c" top: "res4b15" name: "res4b15" type: "Eltwise" } layer { bottom: "res4b15" top: "res4b15" name: "res4b15_relu" type: "ReLU" } layer { bottom: "res4b15" top: "res4b16_branch2a" name: "res4b16_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b16_branch2a" top: "res4b16_branch2a" name: "bn4b16_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b16_branch2a" top: "res4b16_branch2a" name: "scale4b16_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b16_branch2a" bottom: "res4b16_branch2a" name: "res4b16_branch2a_relu" type: "ReLU" } layer { bottom: "res4b16_branch2a" top: "res4b16_branch2b" name: "res4b16_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b16_branch2b" top: "res4b16_branch2b" name: "bn4b16_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b16_branch2b" top: "res4b16_branch2b" name: "scale4b16_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b16_branch2b" bottom: "res4b16_branch2b" name: "res4b16_branch2b_relu" type: "ReLU" } layer { bottom: "res4b16_branch2b" top: "res4b16_branch2c" name: "res4b16_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b16_branch2c" top: "res4b16_branch2c" name: "bn4b16_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b16_branch2c" top: "res4b16_branch2c" name: "scale4b16_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b15" bottom: "res4b16_branch2c" top: "res4b16" name: "res4b16" type: "Eltwise" } layer { bottom: "res4b16" top: "res4b16" name: "res4b16_relu" type: "ReLU" } layer { bottom: "res4b16" top: "res4b17_branch2a" name: "res4b17_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b17_branch2a" top: "res4b17_branch2a" name: "bn4b17_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b17_branch2a" top: "res4b17_branch2a" name: "scale4b17_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b17_branch2a" bottom: "res4b17_branch2a" name: "res4b17_branch2a_relu" type: "ReLU" } layer { bottom: "res4b17_branch2a" top: "res4b17_branch2b" name: "res4b17_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b17_branch2b" top: "res4b17_branch2b" name: "bn4b17_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b17_branch2b" top: "res4b17_branch2b" name: "scale4b17_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b17_branch2b" bottom: "res4b17_branch2b" name: "res4b17_branch2b_relu" type: "ReLU" } layer { bottom: "res4b17_branch2b" top: "res4b17_branch2c" name: "res4b17_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b17_branch2c" top: "res4b17_branch2c" name: "bn4b17_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b17_branch2c" top: "res4b17_branch2c" name: "scale4b17_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b16" bottom: "res4b17_branch2c" top: "res4b17" name: "res4b17" type: "Eltwise" } layer { bottom: "res4b17" top: "res4b17" name: "res4b17_relu" type: "ReLU" } layer { bottom: "res4b17" top: "res4b18_branch2a" name: "res4b18_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b18_branch2a" top: "res4b18_branch2a" name: "bn4b18_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b18_branch2a" top: "res4b18_branch2a" name: "scale4b18_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b18_branch2a" bottom: "res4b18_branch2a" name: "res4b18_branch2a_relu" type: "ReLU" } layer { bottom: "res4b18_branch2a" top: "res4b18_branch2b" name: "res4b18_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b18_branch2b" top: "res4b18_branch2b" name: "bn4b18_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b18_branch2b" top: "res4b18_branch2b" name: "scale4b18_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b18_branch2b" bottom: "res4b18_branch2b" name: "res4b18_branch2b_relu" type: "ReLU" } layer { bottom: "res4b18_branch2b" top: "res4b18_branch2c" name: "res4b18_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b18_branch2c" top: "res4b18_branch2c" name: "bn4b18_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b18_branch2c" top: "res4b18_branch2c" name: "scale4b18_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b17" bottom: "res4b18_branch2c" top: "res4b18" name: "res4b18" type: "Eltwise" } layer { bottom: "res4b18" top: "res4b18" name: "res4b18_relu" type: "ReLU" } layer { bottom: "res4b18" top: "res4b19_branch2a" name: "res4b19_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b19_branch2a" top: "res4b19_branch2a" name: "bn4b19_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b19_branch2a" top: "res4b19_branch2a" name: "scale4b19_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b19_branch2a" bottom: "res4b19_branch2a" name: "res4b19_branch2a_relu" type: "ReLU" } layer { bottom: "res4b19_branch2a" top: "res4b19_branch2b" name: "res4b19_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b19_branch2b" top: "res4b19_branch2b" name: "bn4b19_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b19_branch2b" top: "res4b19_branch2b" name: "scale4b19_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b19_branch2b" bottom: "res4b19_branch2b" name: "res4b19_branch2b_relu" type: "ReLU" } layer { bottom: "res4b19_branch2b" top: "res4b19_branch2c" name: "res4b19_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b19_branch2c" top: "res4b19_branch2c" name: "bn4b19_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b19_branch2c" top: "res4b19_branch2c" name: "scale4b19_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b18" bottom: "res4b19_branch2c" top: "res4b19" name: "res4b19" type: "Eltwise" } layer { bottom: "res4b19" top: "res4b19" name: "res4b19_relu" type: "ReLU" } layer { bottom: "res4b19" top: "res4b20_branch2a" name: "res4b20_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b20_branch2a" top: "res4b20_branch2a" name: "bn4b20_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b20_branch2a" top: "res4b20_branch2a" name: "scale4b20_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b20_branch2a" bottom: "res4b20_branch2a" name: "res4b20_branch2a_relu" type: "ReLU" } layer { bottom: "res4b20_branch2a" top: "res4b20_branch2b" name: "res4b20_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b20_branch2b" top: "res4b20_branch2b" name: "bn4b20_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b20_branch2b" top: "res4b20_branch2b" name: "scale4b20_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b20_branch2b" bottom: "res4b20_branch2b" name: "res4b20_branch2b_relu" type: "ReLU" } layer { bottom: "res4b20_branch2b" top: "res4b20_branch2c" name: "res4b20_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b20_branch2c" top: "res4b20_branch2c" name: "bn4b20_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b20_branch2c" top: "res4b20_branch2c" name: "scale4b20_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b19" bottom: "res4b20_branch2c" top: "res4b20" name: "res4b20" type: "Eltwise" } layer { bottom: "res4b20" top: "res4b20" name: "res4b20_relu" type: "ReLU" } layer { bottom: "res4b20" top: "res4b21_branch2a" name: "res4b21_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b21_branch2a" top: "res4b21_branch2a" name: "bn4b21_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b21_branch2a" top: "res4b21_branch2a" name: "scale4b21_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b21_branch2a" bottom: "res4b21_branch2a" name: "res4b21_branch2a_relu" type: "ReLU" } layer { bottom: "res4b21_branch2a" top: "res4b21_branch2b" name: "res4b21_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b21_branch2b" top: "res4b21_branch2b" name: "bn4b21_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b21_branch2b" top: "res4b21_branch2b" name: "scale4b21_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b21_branch2b" bottom: "res4b21_branch2b" name: "res4b21_branch2b_relu" type: "ReLU" } layer { bottom: "res4b21_branch2b" top: "res4b21_branch2c" name: "res4b21_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b21_branch2c" top: "res4b21_branch2c" name: "bn4b21_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b21_branch2c" top: "res4b21_branch2c" name: "scale4b21_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b20" bottom: "res4b21_branch2c" top: "res4b21" name: "res4b21" type: "Eltwise" } layer { bottom: "res4b21" top: "res4b21" name: "res4b21_relu" type: "ReLU" } layer { bottom: "res4b21" top: "res4b22_branch2a" name: "res4b22_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b22_branch2a" top: "res4b22_branch2a" name: "bn4b22_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b22_branch2a" top: "res4b22_branch2a" name: "scale4b22_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b22_branch2a" bottom: "res4b22_branch2a" name: "res4b22_branch2a_relu" type: "ReLU" } layer { bottom: "res4b22_branch2a" top: "res4b22_branch2b" name: "res4b22_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b22_branch2b" top: "res4b22_branch2b" name: "bn4b22_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b22_branch2b" top: "res4b22_branch2b" name: "scale4b22_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b22_branch2b" bottom: "res4b22_branch2b" name: "res4b22_branch2b_relu" type: "ReLU" } layer { bottom: "res4b22_branch2b" top: "res4b22_branch2c" name: "res4b22_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b22_branch2c" top: "res4b22_branch2c" name: "bn4b22_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b22_branch2c" top: "res4b22_branch2c" name: "scale4b22_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b21" bottom: "res4b22_branch2c" top: "res4b22" name: "res4b22" type: "Eltwise" } layer { bottom: "res4b22" top: "res4b22" name: "res4b22_relu" type: "ReLU" } layer { bottom: "res4b22" top: "res5a_branch1" name: "res5a_branch1" type: "Convolution" convolution_param { num_output: 2048 kernel_size: 1 pad: 0 stride: 2 bias_term: false } } layer { bottom: "res5a_branch1" top: "res5a_branch1" name: "bn5a_branch1" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5a_branch1" top: "res5a_branch1" name: "scale5a_branch1" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b22" top: "res5a_branch2a" name: "res5a_branch2a" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 2 bias_term: false } } layer { bottom: "res5a_branch2a" top: "res5a_branch2a" name: "bn5a_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5a_branch2a" top: "res5a_branch2a" name: "scale5a_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res5a_branch2a" bottom: "res5a_branch2a" name: "res5a_branch2a_relu" type: "ReLU" } layer { bottom: "res5a_branch2a" top: "res5a_branch2b" name: "res5a_branch2b" type: "Convolution" convolution_param { num_output: 512 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res5a_branch2b" top: "res5a_branch2b" name: "bn5a_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5a_branch2b" top: "res5a_branch2b" name: "scale5a_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res5a_branch2b" bottom: "res5a_branch2b" name: "res5a_branch2b_relu" type: "ReLU" } layer { bottom: "res5a_branch2b" top: "res5a_branch2c" name: "res5a_branch2c" type: "Convolution" convolution_param { num_output: 2048 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res5a_branch2c" top: "res5a_branch2c" name: "bn5a_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5a_branch2c" top: "res5a_branch2c" name: "scale5a_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res5a_branch1" bottom: "res5a_branch2c" top: "res5a" name: "res5a" type: "Eltwise" } layer { bottom: "res5a" top: "res5a" name: "res5a_relu" type: "ReLU" } layer { bottom: "res5a" top: "res5b_branch2a" name: "res5b_branch2a" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res5b_branch2a" top: "res5b_branch2a" name: "bn5b_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5b_branch2a" top: "res5b_branch2a" name: "scale5b_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res5b_branch2a" bottom: "res5b_branch2a" name: "res5b_branch2a_relu" type: "ReLU" } layer { bottom: "res5b_branch2a" top: "res5b_branch2b" name: "res5b_branch2b" type: "Convolution" convolution_param { num_output: 512 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res5b_branch2b" top: "res5b_branch2b" name: "bn5b_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5b_branch2b" top: "res5b_branch2b" name: "scale5b_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res5b_branch2b" bottom: "res5b_branch2b" name: "res5b_branch2b_relu" type: "ReLU" } layer { bottom: "res5b_branch2b" top: "res5b_branch2c" name: "res5b_branch2c" type: "Convolution" convolution_param { num_output: 2048 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res5b_branch2c" top: "res5b_branch2c" name: "bn5b_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5b_branch2c" top: "res5b_branch2c" name: "scale5b_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res5a" bottom: "res5b_branch2c" top: "res5b" name: "res5b" type: "Eltwise" } layer { bottom: "res5b" top: "res5b" name: "res5b_relu" type: "ReLU" } layer { bottom: "res5b" top: "res5c_branch2a" name: "res5c_branch2a" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res5c_branch2a" top: "res5c_branch2a" name: "bn5c_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5c_branch2a" top: "res5c_branch2a" name: "scale5c_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res5c_branch2a" bottom: "res5c_branch2a" name: "res5c_branch2a_relu" type: "ReLU" } layer { bottom: "res5c_branch2a" top: "res5c_branch2b" name: "res5c_branch2b" type: "Convolution" convolution_param { num_output: 512 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res5c_branch2b" top: "res5c_branch2b" name: "bn5c_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5c_branch2b" top: "res5c_branch2b" name: "scale5c_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res5c_branch2b" bottom: "res5c_branch2b" name: "res5c_branch2b_relu" type: "ReLU" } layer { bottom: "res5c_branch2b" top: "res5c_branch2c" name: "res5c_branch2c" type: "Convolution" convolution_param { num_output: 2048 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res5c_branch2c" top: "res5c_branch2c" name: "bn5c_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5c_branch2c" top: "res5c_branch2c" name: "scale5c_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res5b" bottom: "res5c_branch2c" top: "res5c" name: "res5c" type: "Eltwise" } layer { bottom: "res5c" top: "res5c" name: "res5c_relu" type: "ReLU" } layer { bottom: "res5c" top: "pool5" name: "pool5" type: "Pooling" pooling_param { kernel_size: 7 stride: 1 pool: AVE } } layer { bottom: "pool5" top: "fc1000" name: "fc1000" type: "InnerProduct" inner_product_param { num_output: 1000 } } layer { bottom: "fc1000" top: "prob" name: "prob" type: "Softmax" } ================================================ FILE: prototxt/ResNet-152-deploy.prototxt ================================================ name: "ResNet-152" input: "data" input_dim: 1 input_dim: 3 input_dim: 224 input_dim: 224 layer { bottom: "data" top: "conv1" name: "conv1" type: "Convolution" convolution_param { num_output: 64 kernel_size: 7 pad: 3 stride: 2 bias_term: false } } layer { bottom: "conv1" top: "conv1" name: "bn_conv1" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "conv1" top: "conv1" name: "scale_conv1" type: "Scale" scale_param { bias_term: true } } layer { top: "conv1" bottom: "conv1" name: "conv1_relu" type: "ReLU" } layer { bottom: "conv1" top: "pool1" name: "pool1" type: "Pooling" pooling_param { kernel_size: 3 stride: 2 pool: MAX } } layer { bottom: "pool1" top: "res2a_branch1" name: "res2a_branch1" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2a_branch1" top: "res2a_branch1" name: "bn2a_branch1" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2a_branch1" top: "res2a_branch1" name: "scale2a_branch1" type: "Scale" scale_param { bias_term: true } } layer { bottom: "pool1" top: "res2a_branch2a" name: "res2a_branch2a" type: "Convolution" convolution_param { num_output: 64 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2a_branch2a" top: "res2a_branch2a" name: "bn2a_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2a_branch2a" top: "res2a_branch2a" name: "scale2a_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res2a_branch2a" bottom: "res2a_branch2a" name: "res2a_branch2a_relu" type: "ReLU" } layer { bottom: "res2a_branch2a" top: "res2a_branch2b" name: "res2a_branch2b" type: "Convolution" convolution_param { num_output: 64 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res2a_branch2b" top: "res2a_branch2b" name: "bn2a_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2a_branch2b" top: "res2a_branch2b" name: "scale2a_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res2a_branch2b" bottom: "res2a_branch2b" name: "res2a_branch2b_relu" type: "ReLU" } layer { bottom: "res2a_branch2b" top: "res2a_branch2c" name: "res2a_branch2c" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2a_branch2c" top: "res2a_branch2c" name: "bn2a_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2a_branch2c" top: "res2a_branch2c" name: "scale2a_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res2a_branch1" bottom: "res2a_branch2c" top: "res2a" name: "res2a" type: "Eltwise" } layer { bottom: "res2a" top: "res2a" name: "res2a_relu" type: "ReLU" } layer { bottom: "res2a" top: "res2b_branch2a" name: "res2b_branch2a" type: "Convolution" convolution_param { num_output: 64 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2b_branch2a" top: "res2b_branch2a" name: "bn2b_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2b_branch2a" top: "res2b_branch2a" name: "scale2b_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res2b_branch2a" bottom: "res2b_branch2a" name: "res2b_branch2a_relu" type: "ReLU" } layer { bottom: "res2b_branch2a" top: "res2b_branch2b" name: "res2b_branch2b" type: "Convolution" convolution_param { num_output: 64 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res2b_branch2b" top: "res2b_branch2b" name: "bn2b_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2b_branch2b" top: "res2b_branch2b" name: "scale2b_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res2b_branch2b" bottom: "res2b_branch2b" name: "res2b_branch2b_relu" type: "ReLU" } layer { bottom: "res2b_branch2b" top: "res2b_branch2c" name: "res2b_branch2c" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2b_branch2c" top: "res2b_branch2c" name: "bn2b_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2b_branch2c" top: "res2b_branch2c" name: "scale2b_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res2a" bottom: "res2b_branch2c" top: "res2b" name: "res2b" type: "Eltwise" } layer { bottom: "res2b" top: "res2b" name: "res2b_relu" type: "ReLU" } layer { bottom: "res2b" top: "res2c_branch2a" name: "res2c_branch2a" type: "Convolution" convolution_param { num_output: 64 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2c_branch2a" top: "res2c_branch2a" name: "bn2c_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2c_branch2a" top: "res2c_branch2a" name: "scale2c_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res2c_branch2a" bottom: "res2c_branch2a" name: "res2c_branch2a_relu" type: "ReLU" } layer { bottom: "res2c_branch2a" top: "res2c_branch2b" name: "res2c_branch2b" type: "Convolution" convolution_param { num_output: 64 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res2c_branch2b" top: "res2c_branch2b" name: "bn2c_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2c_branch2b" top: "res2c_branch2b" name: "scale2c_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res2c_branch2b" bottom: "res2c_branch2b" name: "res2c_branch2b_relu" type: "ReLU" } layer { bottom: "res2c_branch2b" top: "res2c_branch2c" name: "res2c_branch2c" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2c_branch2c" top: "res2c_branch2c" name: "bn2c_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2c_branch2c" top: "res2c_branch2c" name: "scale2c_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res2b" bottom: "res2c_branch2c" top: "res2c" name: "res2c" type: "Eltwise" } layer { bottom: "res2c" top: "res2c" name: "res2c_relu" type: "ReLU" } layer { bottom: "res2c" top: "res3a_branch1" name: "res3a_branch1" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 2 bias_term: false } } layer { bottom: "res3a_branch1" top: "res3a_branch1" name: "bn3a_branch1" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3a_branch1" top: "res3a_branch1" name: "scale3a_branch1" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res2c" top: "res3a_branch2a" name: "res3a_branch2a" type: "Convolution" convolution_param { num_output: 128 kernel_size: 1 pad: 0 stride: 2 bias_term: false } } layer { bottom: "res3a_branch2a" top: "res3a_branch2a" name: "bn3a_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3a_branch2a" top: "res3a_branch2a" name: "scale3a_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res3a_branch2a" bottom: "res3a_branch2a" name: "res3a_branch2a_relu" type: "ReLU" } layer { bottom: "res3a_branch2a" top: "res3a_branch2b" name: "res3a_branch2b" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res3a_branch2b" top: "res3a_branch2b" name: "bn3a_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3a_branch2b" top: "res3a_branch2b" name: "scale3a_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res3a_branch2b" bottom: "res3a_branch2b" name: "res3a_branch2b_relu" type: "ReLU" } layer { bottom: "res3a_branch2b" top: "res3a_branch2c" name: "res3a_branch2c" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3a_branch2c" top: "res3a_branch2c" name: "bn3a_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3a_branch2c" top: "res3a_branch2c" name: "scale3a_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3a_branch1" bottom: "res3a_branch2c" top: "res3a" name: "res3a" type: "Eltwise" } layer { bottom: "res3a" top: "res3a" name: "res3a_relu" type: "ReLU" } layer { bottom: "res3a" top: "res3b1_branch2a" name: "res3b1_branch2a" type: "Convolution" convolution_param { num_output: 128 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b1_branch2a" top: "res3b1_branch2a" name: "bn3b1_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b1_branch2a" top: "res3b1_branch2a" name: "scale3b1_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b1_branch2a" bottom: "res3b1_branch2a" name: "res3b1_branch2a_relu" type: "ReLU" } layer { bottom: "res3b1_branch2a" top: "res3b1_branch2b" name: "res3b1_branch2b" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res3b1_branch2b" top: "res3b1_branch2b" name: "bn3b1_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b1_branch2b" top: "res3b1_branch2b" name: "scale3b1_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b1_branch2b" bottom: "res3b1_branch2b" name: "res3b1_branch2b_relu" type: "ReLU" } layer { bottom: "res3b1_branch2b" top: "res3b1_branch2c" name: "res3b1_branch2c" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b1_branch2c" top: "res3b1_branch2c" name: "bn3b1_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b1_branch2c" top: "res3b1_branch2c" name: "scale3b1_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3a" bottom: "res3b1_branch2c" top: "res3b1" name: "res3b1" type: "Eltwise" } layer { bottom: "res3b1" top: "res3b1" name: "res3b1_relu" type: "ReLU" } layer { bottom: "res3b1" top: "res3b2_branch2a" name: "res3b2_branch2a" type: "Convolution" convolution_param { num_output: 128 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b2_branch2a" top: "res3b2_branch2a" name: "bn3b2_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b2_branch2a" top: "res3b2_branch2a" name: "scale3b2_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b2_branch2a" bottom: "res3b2_branch2a" name: "res3b2_branch2a_relu" type: "ReLU" } layer { bottom: "res3b2_branch2a" top: "res3b2_branch2b" name: "res3b2_branch2b" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res3b2_branch2b" top: "res3b2_branch2b" name: "bn3b2_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b2_branch2b" top: "res3b2_branch2b" name: "scale3b2_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b2_branch2b" bottom: "res3b2_branch2b" name: "res3b2_branch2b_relu" type: "ReLU" } layer { bottom: "res3b2_branch2b" top: "res3b2_branch2c" name: "res3b2_branch2c" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b2_branch2c" top: "res3b2_branch2c" name: "bn3b2_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b2_branch2c" top: "res3b2_branch2c" name: "scale3b2_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3b1" bottom: "res3b2_branch2c" top: "res3b2" name: "res3b2" type: "Eltwise" } layer { bottom: "res3b2" top: "res3b2" name: "res3b2_relu" type: "ReLU" } layer { bottom: "res3b2" top: "res3b3_branch2a" name: "res3b3_branch2a" type: "Convolution" convolution_param { num_output: 128 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b3_branch2a" top: "res3b3_branch2a" name: "bn3b3_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b3_branch2a" top: "res3b3_branch2a" name: "scale3b3_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b3_branch2a" bottom: "res3b3_branch2a" name: "res3b3_branch2a_relu" type: "ReLU" } layer { bottom: "res3b3_branch2a" top: "res3b3_branch2b" name: "res3b3_branch2b" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res3b3_branch2b" top: "res3b3_branch2b" name: "bn3b3_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b3_branch2b" top: "res3b3_branch2b" name: "scale3b3_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b3_branch2b" bottom: "res3b3_branch2b" name: "res3b3_branch2b_relu" type: "ReLU" } layer { bottom: "res3b3_branch2b" top: "res3b3_branch2c" name: "res3b3_branch2c" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b3_branch2c" top: "res3b3_branch2c" name: "bn3b3_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b3_branch2c" top: "res3b3_branch2c" name: "scale3b3_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3b2" bottom: "res3b3_branch2c" top: "res3b3" name: "res3b3" type: "Eltwise" } layer { bottom: "res3b3" top: "res3b3" name: "res3b3_relu" type: "ReLU" } layer { bottom: "res3b3" top: "res3b4_branch2a" name: "res3b4_branch2a" type: "Convolution" convolution_param { num_output: 128 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b4_branch2a" top: "res3b4_branch2a" name: "bn3b4_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b4_branch2a" top: "res3b4_branch2a" name: "scale3b4_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b4_branch2a" bottom: "res3b4_branch2a" name: "res3b4_branch2a_relu" type: "ReLU" } layer { bottom: "res3b4_branch2a" top: "res3b4_branch2b" name: "res3b4_branch2b" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res3b4_branch2b" top: "res3b4_branch2b" name: "bn3b4_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b4_branch2b" top: "res3b4_branch2b" name: "scale3b4_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b4_branch2b" bottom: "res3b4_branch2b" name: "res3b4_branch2b_relu" type: "ReLU" } layer { bottom: "res3b4_branch2b" top: "res3b4_branch2c" name: "res3b4_branch2c" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b4_branch2c" top: "res3b4_branch2c" name: "bn3b4_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b4_branch2c" top: "res3b4_branch2c" name: "scale3b4_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3b3" bottom: "res3b4_branch2c" top: "res3b4" name: "res3b4" type: "Eltwise" } layer { bottom: "res3b4" top: "res3b4" name: "res3b4_relu" type: "ReLU" } layer { bottom: "res3b4" top: "res3b5_branch2a" name: "res3b5_branch2a" type: "Convolution" convolution_param { num_output: 128 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b5_branch2a" top: "res3b5_branch2a" name: "bn3b5_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b5_branch2a" top: "res3b5_branch2a" name: "scale3b5_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b5_branch2a" bottom: "res3b5_branch2a" name: "res3b5_branch2a_relu" type: "ReLU" } layer { bottom: "res3b5_branch2a" top: "res3b5_branch2b" name: "res3b5_branch2b" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res3b5_branch2b" top: "res3b5_branch2b" name: "bn3b5_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b5_branch2b" top: "res3b5_branch2b" name: "scale3b5_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b5_branch2b" bottom: "res3b5_branch2b" name: "res3b5_branch2b_relu" type: "ReLU" } layer { bottom: "res3b5_branch2b" top: "res3b5_branch2c" name: "res3b5_branch2c" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b5_branch2c" top: "res3b5_branch2c" name: "bn3b5_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b5_branch2c" top: "res3b5_branch2c" name: "scale3b5_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3b4" bottom: "res3b5_branch2c" top: "res3b5" name: "res3b5" type: "Eltwise" } layer { bottom: "res3b5" top: "res3b5" name: "res3b5_relu" type: "ReLU" } layer { bottom: "res3b5" top: "res3b6_branch2a" name: "res3b6_branch2a" type: "Convolution" convolution_param { num_output: 128 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b6_branch2a" top: "res3b6_branch2a" name: "bn3b6_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b6_branch2a" top: "res3b6_branch2a" name: "scale3b6_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b6_branch2a" bottom: "res3b6_branch2a" name: "res3b6_branch2a_relu" type: "ReLU" } layer { bottom: "res3b6_branch2a" top: "res3b6_branch2b" name: "res3b6_branch2b" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res3b6_branch2b" top: "res3b6_branch2b" name: "bn3b6_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b6_branch2b" top: "res3b6_branch2b" name: "scale3b6_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b6_branch2b" bottom: "res3b6_branch2b" name: "res3b6_branch2b_relu" type: "ReLU" } layer { bottom: "res3b6_branch2b" top: "res3b6_branch2c" name: "res3b6_branch2c" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b6_branch2c" top: "res3b6_branch2c" name: "bn3b6_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b6_branch2c" top: "res3b6_branch2c" name: "scale3b6_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3b5" bottom: "res3b6_branch2c" top: "res3b6" name: "res3b6" type: "Eltwise" } layer { bottom: "res3b6" top: "res3b6" name: "res3b6_relu" type: "ReLU" } layer { bottom: "res3b6" top: "res3b7_branch2a" name: "res3b7_branch2a" type: "Convolution" convolution_param { num_output: 128 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b7_branch2a" top: "res3b7_branch2a" name: "bn3b7_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b7_branch2a" top: "res3b7_branch2a" name: "scale3b7_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b7_branch2a" bottom: "res3b7_branch2a" name: "res3b7_branch2a_relu" type: "ReLU" } layer { bottom: "res3b7_branch2a" top: "res3b7_branch2b" name: "res3b7_branch2b" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res3b7_branch2b" top: "res3b7_branch2b" name: "bn3b7_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b7_branch2b" top: "res3b7_branch2b" name: "scale3b7_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res3b7_branch2b" bottom: "res3b7_branch2b" name: "res3b7_branch2b_relu" type: "ReLU" } layer { bottom: "res3b7_branch2b" top: "res3b7_branch2c" name: "res3b7_branch2c" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b7_branch2c" top: "res3b7_branch2c" name: "bn3b7_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b7_branch2c" top: "res3b7_branch2c" name: "scale3b7_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3b6" bottom: "res3b7_branch2c" top: "res3b7" name: "res3b7" type: "Eltwise" } layer { bottom: "res3b7" top: "res3b7" name: "res3b7_relu" type: "ReLU" } layer { bottom: "res3b7" top: "res4a_branch1" name: "res4a_branch1" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 2 bias_term: false } } layer { bottom: "res4a_branch1" top: "res4a_branch1" name: "bn4a_branch1" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4a_branch1" top: "res4a_branch1" name: "scale4a_branch1" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3b7" top: "res4a_branch2a" name: "res4a_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 2 bias_term: false } } layer { bottom: "res4a_branch2a" top: "res4a_branch2a" name: "bn4a_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4a_branch2a" top: "res4a_branch2a" name: "scale4a_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4a_branch2a" bottom: "res4a_branch2a" name: "res4a_branch2a_relu" type: "ReLU" } layer { bottom: "res4a_branch2a" top: "res4a_branch2b" name: "res4a_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4a_branch2b" top: "res4a_branch2b" name: "bn4a_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4a_branch2b" top: "res4a_branch2b" name: "scale4a_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4a_branch2b" bottom: "res4a_branch2b" name: "res4a_branch2b_relu" type: "ReLU" } layer { bottom: "res4a_branch2b" top: "res4a_branch2c" name: "res4a_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4a_branch2c" top: "res4a_branch2c" name: "bn4a_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4a_branch2c" top: "res4a_branch2c" name: "scale4a_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4a_branch1" bottom: "res4a_branch2c" top: "res4a" name: "res4a" type: "Eltwise" } layer { bottom: "res4a" top: "res4a" name: "res4a_relu" type: "ReLU" } layer { bottom: "res4a" top: "res4b1_branch2a" name: "res4b1_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b1_branch2a" top: "res4b1_branch2a" name: "bn4b1_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b1_branch2a" top: "res4b1_branch2a" name: "scale4b1_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b1_branch2a" bottom: "res4b1_branch2a" name: "res4b1_branch2a_relu" type: "ReLU" } layer { bottom: "res4b1_branch2a" top: "res4b1_branch2b" name: "res4b1_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b1_branch2b" top: "res4b1_branch2b" name: "bn4b1_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b1_branch2b" top: "res4b1_branch2b" name: "scale4b1_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b1_branch2b" bottom: "res4b1_branch2b" name: "res4b1_branch2b_relu" type: "ReLU" } layer { bottom: "res4b1_branch2b" top: "res4b1_branch2c" name: "res4b1_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b1_branch2c" top: "res4b1_branch2c" name: "bn4b1_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b1_branch2c" top: "res4b1_branch2c" name: "scale4b1_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4a" bottom: "res4b1_branch2c" top: "res4b1" name: "res4b1" type: "Eltwise" } layer { bottom: "res4b1" top: "res4b1" name: "res4b1_relu" type: "ReLU" } layer { bottom: "res4b1" top: "res4b2_branch2a" name: "res4b2_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b2_branch2a" top: "res4b2_branch2a" name: "bn4b2_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b2_branch2a" top: "res4b2_branch2a" name: "scale4b2_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b2_branch2a" bottom: "res4b2_branch2a" name: "res4b2_branch2a_relu" type: "ReLU" } layer { bottom: "res4b2_branch2a" top: "res4b2_branch2b" name: "res4b2_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b2_branch2b" top: "res4b2_branch2b" name: "bn4b2_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b2_branch2b" top: "res4b2_branch2b" name: "scale4b2_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b2_branch2b" bottom: "res4b2_branch2b" name: "res4b2_branch2b_relu" type: "ReLU" } layer { bottom: "res4b2_branch2b" top: "res4b2_branch2c" name: "res4b2_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b2_branch2c" top: "res4b2_branch2c" name: "bn4b2_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b2_branch2c" top: "res4b2_branch2c" name: "scale4b2_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b1" bottom: "res4b2_branch2c" top: "res4b2" name: "res4b2" type: "Eltwise" } layer { bottom: "res4b2" top: "res4b2" name: "res4b2_relu" type: "ReLU" } layer { bottom: "res4b2" top: "res4b3_branch2a" name: "res4b3_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b3_branch2a" top: "res4b3_branch2a" name: "bn4b3_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b3_branch2a" top: "res4b3_branch2a" name: "scale4b3_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b3_branch2a" bottom: "res4b3_branch2a" name: "res4b3_branch2a_relu" type: "ReLU" } layer { bottom: "res4b3_branch2a" top: "res4b3_branch2b" name: "res4b3_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b3_branch2b" top: "res4b3_branch2b" name: "bn4b3_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b3_branch2b" top: "res4b3_branch2b" name: "scale4b3_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b3_branch2b" bottom: "res4b3_branch2b" name: "res4b3_branch2b_relu" type: "ReLU" } layer { bottom: "res4b3_branch2b" top: "res4b3_branch2c" name: "res4b3_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b3_branch2c" top: "res4b3_branch2c" name: "bn4b3_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b3_branch2c" top: "res4b3_branch2c" name: "scale4b3_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b2" bottom: "res4b3_branch2c" top: "res4b3" name: "res4b3" type: "Eltwise" } layer { bottom: "res4b3" top: "res4b3" name: "res4b3_relu" type: "ReLU" } layer { bottom: "res4b3" top: "res4b4_branch2a" name: "res4b4_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b4_branch2a" top: "res4b4_branch2a" name: "bn4b4_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b4_branch2a" top: "res4b4_branch2a" name: "scale4b4_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b4_branch2a" bottom: "res4b4_branch2a" name: "res4b4_branch2a_relu" type: "ReLU" } layer { bottom: "res4b4_branch2a" top: "res4b4_branch2b" name: "res4b4_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b4_branch2b" top: "res4b4_branch2b" name: "bn4b4_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b4_branch2b" top: "res4b4_branch2b" name: "scale4b4_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b4_branch2b" bottom: "res4b4_branch2b" name: "res4b4_branch2b_relu" type: "ReLU" } layer { bottom: "res4b4_branch2b" top: "res4b4_branch2c" name: "res4b4_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b4_branch2c" top: "res4b4_branch2c" name: "bn4b4_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b4_branch2c" top: "res4b4_branch2c" name: "scale4b4_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b3" bottom: "res4b4_branch2c" top: "res4b4" name: "res4b4" type: "Eltwise" } layer { bottom: "res4b4" top: "res4b4" name: "res4b4_relu" type: "ReLU" } layer { bottom: "res4b4" top: "res4b5_branch2a" name: "res4b5_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b5_branch2a" top: "res4b5_branch2a" name: "bn4b5_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b5_branch2a" top: "res4b5_branch2a" name: "scale4b5_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b5_branch2a" bottom: "res4b5_branch2a" name: "res4b5_branch2a_relu" type: "ReLU" } layer { bottom: "res4b5_branch2a" top: "res4b5_branch2b" name: "res4b5_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b5_branch2b" top: "res4b5_branch2b" name: "bn4b5_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b5_branch2b" top: "res4b5_branch2b" name: "scale4b5_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b5_branch2b" bottom: "res4b5_branch2b" name: "res4b5_branch2b_relu" type: "ReLU" } layer { bottom: "res4b5_branch2b" top: "res4b5_branch2c" name: "res4b5_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b5_branch2c" top: "res4b5_branch2c" name: "bn4b5_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b5_branch2c" top: "res4b5_branch2c" name: "scale4b5_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b4" bottom: "res4b5_branch2c" top: "res4b5" name: "res4b5" type: "Eltwise" } layer { bottom: "res4b5" top: "res4b5" name: "res4b5_relu" type: "ReLU" } layer { bottom: "res4b5" top: "res4b6_branch2a" name: "res4b6_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b6_branch2a" top: "res4b6_branch2a" name: "bn4b6_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b6_branch2a" top: "res4b6_branch2a" name: "scale4b6_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b6_branch2a" bottom: "res4b6_branch2a" name: "res4b6_branch2a_relu" type: "ReLU" } layer { bottom: "res4b6_branch2a" top: "res4b6_branch2b" name: "res4b6_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b6_branch2b" top: "res4b6_branch2b" name: "bn4b6_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b6_branch2b" top: "res4b6_branch2b" name: "scale4b6_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b6_branch2b" bottom: "res4b6_branch2b" name: "res4b6_branch2b_relu" type: "ReLU" } layer { bottom: "res4b6_branch2b" top: "res4b6_branch2c" name: "res4b6_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b6_branch2c" top: "res4b6_branch2c" name: "bn4b6_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b6_branch2c" top: "res4b6_branch2c" name: "scale4b6_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b5" bottom: "res4b6_branch2c" top: "res4b6" name: "res4b6" type: "Eltwise" } layer { bottom: "res4b6" top: "res4b6" name: "res4b6_relu" type: "ReLU" } layer { bottom: "res4b6" top: "res4b7_branch2a" name: "res4b7_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b7_branch2a" top: "res4b7_branch2a" name: "bn4b7_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b7_branch2a" top: "res4b7_branch2a" name: "scale4b7_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b7_branch2a" bottom: "res4b7_branch2a" name: "res4b7_branch2a_relu" type: "ReLU" } layer { bottom: "res4b7_branch2a" top: "res4b7_branch2b" name: "res4b7_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b7_branch2b" top: "res4b7_branch2b" name: "bn4b7_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b7_branch2b" top: "res4b7_branch2b" name: "scale4b7_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b7_branch2b" bottom: "res4b7_branch2b" name: "res4b7_branch2b_relu" type: "ReLU" } layer { bottom: "res4b7_branch2b" top: "res4b7_branch2c" name: "res4b7_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b7_branch2c" top: "res4b7_branch2c" name: "bn4b7_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b7_branch2c" top: "res4b7_branch2c" name: "scale4b7_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b6" bottom: "res4b7_branch2c" top: "res4b7" name: "res4b7" type: "Eltwise" } layer { bottom: "res4b7" top: "res4b7" name: "res4b7_relu" type: "ReLU" } layer { bottom: "res4b7" top: "res4b8_branch2a" name: "res4b8_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b8_branch2a" top: "res4b8_branch2a" name: "bn4b8_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b8_branch2a" top: "res4b8_branch2a" name: "scale4b8_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b8_branch2a" bottom: "res4b8_branch2a" name: "res4b8_branch2a_relu" type: "ReLU" } layer { bottom: "res4b8_branch2a" top: "res4b8_branch2b" name: "res4b8_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b8_branch2b" top: "res4b8_branch2b" name: "bn4b8_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b8_branch2b" top: "res4b8_branch2b" name: "scale4b8_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b8_branch2b" bottom: "res4b8_branch2b" name: "res4b8_branch2b_relu" type: "ReLU" } layer { bottom: "res4b8_branch2b" top: "res4b8_branch2c" name: "res4b8_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b8_branch2c" top: "res4b8_branch2c" name: "bn4b8_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b8_branch2c" top: "res4b8_branch2c" name: "scale4b8_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b7" bottom: "res4b8_branch2c" top: "res4b8" name: "res4b8" type: "Eltwise" } layer { bottom: "res4b8" top: "res4b8" name: "res4b8_relu" type: "ReLU" } layer { bottom: "res4b8" top: "res4b9_branch2a" name: "res4b9_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b9_branch2a" top: "res4b9_branch2a" name: "bn4b9_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b9_branch2a" top: "res4b9_branch2a" name: "scale4b9_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b9_branch2a" bottom: "res4b9_branch2a" name: "res4b9_branch2a_relu" type: "ReLU" } layer { bottom: "res4b9_branch2a" top: "res4b9_branch2b" name: "res4b9_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b9_branch2b" top: "res4b9_branch2b" name: "bn4b9_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b9_branch2b" top: "res4b9_branch2b" name: "scale4b9_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b9_branch2b" bottom: "res4b9_branch2b" name: "res4b9_branch2b_relu" type: "ReLU" } layer { bottom: "res4b9_branch2b" top: "res4b9_branch2c" name: "res4b9_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b9_branch2c" top: "res4b9_branch2c" name: "bn4b9_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b9_branch2c" top: "res4b9_branch2c" name: "scale4b9_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b8" bottom: "res4b9_branch2c" top: "res4b9" name: "res4b9" type: "Eltwise" } layer { bottom: "res4b9" top: "res4b9" name: "res4b9_relu" type: "ReLU" } layer { bottom: "res4b9" top: "res4b10_branch2a" name: "res4b10_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b10_branch2a" top: "res4b10_branch2a" name: "bn4b10_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b10_branch2a" top: "res4b10_branch2a" name: "scale4b10_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b10_branch2a" bottom: "res4b10_branch2a" name: "res4b10_branch2a_relu" type: "ReLU" } layer { bottom: "res4b10_branch2a" top: "res4b10_branch2b" name: "res4b10_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b10_branch2b" top: "res4b10_branch2b" name: "bn4b10_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b10_branch2b" top: "res4b10_branch2b" name: "scale4b10_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b10_branch2b" bottom: "res4b10_branch2b" name: "res4b10_branch2b_relu" type: "ReLU" } layer { bottom: "res4b10_branch2b" top: "res4b10_branch2c" name: "res4b10_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b10_branch2c" top: "res4b10_branch2c" name: "bn4b10_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b10_branch2c" top: "res4b10_branch2c" name: "scale4b10_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b9" bottom: "res4b10_branch2c" top: "res4b10" name: "res4b10" type: "Eltwise" } layer { bottom: "res4b10" top: "res4b10" name: "res4b10_relu" type: "ReLU" } layer { bottom: "res4b10" top: "res4b11_branch2a" name: "res4b11_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b11_branch2a" top: "res4b11_branch2a" name: "bn4b11_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b11_branch2a" top: "res4b11_branch2a" name: "scale4b11_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b11_branch2a" bottom: "res4b11_branch2a" name: "res4b11_branch2a_relu" type: "ReLU" } layer { bottom: "res4b11_branch2a" top: "res4b11_branch2b" name: "res4b11_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b11_branch2b" top: "res4b11_branch2b" name: "bn4b11_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b11_branch2b" top: "res4b11_branch2b" name: "scale4b11_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b11_branch2b" bottom: "res4b11_branch2b" name: "res4b11_branch2b_relu" type: "ReLU" } layer { bottom: "res4b11_branch2b" top: "res4b11_branch2c" name: "res4b11_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b11_branch2c" top: "res4b11_branch2c" name: "bn4b11_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b11_branch2c" top: "res4b11_branch2c" name: "scale4b11_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b10" bottom: "res4b11_branch2c" top: "res4b11" name: "res4b11" type: "Eltwise" } layer { bottom: "res4b11" top: "res4b11" name: "res4b11_relu" type: "ReLU" } layer { bottom: "res4b11" top: "res4b12_branch2a" name: "res4b12_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b12_branch2a" top: "res4b12_branch2a" name: "bn4b12_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b12_branch2a" top: "res4b12_branch2a" name: "scale4b12_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b12_branch2a" bottom: "res4b12_branch2a" name: "res4b12_branch2a_relu" type: "ReLU" } layer { bottom: "res4b12_branch2a" top: "res4b12_branch2b" name: "res4b12_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b12_branch2b" top: "res4b12_branch2b" name: "bn4b12_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b12_branch2b" top: "res4b12_branch2b" name: "scale4b12_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b12_branch2b" bottom: "res4b12_branch2b" name: "res4b12_branch2b_relu" type: "ReLU" } layer { bottom: "res4b12_branch2b" top: "res4b12_branch2c" name: "res4b12_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b12_branch2c" top: "res4b12_branch2c" name: "bn4b12_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b12_branch2c" top: "res4b12_branch2c" name: "scale4b12_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b11" bottom: "res4b12_branch2c" top: "res4b12" name: "res4b12" type: "Eltwise" } layer { bottom: "res4b12" top: "res4b12" name: "res4b12_relu" type: "ReLU" } layer { bottom: "res4b12" top: "res4b13_branch2a" name: "res4b13_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b13_branch2a" top: "res4b13_branch2a" name: "bn4b13_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b13_branch2a" top: "res4b13_branch2a" name: "scale4b13_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b13_branch2a" bottom: "res4b13_branch2a" name: "res4b13_branch2a_relu" type: "ReLU" } layer { bottom: "res4b13_branch2a" top: "res4b13_branch2b" name: "res4b13_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b13_branch2b" top: "res4b13_branch2b" name: "bn4b13_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b13_branch2b" top: "res4b13_branch2b" name: "scale4b13_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b13_branch2b" bottom: "res4b13_branch2b" name: "res4b13_branch2b_relu" type: "ReLU" } layer { bottom: "res4b13_branch2b" top: "res4b13_branch2c" name: "res4b13_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b13_branch2c" top: "res4b13_branch2c" name: "bn4b13_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b13_branch2c" top: "res4b13_branch2c" name: "scale4b13_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b12" bottom: "res4b13_branch2c" top: "res4b13" name: "res4b13" type: "Eltwise" } layer { bottom: "res4b13" top: "res4b13" name: "res4b13_relu" type: "ReLU" } layer { bottom: "res4b13" top: "res4b14_branch2a" name: "res4b14_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b14_branch2a" top: "res4b14_branch2a" name: "bn4b14_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b14_branch2a" top: "res4b14_branch2a" name: "scale4b14_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b14_branch2a" bottom: "res4b14_branch2a" name: "res4b14_branch2a_relu" type: "ReLU" } layer { bottom: "res4b14_branch2a" top: "res4b14_branch2b" name: "res4b14_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b14_branch2b" top: "res4b14_branch2b" name: "bn4b14_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b14_branch2b" top: "res4b14_branch2b" name: "scale4b14_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b14_branch2b" bottom: "res4b14_branch2b" name: "res4b14_branch2b_relu" type: "ReLU" } layer { bottom: "res4b14_branch2b" top: "res4b14_branch2c" name: "res4b14_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b14_branch2c" top: "res4b14_branch2c" name: "bn4b14_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b14_branch2c" top: "res4b14_branch2c" name: "scale4b14_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b13" bottom: "res4b14_branch2c" top: "res4b14" name: "res4b14" type: "Eltwise" } layer { bottom: "res4b14" top: "res4b14" name: "res4b14_relu" type: "ReLU" } layer { bottom: "res4b14" top: "res4b15_branch2a" name: "res4b15_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b15_branch2a" top: "res4b15_branch2a" name: "bn4b15_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b15_branch2a" top: "res4b15_branch2a" name: "scale4b15_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b15_branch2a" bottom: "res4b15_branch2a" name: "res4b15_branch2a_relu" type: "ReLU" } layer { bottom: "res4b15_branch2a" top: "res4b15_branch2b" name: "res4b15_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b15_branch2b" top: "res4b15_branch2b" name: "bn4b15_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b15_branch2b" top: "res4b15_branch2b" name: "scale4b15_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b15_branch2b" bottom: "res4b15_branch2b" name: "res4b15_branch2b_relu" type: "ReLU" } layer { bottom: "res4b15_branch2b" top: "res4b15_branch2c" name: "res4b15_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b15_branch2c" top: "res4b15_branch2c" name: "bn4b15_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b15_branch2c" top: "res4b15_branch2c" name: "scale4b15_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b14" bottom: "res4b15_branch2c" top: "res4b15" name: "res4b15" type: "Eltwise" } layer { bottom: "res4b15" top: "res4b15" name: "res4b15_relu" type: "ReLU" } layer { bottom: "res4b15" top: "res4b16_branch2a" name: "res4b16_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b16_branch2a" top: "res4b16_branch2a" name: "bn4b16_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b16_branch2a" top: "res4b16_branch2a" name: "scale4b16_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b16_branch2a" bottom: "res4b16_branch2a" name: "res4b16_branch2a_relu" type: "ReLU" } layer { bottom: "res4b16_branch2a" top: "res4b16_branch2b" name: "res4b16_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b16_branch2b" top: "res4b16_branch2b" name: "bn4b16_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b16_branch2b" top: "res4b16_branch2b" name: "scale4b16_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b16_branch2b" bottom: "res4b16_branch2b" name: "res4b16_branch2b_relu" type: "ReLU" } layer { bottom: "res4b16_branch2b" top: "res4b16_branch2c" name: "res4b16_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b16_branch2c" top: "res4b16_branch2c" name: "bn4b16_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b16_branch2c" top: "res4b16_branch2c" name: "scale4b16_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b15" bottom: "res4b16_branch2c" top: "res4b16" name: "res4b16" type: "Eltwise" } layer { bottom: "res4b16" top: "res4b16" name: "res4b16_relu" type: "ReLU" } layer { bottom: "res4b16" top: "res4b17_branch2a" name: "res4b17_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b17_branch2a" top: "res4b17_branch2a" name: "bn4b17_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b17_branch2a" top: "res4b17_branch2a" name: "scale4b17_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b17_branch2a" bottom: "res4b17_branch2a" name: "res4b17_branch2a_relu" type: "ReLU" } layer { bottom: "res4b17_branch2a" top: "res4b17_branch2b" name: "res4b17_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b17_branch2b" top: "res4b17_branch2b" name: "bn4b17_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b17_branch2b" top: "res4b17_branch2b" name: "scale4b17_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b17_branch2b" bottom: "res4b17_branch2b" name: "res4b17_branch2b_relu" type: "ReLU" } layer { bottom: "res4b17_branch2b" top: "res4b17_branch2c" name: "res4b17_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b17_branch2c" top: "res4b17_branch2c" name: "bn4b17_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b17_branch2c" top: "res4b17_branch2c" name: "scale4b17_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b16" bottom: "res4b17_branch2c" top: "res4b17" name: "res4b17" type: "Eltwise" } layer { bottom: "res4b17" top: "res4b17" name: "res4b17_relu" type: "ReLU" } layer { bottom: "res4b17" top: "res4b18_branch2a" name: "res4b18_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b18_branch2a" top: "res4b18_branch2a" name: "bn4b18_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b18_branch2a" top: "res4b18_branch2a" name: "scale4b18_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b18_branch2a" bottom: "res4b18_branch2a" name: "res4b18_branch2a_relu" type: "ReLU" } layer { bottom: "res4b18_branch2a" top: "res4b18_branch2b" name: "res4b18_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b18_branch2b" top: "res4b18_branch2b" name: "bn4b18_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b18_branch2b" top: "res4b18_branch2b" name: "scale4b18_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b18_branch2b" bottom: "res4b18_branch2b" name: "res4b18_branch2b_relu" type: "ReLU" } layer { bottom: "res4b18_branch2b" top: "res4b18_branch2c" name: "res4b18_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b18_branch2c" top: "res4b18_branch2c" name: "bn4b18_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b18_branch2c" top: "res4b18_branch2c" name: "scale4b18_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b17" bottom: "res4b18_branch2c" top: "res4b18" name: "res4b18" type: "Eltwise" } layer { bottom: "res4b18" top: "res4b18" name: "res4b18_relu" type: "ReLU" } layer { bottom: "res4b18" top: "res4b19_branch2a" name: "res4b19_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b19_branch2a" top: "res4b19_branch2a" name: "bn4b19_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b19_branch2a" top: "res4b19_branch2a" name: "scale4b19_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b19_branch2a" bottom: "res4b19_branch2a" name: "res4b19_branch2a_relu" type: "ReLU" } layer { bottom: "res4b19_branch2a" top: "res4b19_branch2b" name: "res4b19_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b19_branch2b" top: "res4b19_branch2b" name: "bn4b19_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b19_branch2b" top: "res4b19_branch2b" name: "scale4b19_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b19_branch2b" bottom: "res4b19_branch2b" name: "res4b19_branch2b_relu" type: "ReLU" } layer { bottom: "res4b19_branch2b" top: "res4b19_branch2c" name: "res4b19_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b19_branch2c" top: "res4b19_branch2c" name: "bn4b19_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b19_branch2c" top: "res4b19_branch2c" name: "scale4b19_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b18" bottom: "res4b19_branch2c" top: "res4b19" name: "res4b19" type: "Eltwise" } layer { bottom: "res4b19" top: "res4b19" name: "res4b19_relu" type: "ReLU" } layer { bottom: "res4b19" top: "res4b20_branch2a" name: "res4b20_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b20_branch2a" top: "res4b20_branch2a" name: "bn4b20_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b20_branch2a" top: "res4b20_branch2a" name: "scale4b20_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b20_branch2a" bottom: "res4b20_branch2a" name: "res4b20_branch2a_relu" type: "ReLU" } layer { bottom: "res4b20_branch2a" top: "res4b20_branch2b" name: "res4b20_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b20_branch2b" top: "res4b20_branch2b" name: "bn4b20_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b20_branch2b" top: "res4b20_branch2b" name: "scale4b20_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b20_branch2b" bottom: "res4b20_branch2b" name: "res4b20_branch2b_relu" type: "ReLU" } layer { bottom: "res4b20_branch2b" top: "res4b20_branch2c" name: "res4b20_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b20_branch2c" top: "res4b20_branch2c" name: "bn4b20_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b20_branch2c" top: "res4b20_branch2c" name: "scale4b20_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b19" bottom: "res4b20_branch2c" top: "res4b20" name: "res4b20" type: "Eltwise" } layer { bottom: "res4b20" top: "res4b20" name: "res4b20_relu" type: "ReLU" } layer { bottom: "res4b20" top: "res4b21_branch2a" name: "res4b21_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b21_branch2a" top: "res4b21_branch2a" name: "bn4b21_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b21_branch2a" top: "res4b21_branch2a" name: "scale4b21_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b21_branch2a" bottom: "res4b21_branch2a" name: "res4b21_branch2a_relu" type: "ReLU" } layer { bottom: "res4b21_branch2a" top: "res4b21_branch2b" name: "res4b21_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b21_branch2b" top: "res4b21_branch2b" name: "bn4b21_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b21_branch2b" top: "res4b21_branch2b" name: "scale4b21_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b21_branch2b" bottom: "res4b21_branch2b" name: "res4b21_branch2b_relu" type: "ReLU" } layer { bottom: "res4b21_branch2b" top: "res4b21_branch2c" name: "res4b21_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b21_branch2c" top: "res4b21_branch2c" name: "bn4b21_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b21_branch2c" top: "res4b21_branch2c" name: "scale4b21_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b20" bottom: "res4b21_branch2c" top: "res4b21" name: "res4b21" type: "Eltwise" } layer { bottom: "res4b21" top: "res4b21" name: "res4b21_relu" type: "ReLU" } layer { bottom: "res4b21" top: "res4b22_branch2a" name: "res4b22_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b22_branch2a" top: "res4b22_branch2a" name: "bn4b22_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b22_branch2a" top: "res4b22_branch2a" name: "scale4b22_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b22_branch2a" bottom: "res4b22_branch2a" name: "res4b22_branch2a_relu" type: "ReLU" } layer { bottom: "res4b22_branch2a" top: "res4b22_branch2b" name: "res4b22_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b22_branch2b" top: "res4b22_branch2b" name: "bn4b22_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b22_branch2b" top: "res4b22_branch2b" name: "scale4b22_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b22_branch2b" bottom: "res4b22_branch2b" name: "res4b22_branch2b_relu" type: "ReLU" } layer { bottom: "res4b22_branch2b" top: "res4b22_branch2c" name: "res4b22_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b22_branch2c" top: "res4b22_branch2c" name: "bn4b22_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b22_branch2c" top: "res4b22_branch2c" name: "scale4b22_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b21" bottom: "res4b22_branch2c" top: "res4b22" name: "res4b22" type: "Eltwise" } layer { bottom: "res4b22" top: "res4b22" name: "res4b22_relu" type: "ReLU" } layer { bottom: "res4b22" top: "res4b23_branch2a" name: "res4b23_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b23_branch2a" top: "res4b23_branch2a" name: "bn4b23_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b23_branch2a" top: "res4b23_branch2a" name: "scale4b23_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b23_branch2a" bottom: "res4b23_branch2a" name: "res4b23_branch2a_relu" type: "ReLU" } layer { bottom: "res4b23_branch2a" top: "res4b23_branch2b" name: "res4b23_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b23_branch2b" top: "res4b23_branch2b" name: "bn4b23_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b23_branch2b" top: "res4b23_branch2b" name: "scale4b23_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b23_branch2b" bottom: "res4b23_branch2b" name: "res4b23_branch2b_relu" type: "ReLU" } layer { bottom: "res4b23_branch2b" top: "res4b23_branch2c" name: "res4b23_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b23_branch2c" top: "res4b23_branch2c" name: "bn4b23_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b23_branch2c" top: "res4b23_branch2c" name: "scale4b23_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b22" bottom: "res4b23_branch2c" top: "res4b23" name: "res4b23" type: "Eltwise" } layer { bottom: "res4b23" top: "res4b23" name: "res4b23_relu" type: "ReLU" } layer { bottom: "res4b23" top: "res4b24_branch2a" name: "res4b24_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b24_branch2a" top: "res4b24_branch2a" name: "bn4b24_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b24_branch2a" top: "res4b24_branch2a" name: "scale4b24_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b24_branch2a" bottom: "res4b24_branch2a" name: "res4b24_branch2a_relu" type: "ReLU" } layer { bottom: "res4b24_branch2a" top: "res4b24_branch2b" name: "res4b24_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b24_branch2b" top: "res4b24_branch2b" name: "bn4b24_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b24_branch2b" top: "res4b24_branch2b" name: "scale4b24_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b24_branch2b" bottom: "res4b24_branch2b" name: "res4b24_branch2b_relu" type: "ReLU" } layer { bottom: "res4b24_branch2b" top: "res4b24_branch2c" name: "res4b24_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b24_branch2c" top: "res4b24_branch2c" name: "bn4b24_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b24_branch2c" top: "res4b24_branch2c" name: "scale4b24_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b23" bottom: "res4b24_branch2c" top: "res4b24" name: "res4b24" type: "Eltwise" } layer { bottom: "res4b24" top: "res4b24" name: "res4b24_relu" type: "ReLU" } layer { bottom: "res4b24" top: "res4b25_branch2a" name: "res4b25_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b25_branch2a" top: "res4b25_branch2a" name: "bn4b25_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b25_branch2a" top: "res4b25_branch2a" name: "scale4b25_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b25_branch2a" bottom: "res4b25_branch2a" name: "res4b25_branch2a_relu" type: "ReLU" } layer { bottom: "res4b25_branch2a" top: "res4b25_branch2b" name: "res4b25_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b25_branch2b" top: "res4b25_branch2b" name: "bn4b25_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b25_branch2b" top: "res4b25_branch2b" name: "scale4b25_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b25_branch2b" bottom: "res4b25_branch2b" name: "res4b25_branch2b_relu" type: "ReLU" } layer { bottom: "res4b25_branch2b" top: "res4b25_branch2c" name: "res4b25_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b25_branch2c" top: "res4b25_branch2c" name: "bn4b25_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b25_branch2c" top: "res4b25_branch2c" name: "scale4b25_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b24" bottom: "res4b25_branch2c" top: "res4b25" name: "res4b25" type: "Eltwise" } layer { bottom: "res4b25" top: "res4b25" name: "res4b25_relu" type: "ReLU" } layer { bottom: "res4b25" top: "res4b26_branch2a" name: "res4b26_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b26_branch2a" top: "res4b26_branch2a" name: "bn4b26_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b26_branch2a" top: "res4b26_branch2a" name: "scale4b26_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b26_branch2a" bottom: "res4b26_branch2a" name: "res4b26_branch2a_relu" type: "ReLU" } layer { bottom: "res4b26_branch2a" top: "res4b26_branch2b" name: "res4b26_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b26_branch2b" top: "res4b26_branch2b" name: "bn4b26_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b26_branch2b" top: "res4b26_branch2b" name: "scale4b26_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b26_branch2b" bottom: "res4b26_branch2b" name: "res4b26_branch2b_relu" type: "ReLU" } layer { bottom: "res4b26_branch2b" top: "res4b26_branch2c" name: "res4b26_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b26_branch2c" top: "res4b26_branch2c" name: "bn4b26_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b26_branch2c" top: "res4b26_branch2c" name: "scale4b26_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b25" bottom: "res4b26_branch2c" top: "res4b26" name: "res4b26" type: "Eltwise" } layer { bottom: "res4b26" top: "res4b26" name: "res4b26_relu" type: "ReLU" } layer { bottom: "res4b26" top: "res4b27_branch2a" name: "res4b27_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b27_branch2a" top: "res4b27_branch2a" name: "bn4b27_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b27_branch2a" top: "res4b27_branch2a" name: "scale4b27_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b27_branch2a" bottom: "res4b27_branch2a" name: "res4b27_branch2a_relu" type: "ReLU" } layer { bottom: "res4b27_branch2a" top: "res4b27_branch2b" name: "res4b27_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b27_branch2b" top: "res4b27_branch2b" name: "bn4b27_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b27_branch2b" top: "res4b27_branch2b" name: "scale4b27_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b27_branch2b" bottom: "res4b27_branch2b" name: "res4b27_branch2b_relu" type: "ReLU" } layer { bottom: "res4b27_branch2b" top: "res4b27_branch2c" name: "res4b27_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b27_branch2c" top: "res4b27_branch2c" name: "bn4b27_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b27_branch2c" top: "res4b27_branch2c" name: "scale4b27_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b26" bottom: "res4b27_branch2c" top: "res4b27" name: "res4b27" type: "Eltwise" } layer { bottom: "res4b27" top: "res4b27" name: "res4b27_relu" type: "ReLU" } layer { bottom: "res4b27" top: "res4b28_branch2a" name: "res4b28_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b28_branch2a" top: "res4b28_branch2a" name: "bn4b28_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b28_branch2a" top: "res4b28_branch2a" name: "scale4b28_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b28_branch2a" bottom: "res4b28_branch2a" name: "res4b28_branch2a_relu" type: "ReLU" } layer { bottom: "res4b28_branch2a" top: "res4b28_branch2b" name: "res4b28_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b28_branch2b" top: "res4b28_branch2b" name: "bn4b28_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b28_branch2b" top: "res4b28_branch2b" name: "scale4b28_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b28_branch2b" bottom: "res4b28_branch2b" name: "res4b28_branch2b_relu" type: "ReLU" } layer { bottom: "res4b28_branch2b" top: "res4b28_branch2c" name: "res4b28_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b28_branch2c" top: "res4b28_branch2c" name: "bn4b28_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b28_branch2c" top: "res4b28_branch2c" name: "scale4b28_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b27" bottom: "res4b28_branch2c" top: "res4b28" name: "res4b28" type: "Eltwise" } layer { bottom: "res4b28" top: "res4b28" name: "res4b28_relu" type: "ReLU" } layer { bottom: "res4b28" top: "res4b29_branch2a" name: "res4b29_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b29_branch2a" top: "res4b29_branch2a" name: "bn4b29_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b29_branch2a" top: "res4b29_branch2a" name: "scale4b29_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b29_branch2a" bottom: "res4b29_branch2a" name: "res4b29_branch2a_relu" type: "ReLU" } layer { bottom: "res4b29_branch2a" top: "res4b29_branch2b" name: "res4b29_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b29_branch2b" top: "res4b29_branch2b" name: "bn4b29_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b29_branch2b" top: "res4b29_branch2b" name: "scale4b29_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b29_branch2b" bottom: "res4b29_branch2b" name: "res4b29_branch2b_relu" type: "ReLU" } layer { bottom: "res4b29_branch2b" top: "res4b29_branch2c" name: "res4b29_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b29_branch2c" top: "res4b29_branch2c" name: "bn4b29_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b29_branch2c" top: "res4b29_branch2c" name: "scale4b29_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b28" bottom: "res4b29_branch2c" top: "res4b29" name: "res4b29" type: "Eltwise" } layer { bottom: "res4b29" top: "res4b29" name: "res4b29_relu" type: "ReLU" } layer { bottom: "res4b29" top: "res4b30_branch2a" name: "res4b30_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b30_branch2a" top: "res4b30_branch2a" name: "bn4b30_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b30_branch2a" top: "res4b30_branch2a" name: "scale4b30_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b30_branch2a" bottom: "res4b30_branch2a" name: "res4b30_branch2a_relu" type: "ReLU" } layer { bottom: "res4b30_branch2a" top: "res4b30_branch2b" name: "res4b30_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b30_branch2b" top: "res4b30_branch2b" name: "bn4b30_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b30_branch2b" top: "res4b30_branch2b" name: "scale4b30_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b30_branch2b" bottom: "res4b30_branch2b" name: "res4b30_branch2b_relu" type: "ReLU" } layer { bottom: "res4b30_branch2b" top: "res4b30_branch2c" name: "res4b30_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b30_branch2c" top: "res4b30_branch2c" name: "bn4b30_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b30_branch2c" top: "res4b30_branch2c" name: "scale4b30_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b29" bottom: "res4b30_branch2c" top: "res4b30" name: "res4b30" type: "Eltwise" } layer { bottom: "res4b30" top: "res4b30" name: "res4b30_relu" type: "ReLU" } layer { bottom: "res4b30" top: "res4b31_branch2a" name: "res4b31_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b31_branch2a" top: "res4b31_branch2a" name: "bn4b31_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b31_branch2a" top: "res4b31_branch2a" name: "scale4b31_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b31_branch2a" bottom: "res4b31_branch2a" name: "res4b31_branch2a_relu" type: "ReLU" } layer { bottom: "res4b31_branch2a" top: "res4b31_branch2b" name: "res4b31_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b31_branch2b" top: "res4b31_branch2b" name: "bn4b31_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b31_branch2b" top: "res4b31_branch2b" name: "scale4b31_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b31_branch2b" bottom: "res4b31_branch2b" name: "res4b31_branch2b_relu" type: "ReLU" } layer { bottom: "res4b31_branch2b" top: "res4b31_branch2c" name: "res4b31_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b31_branch2c" top: "res4b31_branch2c" name: "bn4b31_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b31_branch2c" top: "res4b31_branch2c" name: "scale4b31_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b30" bottom: "res4b31_branch2c" top: "res4b31" name: "res4b31" type: "Eltwise" } layer { bottom: "res4b31" top: "res4b31" name: "res4b31_relu" type: "ReLU" } layer { bottom: "res4b31" top: "res4b32_branch2a" name: "res4b32_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b32_branch2a" top: "res4b32_branch2a" name: "bn4b32_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b32_branch2a" top: "res4b32_branch2a" name: "scale4b32_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b32_branch2a" bottom: "res4b32_branch2a" name: "res4b32_branch2a_relu" type: "ReLU" } layer { bottom: "res4b32_branch2a" top: "res4b32_branch2b" name: "res4b32_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b32_branch2b" top: "res4b32_branch2b" name: "bn4b32_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b32_branch2b" top: "res4b32_branch2b" name: "scale4b32_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b32_branch2b" bottom: "res4b32_branch2b" name: "res4b32_branch2b_relu" type: "ReLU" } layer { bottom: "res4b32_branch2b" top: "res4b32_branch2c" name: "res4b32_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b32_branch2c" top: "res4b32_branch2c" name: "bn4b32_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b32_branch2c" top: "res4b32_branch2c" name: "scale4b32_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b31" bottom: "res4b32_branch2c" top: "res4b32" name: "res4b32" type: "Eltwise" } layer { bottom: "res4b32" top: "res4b32" name: "res4b32_relu" type: "ReLU" } layer { bottom: "res4b32" top: "res4b33_branch2a" name: "res4b33_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b33_branch2a" top: "res4b33_branch2a" name: "bn4b33_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b33_branch2a" top: "res4b33_branch2a" name: "scale4b33_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b33_branch2a" bottom: "res4b33_branch2a" name: "res4b33_branch2a_relu" type: "ReLU" } layer { bottom: "res4b33_branch2a" top: "res4b33_branch2b" name: "res4b33_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b33_branch2b" top: "res4b33_branch2b" name: "bn4b33_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b33_branch2b" top: "res4b33_branch2b" name: "scale4b33_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b33_branch2b" bottom: "res4b33_branch2b" name: "res4b33_branch2b_relu" type: "ReLU" } layer { bottom: "res4b33_branch2b" top: "res4b33_branch2c" name: "res4b33_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b33_branch2c" top: "res4b33_branch2c" name: "bn4b33_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b33_branch2c" top: "res4b33_branch2c" name: "scale4b33_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b32" bottom: "res4b33_branch2c" top: "res4b33" name: "res4b33" type: "Eltwise" } layer { bottom: "res4b33" top: "res4b33" name: "res4b33_relu" type: "ReLU" } layer { bottom: "res4b33" top: "res4b34_branch2a" name: "res4b34_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b34_branch2a" top: "res4b34_branch2a" name: "bn4b34_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b34_branch2a" top: "res4b34_branch2a" name: "scale4b34_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b34_branch2a" bottom: "res4b34_branch2a" name: "res4b34_branch2a_relu" type: "ReLU" } layer { bottom: "res4b34_branch2a" top: "res4b34_branch2b" name: "res4b34_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b34_branch2b" top: "res4b34_branch2b" name: "bn4b34_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b34_branch2b" top: "res4b34_branch2b" name: "scale4b34_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b34_branch2b" bottom: "res4b34_branch2b" name: "res4b34_branch2b_relu" type: "ReLU" } layer { bottom: "res4b34_branch2b" top: "res4b34_branch2c" name: "res4b34_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b34_branch2c" top: "res4b34_branch2c" name: "bn4b34_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b34_branch2c" top: "res4b34_branch2c" name: "scale4b34_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b33" bottom: "res4b34_branch2c" top: "res4b34" name: "res4b34" type: "Eltwise" } layer { bottom: "res4b34" top: "res4b34" name: "res4b34_relu" type: "ReLU" } layer { bottom: "res4b34" top: "res4b35_branch2a" name: "res4b35_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b35_branch2a" top: "res4b35_branch2a" name: "bn4b35_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b35_branch2a" top: "res4b35_branch2a" name: "scale4b35_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b35_branch2a" bottom: "res4b35_branch2a" name: "res4b35_branch2a_relu" type: "ReLU" } layer { bottom: "res4b35_branch2a" top: "res4b35_branch2b" name: "res4b35_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b35_branch2b" top: "res4b35_branch2b" name: "bn4b35_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b35_branch2b" top: "res4b35_branch2b" name: "scale4b35_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res4b35_branch2b" bottom: "res4b35_branch2b" name: "res4b35_branch2b_relu" type: "ReLU" } layer { bottom: "res4b35_branch2b" top: "res4b35_branch2c" name: "res4b35_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b35_branch2c" top: "res4b35_branch2c" name: "bn4b35_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b35_branch2c" top: "res4b35_branch2c" name: "scale4b35_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b34" bottom: "res4b35_branch2c" top: "res4b35" name: "res4b35" type: "Eltwise" } layer { bottom: "res4b35" top: "res4b35" name: "res4b35_relu" type: "ReLU" } layer { bottom: "res4b35" top: "res5a_branch1" name: "res5a_branch1" type: "Convolution" convolution_param { num_output: 2048 kernel_size: 1 pad: 0 stride: 2 bias_term: false } } layer { bottom: "res5a_branch1" top: "res5a_branch1" name: "bn5a_branch1" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5a_branch1" top: "res5a_branch1" name: "scale5a_branch1" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b35" top: "res5a_branch2a" name: "res5a_branch2a" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 2 bias_term: false } } layer { bottom: "res5a_branch2a" top: "res5a_branch2a" name: "bn5a_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5a_branch2a" top: "res5a_branch2a" name: "scale5a_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res5a_branch2a" bottom: "res5a_branch2a" name: "res5a_branch2a_relu" type: "ReLU" } layer { bottom: "res5a_branch2a" top: "res5a_branch2b" name: "res5a_branch2b" type: "Convolution" convolution_param { num_output: 512 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res5a_branch2b" top: "res5a_branch2b" name: "bn5a_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5a_branch2b" top: "res5a_branch2b" name: "scale5a_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res5a_branch2b" bottom: "res5a_branch2b" name: "res5a_branch2b_relu" type: "ReLU" } layer { bottom: "res5a_branch2b" top: "res5a_branch2c" name: "res5a_branch2c" type: "Convolution" convolution_param { num_output: 2048 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res5a_branch2c" top: "res5a_branch2c" name: "bn5a_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5a_branch2c" top: "res5a_branch2c" name: "scale5a_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res5a_branch1" bottom: "res5a_branch2c" top: "res5a" name: "res5a" type: "Eltwise" } layer { bottom: "res5a" top: "res5a" name: "res5a_relu" type: "ReLU" } layer { bottom: "res5a" top: "res5b_branch2a" name: "res5b_branch2a" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res5b_branch2a" top: "res5b_branch2a" name: "bn5b_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5b_branch2a" top: "res5b_branch2a" name: "scale5b_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res5b_branch2a" bottom: "res5b_branch2a" name: "res5b_branch2a_relu" type: "ReLU" } layer { bottom: "res5b_branch2a" top: "res5b_branch2b" name: "res5b_branch2b" type: "Convolution" convolution_param { num_output: 512 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res5b_branch2b" top: "res5b_branch2b" name: "bn5b_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5b_branch2b" top: "res5b_branch2b" name: "scale5b_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res5b_branch2b" bottom: "res5b_branch2b" name: "res5b_branch2b_relu" type: "ReLU" } layer { bottom: "res5b_branch2b" top: "res5b_branch2c" name: "res5b_branch2c" type: "Convolution" convolution_param { num_output: 2048 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res5b_branch2c" top: "res5b_branch2c" name: "bn5b_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5b_branch2c" top: "res5b_branch2c" name: "scale5b_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res5a" bottom: "res5b_branch2c" top: "res5b" name: "res5b" type: "Eltwise" } layer { bottom: "res5b" top: "res5b" name: "res5b_relu" type: "ReLU" } layer { bottom: "res5b" top: "res5c_branch2a" name: "res5c_branch2a" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res5c_branch2a" top: "res5c_branch2a" name: "bn5c_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5c_branch2a" top: "res5c_branch2a" name: "scale5c_branch2a" type: "Scale" scale_param { bias_term: true } } layer { top: "res5c_branch2a" bottom: "res5c_branch2a" name: "res5c_branch2a_relu" type: "ReLU" } layer { bottom: "res5c_branch2a" top: "res5c_branch2b" name: "res5c_branch2b" type: "Convolution" convolution_param { num_output: 512 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res5c_branch2b" top: "res5c_branch2b" name: "bn5c_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5c_branch2b" top: "res5c_branch2b" name: "scale5c_branch2b" type: "Scale" scale_param { bias_term: true } } layer { top: "res5c_branch2b" bottom: "res5c_branch2b" name: "res5c_branch2b_relu" type: "ReLU" } layer { bottom: "res5c_branch2b" top: "res5c_branch2c" name: "res5c_branch2c" type: "Convolution" convolution_param { num_output: 2048 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res5c_branch2c" top: "res5c_branch2c" name: "bn5c_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5c_branch2c" top: "res5c_branch2c" name: "scale5c_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res5b" bottom: "res5c_branch2c" top: "res5c" name: "res5c" type: "Eltwise" } layer { bottom: "res5c" top: "res5c" name: "res5c_relu" type: "ReLU" } layer { bottom: "res5c" top: "pool5" name: "pool5" type: "Pooling" pooling_param { kernel_size: 7 stride: 1 pool: AVE } } layer { bottom: "pool5" top: "fc1000" name: "fc1000" type: "InnerProduct" inner_product_param { num_output: 1000 } } layer { bottom: "fc1000" top: "prob" name: "prob" type: "Softmax" } ================================================ FILE: prototxt/ResNet-50-deploy.prototxt ================================================ name: "ResNet-50" input: "data" input_dim: 1 input_dim: 3 input_dim: 224 input_dim: 224 layer { bottom: "data" top: "conv1" name: "conv1" type: "Convolution" convolution_param { num_output: 64 kernel_size: 7 pad: 3 stride: 2 } } layer { bottom: "conv1" top: "conv1" name: "bn_conv1" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "conv1" top: "conv1" name: "scale_conv1" type: "Scale" scale_param { bias_term: true } } layer { bottom: "conv1" top: "conv1" name: "conv1_relu" type: "ReLU" } layer { bottom: "conv1" top: "pool1" name: "pool1" type: "Pooling" pooling_param { kernel_size: 3 stride: 2 pool: MAX } } layer { bottom: "pool1" top: "res2a_branch1" name: "res2a_branch1" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2a_branch1" top: "res2a_branch1" name: "bn2a_branch1" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2a_branch1" top: "res2a_branch1" name: "scale2a_branch1" type: "Scale" scale_param { bias_term: true } } layer { bottom: "pool1" top: "res2a_branch2a" name: "res2a_branch2a" type: "Convolution" convolution_param { num_output: 64 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2a_branch2a" top: "res2a_branch2a" name: "bn2a_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2a_branch2a" top: "res2a_branch2a" name: "scale2a_branch2a" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res2a_branch2a" top: "res2a_branch2a" name: "res2a_branch2a_relu" type: "ReLU" } layer { bottom: "res2a_branch2a" top: "res2a_branch2b" name: "res2a_branch2b" type: "Convolution" convolution_param { num_output: 64 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res2a_branch2b" top: "res2a_branch2b" name: "bn2a_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2a_branch2b" top: "res2a_branch2b" name: "scale2a_branch2b" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res2a_branch2b" top: "res2a_branch2b" name: "res2a_branch2b_relu" type: "ReLU" } layer { bottom: "res2a_branch2b" top: "res2a_branch2c" name: "res2a_branch2c" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2a_branch2c" top: "res2a_branch2c" name: "bn2a_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2a_branch2c" top: "res2a_branch2c" name: "scale2a_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res2a_branch1" bottom: "res2a_branch2c" top: "res2a" name: "res2a" type: "Eltwise" } layer { bottom: "res2a" top: "res2a" name: "res2a_relu" type: "ReLU" } layer { bottom: "res2a" top: "res2b_branch2a" name: "res2b_branch2a" type: "Convolution" convolution_param { num_output: 64 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2b_branch2a" top: "res2b_branch2a" name: "bn2b_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2b_branch2a" top: "res2b_branch2a" name: "scale2b_branch2a" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res2b_branch2a" top: "res2b_branch2a" name: "res2b_branch2a_relu" type: "ReLU" } layer { bottom: "res2b_branch2a" top: "res2b_branch2b" name: "res2b_branch2b" type: "Convolution" convolution_param { num_output: 64 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res2b_branch2b" top: "res2b_branch2b" name: "bn2b_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2b_branch2b" top: "res2b_branch2b" name: "scale2b_branch2b" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res2b_branch2b" top: "res2b_branch2b" name: "res2b_branch2b_relu" type: "ReLU" } layer { bottom: "res2b_branch2b" top: "res2b_branch2c" name: "res2b_branch2c" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2b_branch2c" top: "res2b_branch2c" name: "bn2b_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2b_branch2c" top: "res2b_branch2c" name: "scale2b_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res2a" bottom: "res2b_branch2c" top: "res2b" name: "res2b" type: "Eltwise" } layer { bottom: "res2b" top: "res2b" name: "res2b_relu" type: "ReLU" } layer { bottom: "res2b" top: "res2c_branch2a" name: "res2c_branch2a" type: "Convolution" convolution_param { num_output: 64 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2c_branch2a" top: "res2c_branch2a" name: "bn2c_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2c_branch2a" top: "res2c_branch2a" name: "scale2c_branch2a" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res2c_branch2a" top: "res2c_branch2a" name: "res2c_branch2a_relu" type: "ReLU" } layer { bottom: "res2c_branch2a" top: "res2c_branch2b" name: "res2c_branch2b" type: "Convolution" convolution_param { num_output: 64 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res2c_branch2b" top: "res2c_branch2b" name: "bn2c_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2c_branch2b" top: "res2c_branch2b" name: "scale2c_branch2b" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res2c_branch2b" top: "res2c_branch2b" name: "res2c_branch2b_relu" type: "ReLU" } layer { bottom: "res2c_branch2b" top: "res2c_branch2c" name: "res2c_branch2c" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res2c_branch2c" top: "res2c_branch2c" name: "bn2c_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res2c_branch2c" top: "res2c_branch2c" name: "scale2c_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res2b" bottom: "res2c_branch2c" top: "res2c" name: "res2c" type: "Eltwise" } layer { bottom: "res2c" top: "res2c" name: "res2c_relu" type: "ReLU" } layer { bottom: "res2c" top: "res3a_branch1" name: "res3a_branch1" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 2 bias_term: false } } layer { bottom: "res3a_branch1" top: "res3a_branch1" name: "bn3a_branch1" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3a_branch1" top: "res3a_branch1" name: "scale3a_branch1" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res2c" top: "res3a_branch2a" name: "res3a_branch2a" type: "Convolution" convolution_param { num_output: 128 kernel_size: 1 pad: 0 stride: 2 bias_term: false } } layer { bottom: "res3a_branch2a" top: "res3a_branch2a" name: "bn3a_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3a_branch2a" top: "res3a_branch2a" name: "scale3a_branch2a" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3a_branch2a" top: "res3a_branch2a" name: "res3a_branch2a_relu" type: "ReLU" } layer { bottom: "res3a_branch2a" top: "res3a_branch2b" name: "res3a_branch2b" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res3a_branch2b" top: "res3a_branch2b" name: "bn3a_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3a_branch2b" top: "res3a_branch2b" name: "scale3a_branch2b" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3a_branch2b" top: "res3a_branch2b" name: "res3a_branch2b_relu" type: "ReLU" } layer { bottom: "res3a_branch2b" top: "res3a_branch2c" name: "res3a_branch2c" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3a_branch2c" top: "res3a_branch2c" name: "bn3a_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3a_branch2c" top: "res3a_branch2c" name: "scale3a_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3a_branch1" bottom: "res3a_branch2c" top: "res3a" name: "res3a" type: "Eltwise" } layer { bottom: "res3a" top: "res3a" name: "res3a_relu" type: "ReLU" } layer { bottom: "res3a" top: "res3b_branch2a" name: "res3b_branch2a" type: "Convolution" convolution_param { num_output: 128 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b_branch2a" top: "res3b_branch2a" name: "bn3b_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b_branch2a" top: "res3b_branch2a" name: "scale3b_branch2a" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3b_branch2a" top: "res3b_branch2a" name: "res3b_branch2a_relu" type: "ReLU" } layer { bottom: "res3b_branch2a" top: "res3b_branch2b" name: "res3b_branch2b" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res3b_branch2b" top: "res3b_branch2b" name: "bn3b_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b_branch2b" top: "res3b_branch2b" name: "scale3b_branch2b" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3b_branch2b" top: "res3b_branch2b" name: "res3b_branch2b_relu" type: "ReLU" } layer { bottom: "res3b_branch2b" top: "res3b_branch2c" name: "res3b_branch2c" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3b_branch2c" top: "res3b_branch2c" name: "bn3b_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3b_branch2c" top: "res3b_branch2c" name: "scale3b_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3a" bottom: "res3b_branch2c" top: "res3b" name: "res3b" type: "Eltwise" } layer { bottom: "res3b" top: "res3b" name: "res3b_relu" type: "ReLU" } layer { bottom: "res3b" top: "res3c_branch2a" name: "res3c_branch2a" type: "Convolution" convolution_param { num_output: 128 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3c_branch2a" top: "res3c_branch2a" name: "bn3c_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3c_branch2a" top: "res3c_branch2a" name: "scale3c_branch2a" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3c_branch2a" top: "res3c_branch2a" name: "res3c_branch2a_relu" type: "ReLU" } layer { bottom: "res3c_branch2a" top: "res3c_branch2b" name: "res3c_branch2b" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res3c_branch2b" top: "res3c_branch2b" name: "bn3c_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3c_branch2b" top: "res3c_branch2b" name: "scale3c_branch2b" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3c_branch2b" top: "res3c_branch2b" name: "res3c_branch2b_relu" type: "ReLU" } layer { bottom: "res3c_branch2b" top: "res3c_branch2c" name: "res3c_branch2c" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3c_branch2c" top: "res3c_branch2c" name: "bn3c_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3c_branch2c" top: "res3c_branch2c" name: "scale3c_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3b" bottom: "res3c_branch2c" top: "res3c" name: "res3c" type: "Eltwise" } layer { bottom: "res3c" top: "res3c" name: "res3c_relu" type: "ReLU" } layer { bottom: "res3c" top: "res3d_branch2a" name: "res3d_branch2a" type: "Convolution" convolution_param { num_output: 128 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3d_branch2a" top: "res3d_branch2a" name: "bn3d_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3d_branch2a" top: "res3d_branch2a" name: "scale3d_branch2a" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3d_branch2a" top: "res3d_branch2a" name: "res3d_branch2a_relu" type: "ReLU" } layer { bottom: "res3d_branch2a" top: "res3d_branch2b" name: "res3d_branch2b" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res3d_branch2b" top: "res3d_branch2b" name: "bn3d_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3d_branch2b" top: "res3d_branch2b" name: "scale3d_branch2b" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3d_branch2b" top: "res3d_branch2b" name: "res3d_branch2b_relu" type: "ReLU" } layer { bottom: "res3d_branch2b" top: "res3d_branch2c" name: "res3d_branch2c" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res3d_branch2c" top: "res3d_branch2c" name: "bn3d_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res3d_branch2c" top: "res3d_branch2c" name: "scale3d_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3c" bottom: "res3d_branch2c" top: "res3d" name: "res3d" type: "Eltwise" } layer { bottom: "res3d" top: "res3d" name: "res3d_relu" type: "ReLU" } layer { bottom: "res3d" top: "res4a_branch1" name: "res4a_branch1" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 2 bias_term: false } } layer { bottom: "res4a_branch1" top: "res4a_branch1" name: "bn4a_branch1" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4a_branch1" top: "res4a_branch1" name: "scale4a_branch1" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res3d" top: "res4a_branch2a" name: "res4a_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 2 bias_term: false } } layer { bottom: "res4a_branch2a" top: "res4a_branch2a" name: "bn4a_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4a_branch2a" top: "res4a_branch2a" name: "scale4a_branch2a" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4a_branch2a" top: "res4a_branch2a" name: "res4a_branch2a_relu" type: "ReLU" } layer { bottom: "res4a_branch2a" top: "res4a_branch2b" name: "res4a_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4a_branch2b" top: "res4a_branch2b" name: "bn4a_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4a_branch2b" top: "res4a_branch2b" name: "scale4a_branch2b" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4a_branch2b" top: "res4a_branch2b" name: "res4a_branch2b_relu" type: "ReLU" } layer { bottom: "res4a_branch2b" top: "res4a_branch2c" name: "res4a_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4a_branch2c" top: "res4a_branch2c" name: "bn4a_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4a_branch2c" top: "res4a_branch2c" name: "scale4a_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4a_branch1" bottom: "res4a_branch2c" top: "res4a" name: "res4a" type: "Eltwise" } layer { bottom: "res4a" top: "res4a" name: "res4a_relu" type: "ReLU" } layer { bottom: "res4a" top: "res4b_branch2a" name: "res4b_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b_branch2a" top: "res4b_branch2a" name: "bn4b_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b_branch2a" top: "res4b_branch2a" name: "scale4b_branch2a" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b_branch2a" top: "res4b_branch2a" name: "res4b_branch2a_relu" type: "ReLU" } layer { bottom: "res4b_branch2a" top: "res4b_branch2b" name: "res4b_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4b_branch2b" top: "res4b_branch2b" name: "bn4b_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b_branch2b" top: "res4b_branch2b" name: "scale4b_branch2b" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b_branch2b" top: "res4b_branch2b" name: "res4b_branch2b_relu" type: "ReLU" } layer { bottom: "res4b_branch2b" top: "res4b_branch2c" name: "res4b_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4b_branch2c" top: "res4b_branch2c" name: "bn4b_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4b_branch2c" top: "res4b_branch2c" name: "scale4b_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4a" bottom: "res4b_branch2c" top: "res4b" name: "res4b" type: "Eltwise" } layer { bottom: "res4b" top: "res4b" name: "res4b_relu" type: "ReLU" } layer { bottom: "res4b" top: "res4c_branch2a" name: "res4c_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4c_branch2a" top: "res4c_branch2a" name: "bn4c_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4c_branch2a" top: "res4c_branch2a" name: "scale4c_branch2a" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4c_branch2a" top: "res4c_branch2a" name: "res4c_branch2a_relu" type: "ReLU" } layer { bottom: "res4c_branch2a" top: "res4c_branch2b" name: "res4c_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4c_branch2b" top: "res4c_branch2b" name: "bn4c_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4c_branch2b" top: "res4c_branch2b" name: "scale4c_branch2b" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4c_branch2b" top: "res4c_branch2b" name: "res4c_branch2b_relu" type: "ReLU" } layer { bottom: "res4c_branch2b" top: "res4c_branch2c" name: "res4c_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4c_branch2c" top: "res4c_branch2c" name: "bn4c_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4c_branch2c" top: "res4c_branch2c" name: "scale4c_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4b" bottom: "res4c_branch2c" top: "res4c" name: "res4c" type: "Eltwise" } layer { bottom: "res4c" top: "res4c" name: "res4c_relu" type: "ReLU" } layer { bottom: "res4c" top: "res4d_branch2a" name: "res4d_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4d_branch2a" top: "res4d_branch2a" name: "bn4d_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4d_branch2a" top: "res4d_branch2a" name: "scale4d_branch2a" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4d_branch2a" top: "res4d_branch2a" name: "res4d_branch2a_relu" type: "ReLU" } layer { bottom: "res4d_branch2a" top: "res4d_branch2b" name: "res4d_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4d_branch2b" top: "res4d_branch2b" name: "bn4d_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4d_branch2b" top: "res4d_branch2b" name: "scale4d_branch2b" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4d_branch2b" top: "res4d_branch2b" name: "res4d_branch2b_relu" type: "ReLU" } layer { bottom: "res4d_branch2b" top: "res4d_branch2c" name: "res4d_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4d_branch2c" top: "res4d_branch2c" name: "bn4d_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4d_branch2c" top: "res4d_branch2c" name: "scale4d_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4c" bottom: "res4d_branch2c" top: "res4d" name: "res4d" type: "Eltwise" } layer { bottom: "res4d" top: "res4d" name: "res4d_relu" type: "ReLU" } layer { bottom: "res4d" top: "res4e_branch2a" name: "res4e_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4e_branch2a" top: "res4e_branch2a" name: "bn4e_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4e_branch2a" top: "res4e_branch2a" name: "scale4e_branch2a" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4e_branch2a" top: "res4e_branch2a" name: "res4e_branch2a_relu" type: "ReLU" } layer { bottom: "res4e_branch2a" top: "res4e_branch2b" name: "res4e_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4e_branch2b" top: "res4e_branch2b" name: "bn4e_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4e_branch2b" top: "res4e_branch2b" name: "scale4e_branch2b" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4e_branch2b" top: "res4e_branch2b" name: "res4e_branch2b_relu" type: "ReLU" } layer { bottom: "res4e_branch2b" top: "res4e_branch2c" name: "res4e_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4e_branch2c" top: "res4e_branch2c" name: "bn4e_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4e_branch2c" top: "res4e_branch2c" name: "scale4e_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4d" bottom: "res4e_branch2c" top: "res4e" name: "res4e" type: "Eltwise" } layer { bottom: "res4e" top: "res4e" name: "res4e_relu" type: "ReLU" } layer { bottom: "res4e" top: "res4f_branch2a" name: "res4f_branch2a" type: "Convolution" convolution_param { num_output: 256 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4f_branch2a" top: "res4f_branch2a" name: "bn4f_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4f_branch2a" top: "res4f_branch2a" name: "scale4f_branch2a" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4f_branch2a" top: "res4f_branch2a" name: "res4f_branch2a_relu" type: "ReLU" } layer { bottom: "res4f_branch2a" top: "res4f_branch2b" name: "res4f_branch2b" type: "Convolution" convolution_param { num_output: 256 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res4f_branch2b" top: "res4f_branch2b" name: "bn4f_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4f_branch2b" top: "res4f_branch2b" name: "scale4f_branch2b" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4f_branch2b" top: "res4f_branch2b" name: "res4f_branch2b_relu" type: "ReLU" } layer { bottom: "res4f_branch2b" top: "res4f_branch2c" name: "res4f_branch2c" type: "Convolution" convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res4f_branch2c" top: "res4f_branch2c" name: "bn4f_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res4f_branch2c" top: "res4f_branch2c" name: "scale4f_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4e" bottom: "res4f_branch2c" top: "res4f" name: "res4f" type: "Eltwise" } layer { bottom: "res4f" top: "res4f" name: "res4f_relu" type: "ReLU" } layer { bottom: "res4f" top: "res5a_branch1" name: "res5a_branch1" type: "Convolution" convolution_param { num_output: 2048 kernel_size: 1 pad: 0 stride: 2 bias_term: false } } layer { bottom: "res5a_branch1" top: "res5a_branch1" name: "bn5a_branch1" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5a_branch1" top: "res5a_branch1" name: "scale5a_branch1" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res4f" top: "res5a_branch2a" name: "res5a_branch2a" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 2 bias_term: false } } layer { bottom: "res5a_branch2a" top: "res5a_branch2a" name: "bn5a_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5a_branch2a" top: "res5a_branch2a" name: "scale5a_branch2a" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res5a_branch2a" top: "res5a_branch2a" name: "res5a_branch2a_relu" type: "ReLU" } layer { bottom: "res5a_branch2a" top: "res5a_branch2b" name: "res5a_branch2b" type: "Convolution" convolution_param { num_output: 512 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res5a_branch2b" top: "res5a_branch2b" name: "bn5a_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5a_branch2b" top: "res5a_branch2b" name: "scale5a_branch2b" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res5a_branch2b" top: "res5a_branch2b" name: "res5a_branch2b_relu" type: "ReLU" } layer { bottom: "res5a_branch2b" top: "res5a_branch2c" name: "res5a_branch2c" type: "Convolution" convolution_param { num_output: 2048 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res5a_branch2c" top: "res5a_branch2c" name: "bn5a_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5a_branch2c" top: "res5a_branch2c" name: "scale5a_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res5a_branch1" bottom: "res5a_branch2c" top: "res5a" name: "res5a" type: "Eltwise" } layer { bottom: "res5a" top: "res5a" name: "res5a_relu" type: "ReLU" } layer { bottom: "res5a" top: "res5b_branch2a" name: "res5b_branch2a" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res5b_branch2a" top: "res5b_branch2a" name: "bn5b_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5b_branch2a" top: "res5b_branch2a" name: "scale5b_branch2a" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res5b_branch2a" top: "res5b_branch2a" name: "res5b_branch2a_relu" type: "ReLU" } layer { bottom: "res5b_branch2a" top: "res5b_branch2b" name: "res5b_branch2b" type: "Convolution" convolution_param { num_output: 512 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res5b_branch2b" top: "res5b_branch2b" name: "bn5b_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5b_branch2b" top: "res5b_branch2b" name: "scale5b_branch2b" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res5b_branch2b" top: "res5b_branch2b" name: "res5b_branch2b_relu" type: "ReLU" } layer { bottom: "res5b_branch2b" top: "res5b_branch2c" name: "res5b_branch2c" type: "Convolution" convolution_param { num_output: 2048 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res5b_branch2c" top: "res5b_branch2c" name: "bn5b_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5b_branch2c" top: "res5b_branch2c" name: "scale5b_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res5a" bottom: "res5b_branch2c" top: "res5b" name: "res5b" type: "Eltwise" } layer { bottom: "res5b" top: "res5b" name: "res5b_relu" type: "ReLU" } layer { bottom: "res5b" top: "res5c_branch2a" name: "res5c_branch2a" type: "Convolution" convolution_param { num_output: 512 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res5c_branch2a" top: "res5c_branch2a" name: "bn5c_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5c_branch2a" top: "res5c_branch2a" name: "scale5c_branch2a" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res5c_branch2a" top: "res5c_branch2a" name: "res5c_branch2a_relu" type: "ReLU" } layer { bottom: "res5c_branch2a" top: "res5c_branch2b" name: "res5c_branch2b" type: "Convolution" convolution_param { num_output: 512 kernel_size: 3 pad: 1 stride: 1 bias_term: false } } layer { bottom: "res5c_branch2b" top: "res5c_branch2b" name: "bn5c_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5c_branch2b" top: "res5c_branch2b" name: "scale5c_branch2b" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res5c_branch2b" top: "res5c_branch2b" name: "res5c_branch2b_relu" type: "ReLU" } layer { bottom: "res5c_branch2b" top: "res5c_branch2c" name: "res5c_branch2c" type: "Convolution" convolution_param { num_output: 2048 kernel_size: 1 pad: 0 stride: 1 bias_term: false } } layer { bottom: "res5c_branch2c" top: "res5c_branch2c" name: "bn5c_branch2c" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "res5c_branch2c" top: "res5c_branch2c" name: "scale5c_branch2c" type: "Scale" scale_param { bias_term: true } } layer { bottom: "res5b" bottom: "res5c_branch2c" top: "res5c" name: "res5c" type: "Eltwise" } layer { bottom: "res5c" top: "res5c" name: "res5c_relu" type: "ReLU" } layer { bottom: "res5c" top: "pool5" name: "pool5" type: "Pooling" pooling_param { kernel_size: 7 stride: 1 pool: AVE } } layer { bottom: "pool5" top: "fc1000" name: "fc1000" type: "InnerProduct" inner_product_param { num_output: 1000 } } layer { bottom: "fc1000" top: "prob" name: "prob" type: "Softmax" }