ResNet152网络复现(Caffe)
一、准备数据集
1) 下载数据集
Imagnet网站上下载了三类图片,分别是big cat、dog、fish,其中训练集的图片数一共是4149,测试集的图片数是1003,训练集和测试集的图片数比例4:1,将训练集的图片保存在train文件夹下,测试集图片保存在val文件夹下.
train、val文件夹下面均有bigcat、dog、fish三个文件夹,分别存放着对应类别的图片.
2) 利用python代码,生成train.txt、val.txt
train.txt、val.txt分别存储着训练集和测试集图片的文件名及其类别标签(注:bigcat:0、 dog:1、fish:2),格式如下:
n02084071_9865.JPEG 1
n02512053_3388.JPEG 2
n02512053_6294.JPEG 2
n02512053_2413.JPEG 2
n02084071_5655.JPEG 1
n02127808_9965.JPEG 0
n02127808_8206.JPEG 0
n02127808_4887.JPEG 0
n02512053_1952.JPEG 2
Python代码如下(可以先在windows环境下利用以下的代码生成txt):
import os
import random trainPath = 'F:\\Resnet152\\train\\'
valPath = 'F:\\Resnet152\\val\\' train = {}
val = {} # add
for name in os.listdir(trainPath + "bigcat\\"):
train[name] = 0 # add
for name in os.listdir(trainPath + "dog\\"):
train[name] = 1 # add
for name in os.listdir(trainPath + "fish\\"):
train[name] = 2 # add
for name in os.listdir(valPath + "bigcat\\"):
val[name] = 0 # add
for name in os.listdir(valPath + "dog\\"):
val[name] = 1 # add
for name in os.listdir(valPath + "fish\\"):
val[name] = 2 ftrain = open("F:\\Resnet152\\train\\train.txt", 'w')
fval = open("F:\\Resnet152\\val\\val.txt", 'w') trainName = []
valName = []
for (item) in train:
trainName.append(item) for item in val:
valName.append(item) random.shuffle(trainName)
random.shuffle(valName) for name in trainName:
label = train[name]
ftrain.write(name + " " + str(label) + "\n") for name in valName:
label = val[name]
fval.write(name + " " + str(label) + "\n") ftrain.close()
fval.close()
3) 生成数据集
编写lmdb.sh脚本文件,利用train.txt、val.txt生成train_lmdb、val_lmdb
lmdb.sh脚本代码如下
#!/usr/bin/env sh
# Create the face_48 lmdb inputs
# N.B. set the path to the face_48 train + val data dirs EXAMPLE=/home/wy/ResNet152 #lmdb生成后存放目录
DATA=/home/wy/ResNet152 #train.txt、val.txt存放目录
TOOLS=/home/wy/caffe/build/tools #caffe安装目录 TRAIN_DATA_ROOT=/home/wy/ResNet152/train/
VAL_DATA_ROOT=/home/wy/ResNet152/val/ # Set RESIZE=true to resize the images to 224 x 224. Leave as false if images have
# already been resized using another tool.
RESIZE=true
if $RESIZE; then
RESIZE_HEIGHT=224 #resize图片大小
RESIZE_WIDTH=224
else
RESIZE_HEIGHT=0
RESIZE_WIDTH=0
fi if [ ! -d "$TRAIN_DATA_ROOT" ]; then
echo "Error: TRAIN_DATA_ROOT is not a path to a directory: $TRAIN_DATA_ROOT"
echo "Set the TRAIN_DATA_ROOT variable in create_face_48.sh to the path" \
"where the face_48 training data is stored."
exit 1
fi if [ ! -d "$VAL_DATA_ROOT" ]; then
echo "Error: VAL_DATA_ROOT is not a path to a directory: $VAL_DATA_ROOT"
echo "Set the VAL_DATA_ROOT variable in create_face_48.sh to the path" \
"where the face_48 validation data is stored."
exit 1
fi echo "Creating train lmdb..." GLOG_logtostderr=1 $TOOLS/convert_imageset \
--resize_height=$RESIZE_HEIGHT \
--resize_width=$RESIZE_WIDTH \
--shuffle \
$TRAIN_DATA_ROOT \
$DATA/train.txt \
$EXAMPLE/train_lmdb echo "Creating val lmdb..." GLOG_logtostderr=1 $TOOLS/convert_imageset \
--resize_height=$RESIZE_HEIGHT \
--resize_width=$RESIZE_WIDTH \
--shuffle \
$VAL_DATA_ROOT \
$DATA/val.txt \
$EXAMPLE/val_lmdb echo "Done."
Status API Training Shop Blog About
注:上述代码中有RESIZE_HEIGHT=224、RESIZE_WIDTH=224,因为使用的是ResNet网络,
需要统一图片大小,如果使用的网络对图片大小无要求,或者已经是224*224大小的图片,可不进行resize操作
linux系统终端中执行sh lmdb.sh即可生成lmdb文件,完成数据集的生成工作
执行结束后,会在ResNet152目录下,生成两个文件夹,分别是train_lmdb、val_lmdb
4) 计算图片平均值
训练网络图片时,需要对图片做减均值处理,先将图片平均值保存到文件中,在训练网络中直接引用,先介绍如何生成图片平均值文件,后面引用的时候会特别注明,命令如下:
/home/wy/caffe/build/tools/compute_image_mean /home/wy/ResNet152/train_lmdb /home/wy/ResNet152/mean.binaryproto
利用Caffe安装目录下面的compute_image_mean.bin进行图片平均值的计算,输入的是train_lmdb,输出的为mean.binaryproto
二、修改网络配置文件
修改配置之前,先列出需要的文件:train_val.prototxt、deploy.prototxt、solver.prototxt(三个文件的具体内容会在博客最后给出)
1) train_val.prototxt
文件名train_val包括train和val,可以先这样理解每进行500次训练的时候,会进行一次验证,方便输出供训练者观察情况,既然这样,就需要在这个文件里面指定train数据集和val数据集
关于train_val.prototxt中其余部分的代码均是ResNet152的网络结构代码,无需修改
2) deploy.prototxt
deploy.prototxt主要是当模型训练出来以后,利用模型对用户提交的一张图片进行分类应用的时候使用的网络文件,只需要进行一次前向传播计算输入图片所属类别的概率值,所以,此文件里面没有损失函数层的定义
3) solver.prototxt
文件指定训练的相关规则和参数,具体内容介绍见下图中的标注
三、训练网络
网络文件编辑完后,即可开始训练网络,可直接在linux终端输入以下命令
/home/wy/caffe/build/tools/caffe train --solver=/home/wy/ResNet152/solver.prototxt
前者是caffe安装目录路径,后者是solver.prototxt存放路径,回车后即可开始训练;也可创建train.sh脚本文件,文件中保存上述指令
此时,在linux终端(导航到train.sh存放的路径),输入sh train.sh即可
训练过程中的一张图
四、测试图片
用训练出的model进行图片的预测
/home/wy/caffe/build/examples/cpp_classification/classification.bin /home/wy/ResNet152/deploy.prototxt /home/wy/ResNet152/model/solver_iter_60000.caffemodel /home/wy/ResNet152/mean.binaryproto /home/wy/ResNet152/class_name.txt /home/wy/ResNet152/testImages/ISIC_0000001.jpg
在linux下输入上述命令,即可对图片’ISIC_0000001.jpg’进行预测
其中,class_name.txt文件中内容(和trainx.txt中标签要对应):
0 bigcat
1 dog
2 fish
测试图片:
看下测试结果(测试的时候换了台电脑,所以发现目录不太一样):
所以,属于bigcat的概率为0.9999,属于fish的概率为0.0001,属于dog的概率为0
train_val.prototxt
name: "ResNet-152"
layer {
name: "data"
type: "Data"
top: "data"
top: "label"
include {
phase: TRAIN
}
transform_param {
mirror: true
crop_size: 224
mean_file: "/home/wy/ResNet152/mean.binaryproto"
}
data_param {
source: "/home/wy/ResNet152/train_lmdb"
batch_size: 1
backend: LMDB
}
}
layer {
name: "data"
type: "Data"
top: "data"
top: "label"
include {
phase: TEST
}
transform_param {
mirror: false
crop_size: 224
mean_file:"/usr/develop/repertory/ResNet152/mean.binaryproto"
}
data_param {
source: "/usr/develop/repertory/ResNet152/val_lmdb"
batch_size: 1
backend: LMDB
}
} layer {
bottom: "data"
top: "conv1"
name: "conv1"
type: "Convolution"
convolution_param {
num_output: 64
kernel_size: 7
pad: 3
stride: 2
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "conv1"
top: "conv1"
name: "bn_conv1"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res2a_branch1"
top: "res2a_branch1"
name: "bn2a_branch1"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res2a_branch2a"
top: "res2a_branch2a"
name: "bn2a_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res2a_branch2b"
top: "res2a_branch2b"
name: "bn2a_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res2a_branch2c"
top: "res2a_branch2c"
name: "bn2a_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res2b_branch2a"
top: "res2b_branch2a"
name: "bn2b_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res2b_branch2b"
top: "res2b_branch2b"
name: "bn2b_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res2b_branch2c"
top: "res2b_branch2c"
name: "bn2b_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res2c_branch2a"
top: "res2c_branch2a"
name: "bn2c_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res2c_branch2b"
top: "res2c_branch2b"
name: "bn2c_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res2c_branch2c"
top: "res2c_branch2c"
name: "bn2c_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3a_branch1"
top: "res3a_branch1"
name: "bn3a_branch1"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3a_branch2a"
top: "res3a_branch2a"
name: "bn3a_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3a_branch2b"
top: "res3a_branch2b"
name: "bn3a_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3a_branch2c"
top: "res3a_branch2c"
name: "bn3a_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b1_branch2a"
top: "res3b1_branch2a"
name: "bn3b1_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res3b1_branch2a"
top: "res3b1_branch2a"
name: "scale3b1_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res3b1_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b1_branch2b"
top: "res3b1_branch2b"
name: "bn3b1_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res3b1_branch2b"
top: "res3b1_branch2b"
name: "scale3b1_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res3b1_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b1_branch2c"
top: "res3b1_branch2c"
name: "bn3b1_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b2_branch2a"
top: "res3b2_branch2a"
name: "bn3b2_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res3b2_branch2a"
top: "res3b2_branch2a"
name: "scale3b2_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res3b2_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b2_branch2b"
top: "res3b2_branch2b"
name: "bn3b2_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res3b2_branch2b"
top: "res3b2_branch2b"
name: "scale3b2_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res3b2_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b2_branch2c"
top: "res3b2_branch2c"
name: "bn3b2_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b3_branch2a"
top: "res3b3_branch2a"
name: "bn3b3_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res3b3_branch2a"
top: "res3b3_branch2a"
name: "scale3b3_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res3b3_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b3_branch2b"
top: "res3b3_branch2b"
name: "bn3b3_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res3b3_branch2b"
top: "res3b3_branch2b"
name: "scale3b3_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res3b3_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b3_branch2c"
top: "res3b3_branch2c"
name: "bn3b3_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b4_branch2a"
top: "res3b4_branch2a"
name: "bn3b4_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res3b4_branch2a"
top: "res3b4_branch2a"
name: "scale3b4_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res3b4_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b4_branch2b"
top: "res3b4_branch2b"
name: "bn3b4_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res3b4_branch2b"
top: "res3b4_branch2b"
name: "scale3b4_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res3b4_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b4_branch2c"
top: "res3b4_branch2c"
name: "bn3b4_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b5_branch2a"
top: "res3b5_branch2a"
name: "bn3b5_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res3b5_branch2a"
top: "res3b5_branch2a"
name: "scale3b5_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res3b5_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b5_branch2b"
top: "res3b5_branch2b"
name: "bn3b5_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res3b5_branch2b"
top: "res3b5_branch2b"
name: "scale3b5_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res3b5_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b5_branch2c"
top: "res3b5_branch2c"
name: "bn3b5_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b6_branch2a"
top: "res3b6_branch2a"
name: "bn3b6_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res3b6_branch2a"
top: "res3b6_branch2a"
name: "scale3b6_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res3b6_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b6_branch2b"
top: "res3b6_branch2b"
name: "bn3b6_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res3b6_branch2b"
top: "res3b6_branch2b"
name: "scale3b6_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res3b6_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b6_branch2c"
top: "res3b6_branch2c"
name: "bn3b6_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b7_branch2a"
top: "res3b7_branch2a"
name: "bn3b7_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res3b7_branch2a"
top: "res3b7_branch2a"
name: "scale3b7_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res3b7_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b7_branch2b"
top: "res3b7_branch2b"
name: "bn3b7_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res3b7_branch2b"
top: "res3b7_branch2b"
name: "scale3b7_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res3b7_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res3b7_branch2c"
top: "res3b7_branch2c"
name: "bn3b7_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4a_branch1"
top: "res4a_branch1"
name: "bn4a_branch1"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4a_branch2a"
top: "res4a_branch2a"
name: "bn4a_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4a_branch2b"
top: "res4a_branch2b"
name: "bn4a_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4a_branch2c"
top: "res4a_branch2c"
name: "bn4a_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b1_branch2a"
top: "res4b1_branch2a"
name: "bn4b1_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b1_branch2a"
top: "res4b1_branch2a"
name: "scale4b1_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b1_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b1_branch2b"
top: "res4b1_branch2b"
name: "bn4b1_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b1_branch2b"
top: "res4b1_branch2b"
name: "scale4b1_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b1_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b1_branch2c"
top: "res4b1_branch2c"
name: "bn4b1_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b2_branch2a"
top: "res4b2_branch2a"
name: "bn4b2_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b2_branch2a"
top: "res4b2_branch2a"
name: "scale4b2_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b2_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b2_branch2b"
top: "res4b2_branch2b"
name: "bn4b2_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b2_branch2b"
top: "res4b2_branch2b"
name: "scale4b2_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b2_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b2_branch2c"
top: "res4b2_branch2c"
name: "bn4b2_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b3_branch2a"
top: "res4b3_branch2a"
name: "bn4b3_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b3_branch2a"
top: "res4b3_branch2a"
name: "scale4b3_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b3_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b3_branch2b"
top: "res4b3_branch2b"
name: "bn4b3_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b3_branch2b"
top: "res4b3_branch2b"
name: "scale4b3_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b3_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b3_branch2c"
top: "res4b3_branch2c"
name: "bn4b3_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b4_branch2a"
top: "res4b4_branch2a"
name: "bn4b4_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b4_branch2a"
top: "res4b4_branch2a"
name: "scale4b4_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b4_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b4_branch2b"
top: "res4b4_branch2b"
name: "bn4b4_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b4_branch2b"
top: "res4b4_branch2b"
name: "scale4b4_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b4_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b4_branch2c"
top: "res4b4_branch2c"
name: "bn4b4_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b5_branch2a"
top: "res4b5_branch2a"
name: "bn4b5_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b5_branch2a"
top: "res4b5_branch2a"
name: "scale4b5_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b5_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b5_branch2b"
top: "res4b5_branch2b"
name: "bn4b5_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b5_branch2b"
top: "res4b5_branch2b"
name: "scale4b5_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b5_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b5_branch2c"
top: "res4b5_branch2c"
name: "bn4b5_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b6_branch2a"
top: "res4b6_branch2a"
name: "bn4b6_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b6_branch2a"
top: "res4b6_branch2a"
name: "scale4b6_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b6_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b6_branch2b"
top: "res4b6_branch2b"
name: "bn4b6_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b6_branch2b"
top: "res4b6_branch2b"
name: "scale4b6_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b6_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b6_branch2c"
top: "res4b6_branch2c"
name: "bn4b6_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b7_branch2a"
top: "res4b7_branch2a"
name: "bn4b7_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b7_branch2a"
top: "res4b7_branch2a"
name: "scale4b7_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b7_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b7_branch2b"
top: "res4b7_branch2b"
name: "bn4b7_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b7_branch2b"
top: "res4b7_branch2b"
name: "scale4b7_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b7_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b7_branch2c"
top: "res4b7_branch2c"
name: "bn4b7_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b8_branch2a"
top: "res4b8_branch2a"
name: "bn4b8_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b8_branch2a"
top: "res4b8_branch2a"
name: "scale4b8_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b8_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b8_branch2b"
top: "res4b8_branch2b"
name: "bn4b8_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b8_branch2b"
top: "res4b8_branch2b"
name: "scale4b8_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b8_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b8_branch2c"
top: "res4b8_branch2c"
name: "bn4b8_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b9_branch2a"
top: "res4b9_branch2a"
name: "bn4b9_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b9_branch2a"
top: "res4b9_branch2a"
name: "scale4b9_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b9_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b9_branch2b"
top: "res4b9_branch2b"
name: "bn4b9_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b9_branch2b"
top: "res4b9_branch2b"
name: "scale4b9_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b9_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b9_branch2c"
top: "res4b9_branch2c"
name: "bn4b9_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b10_branch2a"
top: "res4b10_branch2a"
name: "bn4b10_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b10_branch2a"
top: "res4b10_branch2a"
name: "scale4b10_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b10_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b10_branch2b"
top: "res4b10_branch2b"
name: "bn4b10_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b10_branch2b"
top: "res4b10_branch2b"
name: "scale4b10_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b10_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b10_branch2c"
top: "res4b10_branch2c"
name: "bn4b10_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b11_branch2a"
top: "res4b11_branch2a"
name: "bn4b11_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b11_branch2a"
top: "res4b11_branch2a"
name: "scale4b11_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b11_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b11_branch2b"
top: "res4b11_branch2b"
name: "bn4b11_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b11_branch2b"
top: "res4b11_branch2b"
name: "scale4b11_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b11_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b11_branch2c"
top: "res4b11_branch2c"
name: "bn4b11_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b12_branch2a"
top: "res4b12_branch2a"
name: "bn4b12_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b12_branch2a"
top: "res4b12_branch2a"
name: "scale4b12_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b12_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b12_branch2b"
top: "res4b12_branch2b"
name: "bn4b12_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b12_branch2b"
top: "res4b12_branch2b"
name: "scale4b12_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b12_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b12_branch2c"
top: "res4b12_branch2c"
name: "bn4b12_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b13_branch2a"
top: "res4b13_branch2a"
name: "bn4b13_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b13_branch2a"
top: "res4b13_branch2a"
name: "scale4b13_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b13_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b13_branch2b"
top: "res4b13_branch2b"
name: "bn4b13_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b13_branch2b"
top: "res4b13_branch2b"
name: "scale4b13_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b13_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b13_branch2c"
top: "res4b13_branch2c"
name: "bn4b13_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b14_branch2a"
top: "res4b14_branch2a"
name: "bn4b14_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b14_branch2a"
top: "res4b14_branch2a"
name: "scale4b14_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b14_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b14_branch2b"
top: "res4b14_branch2b"
name: "bn4b14_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b14_branch2b"
top: "res4b14_branch2b"
name: "scale4b14_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b14_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b14_branch2c"
top: "res4b14_branch2c"
name: "bn4b14_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b15_branch2a"
top: "res4b15_branch2a"
name: "bn4b15_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b15_branch2a"
top: "res4b15_branch2a"
name: "scale4b15_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b15_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b15_branch2b"
top: "res4b15_branch2b"
name: "bn4b15_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b15_branch2b"
top: "res4b15_branch2b"
name: "scale4b15_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b15_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b15_branch2c"
top: "res4b15_branch2c"
name: "bn4b15_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b16_branch2a"
top: "res4b16_branch2a"
name: "bn4b16_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b16_branch2a"
top: "res4b16_branch2a"
name: "scale4b16_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b16_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b16_branch2b"
top: "res4b16_branch2b"
name: "bn4b16_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b16_branch2b"
top: "res4b16_branch2b"
name: "scale4b16_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b16_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b16_branch2c"
top: "res4b16_branch2c"
name: "bn4b16_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b17_branch2a"
top: "res4b17_branch2a"
name: "bn4b17_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b17_branch2a"
top: "res4b17_branch2a"
name: "scale4b17_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b17_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b17_branch2b"
top: "res4b17_branch2b"
name: "bn4b17_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b17_branch2b"
top: "res4b17_branch2b"
name: "scale4b17_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b17_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b17_branch2c"
top: "res4b17_branch2c"
name: "bn4b17_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b18_branch2a"
top: "res4b18_branch2a"
name: "bn4b18_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b18_branch2a"
top: "res4b18_branch2a"
name: "scale4b18_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b18_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b18_branch2b"
top: "res4b18_branch2b"
name: "bn4b18_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b18_branch2b"
top: "res4b18_branch2b"
name: "scale4b18_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b18_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b18_branch2c"
top: "res4b18_branch2c"
name: "bn4b18_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b19_branch2a"
top: "res4b19_branch2a"
name: "bn4b19_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b19_branch2a"
top: "res4b19_branch2a"
name: "scale4b19_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b19_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b19_branch2b"
top: "res4b19_branch2b"
name: "bn4b19_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b19_branch2b"
top: "res4b19_branch2b"
name: "scale4b19_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b19_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b19_branch2c"
top: "res4b19_branch2c"
name: "bn4b19_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b20_branch2a"
top: "res4b20_branch2a"
name: "bn4b20_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b20_branch2a"
top: "res4b20_branch2a"
name: "scale4b20_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b20_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b20_branch2b"
top: "res4b20_branch2b"
name: "bn4b20_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b20_branch2b"
top: "res4b20_branch2b"
name: "scale4b20_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b20_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b20_branch2c"
top: "res4b20_branch2c"
name: "bn4b20_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b21_branch2a"
top: "res4b21_branch2a"
name: "bn4b21_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b21_branch2a"
top: "res4b21_branch2a"
name: "scale4b21_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b21_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b21_branch2b"
top: "res4b21_branch2b"
name: "bn4b21_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b21_branch2b"
top: "res4b21_branch2b"
name: "scale4b21_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b21_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b21_branch2c"
top: "res4b21_branch2c"
name: "bn4b21_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b22_branch2a"
top: "res4b22_branch2a"
name: "bn4b22_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b22_branch2a"
top: "res4b22_branch2a"
name: "scale4b22_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b22_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b22_branch2b"
top: "res4b22_branch2b"
name: "bn4b22_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b22_branch2b"
top: "res4b22_branch2b"
name: "scale4b22_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b22_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b22_branch2c"
top: "res4b22_branch2c"
name: "bn4b22_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b23_branch2a"
top: "res4b23_branch2a"
name: "bn4b23_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b23_branch2a"
top: "res4b23_branch2a"
name: "scale4b23_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b23_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b23_branch2b"
top: "res4b23_branch2b"
name: "bn4b23_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b23_branch2b"
top: "res4b23_branch2b"
name: "scale4b23_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b23_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b23_branch2c"
top: "res4b23_branch2c"
name: "bn4b23_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b24_branch2a"
top: "res4b24_branch2a"
name: "bn4b24_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b24_branch2a"
top: "res4b24_branch2a"
name: "scale4b24_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b24_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b24_branch2b"
top: "res4b24_branch2b"
name: "bn4b24_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b24_branch2b"
top: "res4b24_branch2b"
name: "scale4b24_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b24_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b24_branch2c"
top: "res4b24_branch2c"
name: "bn4b24_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b25_branch2a"
top: "res4b25_branch2a"
name: "bn4b25_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b25_branch2a"
top: "res4b25_branch2a"
name: "scale4b25_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b25_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b25_branch2b"
top: "res4b25_branch2b"
name: "bn4b25_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b25_branch2b"
top: "res4b25_branch2b"
name: "scale4b25_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b25_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b25_branch2c"
top: "res4b25_branch2c"
name: "bn4b25_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b26_branch2a"
top: "res4b26_branch2a"
name: "bn4b26_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b26_branch2a"
top: "res4b26_branch2a"
name: "scale4b26_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b26_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b26_branch2b"
top: "res4b26_branch2b"
name: "bn4b26_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b26_branch2b"
top: "res4b26_branch2b"
name: "scale4b26_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b26_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b26_branch2c"
top: "res4b26_branch2c"
name: "bn4b26_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b27_branch2a"
top: "res4b27_branch2a"
name: "bn4b27_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b27_branch2a"
top: "res4b27_branch2a"
name: "scale4b27_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b27_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b27_branch2b"
top: "res4b27_branch2b"
name: "bn4b27_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b27_branch2b"
top: "res4b27_branch2b"
name: "scale4b27_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b27_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b27_branch2c"
top: "res4b27_branch2c"
name: "bn4b27_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b28_branch2a"
top: "res4b28_branch2a"
name: "bn4b28_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b28_branch2a"
top: "res4b28_branch2a"
name: "scale4b28_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b28_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b28_branch2b"
top: "res4b28_branch2b"
name: "bn4b28_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b28_branch2b"
top: "res4b28_branch2b"
name: "scale4b28_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b28_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b28_branch2c"
top: "res4b28_branch2c"
name: "bn4b28_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b29_branch2a"
top: "res4b29_branch2a"
name: "bn4b29_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b29_branch2a"
top: "res4b29_branch2a"
name: "scale4b29_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b29_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b29_branch2b"
top: "res4b29_branch2b"
name: "bn4b29_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b29_branch2b"
top: "res4b29_branch2b"
name: "scale4b29_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b29_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b29_branch2c"
top: "res4b29_branch2c"
name: "bn4b29_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b30_branch2a"
top: "res4b30_branch2a"
name: "bn4b30_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b30_branch2a"
top: "res4b30_branch2a"
name: "scale4b30_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b30_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b30_branch2b"
top: "res4b30_branch2b"
name: "bn4b30_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b30_branch2b"
top: "res4b30_branch2b"
name: "scale4b30_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b30_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b30_branch2c"
top: "res4b30_branch2c"
name: "bn4b30_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b31_branch2a"
top: "res4b31_branch2a"
name: "bn4b31_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b31_branch2a"
top: "res4b31_branch2a"
name: "scale4b31_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b31_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b31_branch2b"
top: "res4b31_branch2b"
name: "bn4b31_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b31_branch2b"
top: "res4b31_branch2b"
name: "scale4b31_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b31_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b31_branch2c"
top: "res4b31_branch2c"
name: "bn4b31_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b32_branch2a"
top: "res4b32_branch2a"
name: "bn4b32_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b32_branch2a"
top: "res4b32_branch2a"
name: "scale4b32_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b32_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b32_branch2b"
top: "res4b32_branch2b"
name: "bn4b32_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b32_branch2b"
top: "res4b32_branch2b"
name: "scale4b32_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b32_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b32_branch2c"
top: "res4b32_branch2c"
name: "bn4b32_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b33_branch2a"
top: "res4b33_branch2a"
name: "bn4b33_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b33_branch2a"
top: "res4b33_branch2a"
name: "scale4b33_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b33_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b33_branch2b"
top: "res4b33_branch2b"
name: "bn4b33_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b33_branch2b"
top: "res4b33_branch2b"
name: "scale4b33_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b33_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b33_branch2c"
top: "res4b33_branch2c"
name: "bn4b33_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b34_branch2a"
top: "res4b34_branch2a"
name: "bn4b34_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b34_branch2a"
top: "res4b34_branch2a"
name: "scale4b34_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b34_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b34_branch2b"
top: "res4b34_branch2b"
name: "bn4b34_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b34_branch2b"
top: "res4b34_branch2b"
name: "scale4b34_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b34_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b34_branch2c"
top: "res4b34_branch2c"
name: "bn4b34_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b35_branch2a"
top: "res4b35_branch2a"
name: "bn4b35_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b35_branch2a"
top: "res4b35_branch2a"
name: "scale4b35_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b35_branch2a"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b35_branch2b"
top: "res4b35_branch2b"
name: "bn4b35_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res4b35_branch2b"
top: "res4b35_branch2b"
name: "scale4b35_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res4b35_branch2b"
top: "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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res4b35_branch2c"
top: "res4b35_branch2c"
name: "bn4b35_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res5a_branch1"
top: "res5a_branch1"
name: "bn5a_branch1"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res5a_branch2a"
top: "res5a_branch2a"
name: "bn5a_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res5a_branch2b"
top: "res5a_branch2b"
name: "bn5a_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res5a_branch2b"
top: "res5a_branch2b"
name: "scale5a_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res5a_branch2b"
top: "res5a_branch2b"
name: "res5a_branch2b_relu"
type: "ReLU"
} layer {
bottom: "res5a_branch2b"
top: "res5a_branch2c"
name: "res5a_branch2c"
type: "Convolution"
convolution_param {
num_output: 2048
kernel_size: 1
pad: 0
stride: 1
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res5a_branch2c"
top: "res5a_branch2c"
name: "bn5a_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res5b_branch2a"
top: "res5b_branch2a"
name: "bn5b_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res5b_branch2a"
top: "res5b_branch2a"
name: "scale5b_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res5b_branch2a"
top: "res5b_branch2a"
name: "res5b_branch2a_relu"
type: "ReLU"
} layer {
bottom: "res5b_branch2a"
top: "res5b_branch2b"
name: "res5b_branch2b"
type: "Convolution"
convolution_param {
num_output: 512
kernel_size: 3
pad: 1
stride: 1
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res5b_branch2b"
top: "res5b_branch2b"
name: "bn5b_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res5b_branch2b"
top: "res5b_branch2b"
name: "scale5b_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res5b_branch2b"
top: "res5b_branch2b"
name: "res5b_branch2b_relu"
type: "ReLU"
} layer {
bottom: "res5b_branch2b"
top: "res5b_branch2c"
name: "res5b_branch2c"
type: "Convolution"
convolution_param {
num_output: 2048
kernel_size: 1
pad: 0
stride: 1
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res5b_branch2c"
top: "res5b_branch2c"
name: "bn5b_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res5c_branch2a"
top: "res5c_branch2a"
name: "bn5c_branch2a"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res5c_branch2a"
top: "res5c_branch2a"
name: "scale5c_branch2a"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res5c_branch2a"
top: "res5c_branch2a"
name: "res5c_branch2a_relu"
type: "ReLU"
} layer {
bottom: "res5c_branch2a"
top: "res5c_branch2b"
name: "res5c_branch2b"
type: "Convolution"
convolution_param {
num_output: 512
kernel_size: 3
pad: 1
stride: 1
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res5c_branch2b"
top: "res5c_branch2b"
name: "bn5c_branch2b"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} layer {
bottom: "res5c_branch2b"
top: "res5c_branch2b"
name: "scale5c_branch2b"
type: "Scale"
scale_param {
bias_term: true
}
} layer {
bottom: "res5c_branch2b"
top: "res5c_branch2b"
name: "res5c_branch2b_relu"
type: "ReLU"
} layer {
bottom: "res5c_branch2b"
top: "res5c_branch2c"
name: "res5c_branch2c"
type: "Convolution"
convolution_param {
num_output: 2048
kernel_size: 1
pad: 0
stride: 1
weight_filler {
type: "msra"
}
bias_term: false }
} layer {
bottom: "res5c_branch2c"
top: "res5c_branch2c"
name: "bn5c_branch2c"
type: "BatchNorm"
batch_norm_param {
use_global_stats: false
}
} 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"
eltwise_param {
operation: SUM
}
} 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: "fc3"
name: "fc3"
type: "InnerProduct"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 1
}
inner_product_param {
num_output: 3
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
} layer {
bottom: "fc3"
bottom: "label"
name: "loss"
type: "SoftmaxWithLoss"
top: "loss"
} layer {
name: "probt"
type: "Softmax"
bottom: "fc3"
top: "probt"
include {
phase: TEST
}
} layer {
bottom: "fc3"
bottom: "label"
top: "accuracy@1"
name: "accuracy/top1"
type: "Accuracy"
accuracy_param {
top_k: 1
}
}
deploy.prototxt
name: "ResNet-152"
input: "data"
input_shape {
dim: 1
dim: 3
dim: 224
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: "fc3"
name: "fc3"
type: "InnerProduct"
inner_product_param {
num_output: 3
}
} layer {
bottom: "fc3"
top: "prob"
name: "prob"
type: "Softmax"
}
solver.prototxt
net: "/home/wy/ResNet152/train_val.prototxt"
test_iter: 1003
test_interval: 4000
test_initialization: false
display: 100
average_loss: 100
base_lr: 0.05
lr_policy: "step"
stepsize: 150000
gamma: 0.1
max_iter: 600000
momentum: 0.9
weight_decay: 0.0001
snapshot: 40000
snapshot_prefix: "/home/wy/ResNet152/model/"
solver_mode: GPU
作为一枚技术小白,写这篇笔记的时候参考了很多博客论文,在这里表示感谢,同时,未经同意,请勿转载....
ResNet152网络复现(Caffe)的更多相关文章
- 【3D】PoseCNN姿态检测网络复现过程记录
最近在研究室内6D姿态检测相关问题,计划在PoseCNN网络基础上进行改进实现.但是在第一步的复现过程中踩了无数的坑,最终成功运行了demo,但目前数据集train还是遇到了一些问题.有问题欢迎一起交 ...
- Caffe(卷积神经网络框架)介绍
Caffe(卷积神经网络框架)Caffe,全称Convolution Architecture For Feature Extraction caffe是一个清晰,可读性高,快速的深度学习框架.作者是 ...
- caffe 教程
Caffe是一个清晰而高效的深度学习框架,本文详细介绍了caffe的优势.架构,网络定义.各层定义,Caffe的安装与配置,解读了Caffe实现的图像分类模型AlexNet,并演示了CIFAR-10在 ...
- caffe学习--cifar10学习-ubuntu16.04-gtx650tiboost--1g--02
caffe学习--cifar10学习-ubuntu16.04-gtx650tiboost--1g--02 训练网络: caffe train -solver examples/cifar10/cifa ...
- [转]Caffe 深度学习框架上手教程
Caffe 深度学习框架上手教程 机器学习Caffe caffe 原文地址:http://suanfazu.com/t/caffe/281 blink 15年1月 6 Caffe448是一个清 ...
- Caffe 深度学习框架介绍
转自:http://suanfazu.com/t/caffe/281 Caffe是一个清晰而高效的深度学习框架,其作者是博士毕业于UC Berkeley的贾扬清,目前在Google工作. Caffe是 ...
- [Caffe]使用经验积累
Caffe使用经验积累 本贴记录Caffe编译好了,使用过程的常用命令与常见错误解决方式.如果对编译过程还存在问题,请参考史上最全的caffe安装过程配置Caffe环境. 1 使用方法 训练网络 xx ...
- 服务器上安装caffe的过程记录
1. 前言 因为新的实验室东西都是新的,所以在服务器上要自己重新配置CAFFE 这里假设所有依赖包学长们都安装好了,我是没有sudo权限的 服务器的配置: CUDA 8.0 Ubuntu 16.04 ...
- 机器学习进阶-目标追踪-SSD多进程执行 1.cv2.dnn.readnetFromCaffe(用于读取已经训练好的caffe模型) 2.delib.correlation_tracker(生成追踪器) 5.cv2.writer(将图片写入视频中) 6.cv2.dnn.blobFromImage(图片归一化) 10.multiprocessing.process(生成进程)
1. cv2.dnn.readNetFromCaffe(prototxt, model) 用于进行SSD网络的caffe框架的加载 参数说明:prototxt表示caffe网络的结构文本,model ...
随机推荐
- 04 Zabbix4.0系统配置触发器trigger
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 04 Zabbix4.0系统配置触发器trigger 请点击查看Zabbix3.0.8版本trig ...
- 自学工业控制网络之路2.2-PROFINET
返回 自学工业控制网络之路 自学工业控制网络之路2.2-PROFINET PROFINET由PROFIBUS国际组织(PROFIBUS International,PI)推出,是新一代基于工业以太网技 ...
- luogu2680 [NOIp2015]运输计划 (tarjanLca+二分答案+树上差分)
我们先不会就二分一下答案,设它是x,我们要判断它能不能满足 为了满足这个答案,我们就要让原本路径长度大于x的所有路径都经过某条边,而且这条边还要大于等于最长的路径-x 于是运用树上差分的思想,对于所有 ...
- SDL OPENGL 在linux ubuntu示例
gl画纹理texture /* * SDL OpenGL Tutorial. * (c) Michael Vance, 2000 * briareos@lokigames.com * * Distri ...
- Linux下的定时器类实现(select定时+线程)
更好的计时器类实现:LINUX RTC机制实现计时器类(原创) 很多时候需要在LINUX下用到定时器,但像setitimer()和alarm()这样的定时器有时会和sleep()函数发生冲突,这样就给 ...
- 解码(ByteBuffer): CharsetDecoder.decode() 与 Charset.decode() 的不同
今天测试的时候发现一个问题: ByteBuffer inputBuffer = ByteBuffer.allocate(1024); StringBuilder inputData = new Str ...
- javascript高级程序设计第二章知识点提炼
这是我整理的javascript高级程序设计第二章的脑图,内容也是非常浅显与简单.希望您看了我的博客能够给我一些意见或者建议.
- Spring MVC程序中怎么得到静态资源文件css,js,图片文件的路径问题
问题描述 在用springmvc开发应用程序的时候.对于像我一样的初学者,而且还是自学的人,有一个很头疼的问题.那就是数据都已经查出来了,但是页面的样式仍然十分简陋,加载不了css.js,图片等资源文 ...
- saltstack 基本操作
一.常用操作 ①.模块查看 #查看全部模块 [root@k8s_master ~]# salt '*' sys.list_modules # "*"为所有node节点 (此处可以写 ...
- UDP网路会议室的代码
UDP网络会议室视频已经录制好,这里贴上代码仅供参考 MainWindow代码: using System; using System.Collections.Generic; using Syste ...