Showing preview only (205K chars total). Download the full file or copy to clipboard to get everything.
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):

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 {
u
gitextract_rc3c25mq/
├── .gitmodules
├── LICENSE
├── README.md
└── prototxt/
├── ResNet-101-deploy.prototxt
├── ResNet-152-deploy.prototxt
└── ResNet-50-deploy.prototxt
Condensed preview — 6 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (241K chars).
[
{
"path": ".gitmodules",
"chars": 92,
"preview": "[submodule \"caffe\"]\n\tpath = caffe\n\turl = https://github.com/BVLC/caffe.git\n\tbranch = master\n"
},
{
"path": "LICENSE",
"chars": 1079,
"preview": "The MIT License (MIT)\n\nCopyright (c) 2016 Shaoqing Ren\n\nPermission is hereby granted, free of charge, to any person obta"
},
{
"path": "README.md",
"chars": 7057,
"preview": "# Deep Residual Networks\n\nBy [Kaiming He](http://kaiminghe.com), [Xiangyu Zhang](https://scholar.google.com/citations?us"
},
{
"path": "prototxt/ResNet-101-deploy.prototxt",
"chars": 65439,
"preview": "name: \"ResNet-101\"\ninput: \"data\"\ninput_dim: 1\ninput_dim: 3\ninput_dim: 224\ninput_dim: 224\n\nlayer {\n\tbottom: \"data\"\n\ttop: "
},
{
"path": "prototxt/ResNet-152-deploy.prototxt",
"chars": 98034,
"preview": "name: \"ResNet-152\"\ninput: \"data\"\ninput_dim: 1\ninput_dim: 3\ninput_dim: 224\ninput_dim: 224\n\nlayer {\n\tbottom: \"data\"\n\ttop: "
},
{
"path": "prototxt/ResNet-50-deploy.prototxt",
"chars": 32500,
"preview": "name: \"ResNet-50\"\ninput: \"data\"\ninput_dim: 1\ninput_dim: 3\ninput_dim: 224\ninput_dim: 224\n\nlayer {\n\tbottom: \"data\"\n\ttop: \""
}
]
About this extraction
This page contains the full source code of the KaimingHe/deep-residual-networks GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 6 files (199.4 KB), approximately 79.3k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.