Skip to content

Instantly share code, notes, and snippets.

@hustzxd
Last active August 21, 2017 06:49
Show Gist options
  • Save hustzxd/fcaa7ee79a053015f61a1bfb1248130d to your computer and use it in GitHub Desktop.
Save hustzxd/fcaa7ee79a053015f61a1bfb1248130d to your computer and use it in GitHub Desktop.
name: "MOBILENET"
layer {
name: "data"
type: "Data"
top: "data_bgr"
top: "label"
include {
phase: TRAIN
}
transform_param {
mirror: true
crop_size: 416
scale: 0.00390625
}
data_param {
source: "./examples/imagenet/ilsvrc12_train_lmdb"
batch_size: 15
backend: LMDB
}
}
layer {
name: "data"
type: "Data"
top: "data_bgr"
top: "label"
include {
phase: TEST
}
transform_param {
scale: 0.00390625
}
data_param {
# source: "../../../data/yolo/lmdb/test2007_lmdb"
source: "./examples/imagenet/ilsvrc12_val_lmdb"
batch_size: 5
backend: LMDB
}
}
layer {
name: "conv1"
type: "Convolution"
bottom: "data_bgr"
top: "conv1"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 32
kernel_size: 3
pad: 1
stride: 1
bias_term: false
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv1/bn"
type: "BatchNorm"
bottom: "conv1"
top: "conv1"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv1/scale"
type: "Scale"
bottom: "conv1"
top: "conv1"
param { # scale
lr_mult: 1
decay_mult: 0
}
param { # bias
lr_mult: 1
decay_mult: 0
}
#default 1, 0
scale_param {
bias_term: true
filler {
value: 1
}
bias_filler {
value: 0
}
}
}
layer {
name: "relu1"
type: "ReLU"
bottom: "conv1"
top: "conv1"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "pool1"
type: "Pooling"
bottom: "conv1"
top: "pool1"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer{
name: "conv2/dw"
type: "Convolution"
bottom: "pool1"
top: "conv2/dw"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 32
kernel_size: 3
pad: 1
stride: 1
bias_term: false
group: 32
#engine: CAFFE
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv2/dw/bn"
type: "BatchNorm"
bottom: "conv2/dw"
top: "conv2/dw"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv2/dw/scale"
type: "Scale"
bottom: "conv2/dw"
top: "conv2/dw"
param { # scale
lr_mult: 1
decay_mult: 0
}
param { # bias
lr_mult: 1
decay_mult: 0
}
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu2/dw"
type: "ReLU"
bottom: "conv2/dw"
top: "conv2/dw"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "conv2/sep"
type: "Convolution"
bottom: "conv2/dw"
top: "conv2/sep"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv2/sep/bn"
type: "BatchNorm"
bottom: "conv2/sep"
top: "conv2/sep"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv2/sep/scale"
type: "Scale"
bottom: "conv2/sep"
top: "conv2/sep"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu2/sep"
type: "ReLU"
bottom: "conv2/sep"
top: "conv2/sep"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "pool2"
type: "Pooling"
bottom: "conv2/sep"
top: "pool2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer{
name: "conv3/dw"
type: "Convolution"
bottom: "pool2"
top: "conv3/dw"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 64
kernel_size: 3
pad: 1
stride: 1
group: 64
bias_term: false
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv3/dw/bn"
type: "BatchNorm"
bottom: "conv3/dw"
top: "conv3/dw"
}
layer {
name: "conv3/dw/scale"
type: "Scale"
bottom: "conv3/dw"
top: "conv3/dw"
param { # scale
lr_mult: 1
decay_mult: 0
}
param { # bias
lr_mult: 1
decay_mult: 0
}
scale_param {
bias_term: true
}
}
layer {
name: "relu3/dw"
type: "ReLU"
bottom: "conv3/dw"
top: "conv3/dw"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "conv3/sep"
type: "Convolution"
bottom: "conv3/dw"
top: "conv3/sep"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 128
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv3/sep/bn"
type: "BatchNorm"
bottom: "conv3/sep"
top: "conv3/sep"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv3/sep/scale"
type: "Scale"
bottom: "conv3/sep"
top: "conv3/sep"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu3/sep"
type: "ReLU"
bottom: "conv3/sep"
top: "conv3/sep"
relu_param{
negative_slope: 0.1
}
}
layer{
name: "conv4"
type: "Convolution"
bottom: "conv3/sep"
top: "conv4"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 64
kernel_size: 1
pad: 0 #??
stride: 1
bias_term: false
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv4/bn"
type: "BatchNorm"
bottom: "conv4"
top: "conv4"
}
layer {
name: "conv4/scale"
type: "Scale"
bottom: "conv4"
top: "conv4"
param { # scale
lr_mult: 1
decay_mult: 0
}
param { # bias
lr_mult: 1
decay_mult: 0
}
scale_param {
bias_term: true
}
}
layer {
name: "relu4"
type: "ReLU"
bottom: "conv4"
top: "conv4"
relu_param{
negative_slope: 0.1
}
}
layer{
name: "conv5/dw"
type: "Convolution"
bottom: "conv4"
top: "conv5/dw"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 64
kernel_size: 3
pad: 1
stride: 1
group: 64
bias_term: false
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv5/dw/bn"
type: "BatchNorm"
bottom: "conv5/dw"
top: "conv5/dw"
}
layer {
name: "conv5/dw/scale"
type: "Scale"
bottom: "conv5/dw"
top: "conv5/dw"
param { # scale
lr_mult: 1
decay_mult: 0
}
param { # bias
lr_mult: 1
decay_mult: 0
}
scale_param {
bias_term: true
}
}
layer {
name: "relu5/dw"
type: "ReLU"
bottom: "conv5/dw"
top: "conv5/dw"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "conv5/sep"
type: "Convolution"
bottom: "conv5/dw"
top: "conv5/sep"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 128
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv5/sep/bn"
type: "BatchNorm"
bottom: "conv5/sep"
top: "conv5/sep"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv5/sep/scale"
type: "Scale"
bottom: "conv5/sep"
top: "conv5/sep"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu5/sep"
type: "ReLU"
bottom: "conv5/sep"
top: "conv5/sep"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "pool5"
type: "Pooling"
bottom: "conv5/sep"
top: "pool5"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer{
name: "conv6/dw"
type: "Convolution"
bottom: "pool5"
top: "conv6/dw"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 128
kernel_size: 3
pad: 1
stride: 1
group: 128
bias_term: false
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv6/dw/bn"
type: "BatchNorm"
bottom: "conv6/dw"
top: "conv6/dw"
}
layer {
name: "conv6/dw/scale"
type: "Scale"
bottom: "conv6/dw"
top: "conv6/dw"
param { # scale
lr_mult: 1
decay_mult: 0
}
param { # bias
lr_mult: 1
decay_mult: 0
}
scale_param {
bias_term: true
}
}
layer {
name: "relu6/dw"
type: "ReLU"
bottom: "conv6/dw"
top: "conv6/dw"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "conv6/sep"
type: "Convolution"
bottom: "conv6/dw"
top: "conv6/sep"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv6/sep/bn"
type: "BatchNorm"
bottom: "conv6/sep"
top: "conv6/sep"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv6/sep/scale"
type: "Scale"
bottom: "conv6/sep"
top: "conv6/sep"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu6/sep"
type: "ReLU"
bottom: "conv6/sep"
top: "conv6/sep"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "conv7"
type: "Convolution"
bottom: "conv6/sep"
top: "conv7"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 128
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv7/bn"
type: "BatchNorm"
bottom: "conv7"
top: "conv7"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv7/scale"
type: "Scale"
bottom: "conv7"
top: "conv7"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu7"
type: "ReLU"
bottom: "conv7"
top: "conv7"
relu_param{
negative_slope: 0.1
}
}
layer{
name: "conv8/dw"
type: "Convolution"
bottom: "conv7"
top: "conv8/dw"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 128
kernel_size: 3
pad: 1
stride: 1
group: 128
bias_term: false
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv8/dw/bn"
type: "BatchNorm"
bottom: "conv8/dw"
top: "conv8/dw"
}
layer {
name: "conv8/dw/scale"
type: "Scale"
bottom: "conv8/dw"
top: "conv8/dw"
param { # scale
lr_mult: 1
decay_mult: 0
}
param { # bias
lr_mult: 1
decay_mult: 0
}
scale_param {
bias_term: true
}
}
layer {
name: "relu8/dw"
type: "ReLU"
bottom: "conv8/dw"
top: "conv8/dw"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "conv8/sep"
type: "Convolution"
bottom: "conv8/dw"
top: "conv8/sep"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv8/sep/bn"
type: "BatchNorm"
bottom: "conv8/sep"
top: "conv8/sep"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv8/sep/scale"
type: "Scale"
bottom: "conv8/sep"
top: "conv8/sep"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu8/sep"
type: "ReLU"
bottom: "conv8/sep"
top: "conv8/sep"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "pool8"
type: "Pooling"
bottom: "conv8/sep"
top: "pool8"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer{
name: "conv9/dw"
type: "Convolution"
bottom: "pool8"
top: "conv9/dw"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 256
kernel_size: 3
pad: 1
stride: 1
group: 256
bias_term: false
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv9/dw/bn"
type: "BatchNorm"
bottom: "conv9/dw"
top: "conv9/dw"
}
layer {
name: "conv9/dw/scale"
type: "Scale"
bottom: "conv9/dw"
top: "conv9/dw"
param { # scale
lr_mult: 1
decay_mult: 0
}
param { # bias
lr_mult: 1
decay_mult: 0
}
scale_param {
bias_term: true
}
}
layer {
name: "relu9/dw"
type: "ReLU"
bottom: "conv9/dw"
top: "conv9/dw"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "conv9/sep"
type: "Convolution"
bottom: "conv9/dw"
top: "conv9/sep"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 512
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv9/sep/bn"
type: "BatchNorm"
bottom: "conv9/sep"
top: "conv9/sep"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv9/sep/scale"
type: "Scale"
bottom: "conv9/sep"
top: "conv9/sep"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu9/sep"
type: "ReLU"
bottom: "conv9/sep"
top: "conv9/sep"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "conv10"
type: "Convolution"
bottom: "conv9/sep"
top: "conv10"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv10/bn"
type: "BatchNorm"
bottom: "conv10"
top: "conv10"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv10/scale"
type: "Scale"
bottom: "conv10"
top: "conv10"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu10"
type: "ReLU"
bottom: "conv10"
top: "conv10"
relu_param{
negative_slope: 0.1
}
}
layer{
name: "conv11/dw"
type: "Convolution"
bottom: "conv10"
top: "conv11/dw"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 256
kernel_size: 3
pad: 1
stride: 1
bias_term: false
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv11/dw/bn"
type: "BatchNorm"
bottom: "conv11/dw"
top: "conv11/dw"
}
layer {
name: "conv11/dw/scale"
type: "Scale"
bottom: "conv11/dw"
top: "conv11/dw"
param { # scale
lr_mult: 1
decay_mult: 0
}
param { # bias
lr_mult: 1
decay_mult: 0
}
scale_param {
bias_term: true
}
}
layer {
name: "relu11/dw"
type: "ReLU"
bottom: "conv11/dw"
top: "conv11/dw"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "conv11/sep"
type: "Convolution"
bottom: "conv11/dw"
top: "conv11/sep"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 512
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv11/sep/bn"
type: "BatchNorm"
bottom: "conv11/sep"
top: "conv11/sep"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv11/sep/scale"
type: "Scale"
bottom: "conv11/sep"
top: "conv11/sep"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu11/sep"
type: "ReLU"
bottom: "conv11/sep"
top: "conv11/sep"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "conv12"
type: "Convolution"
bottom: "conv11/sep"
top: "conv12"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv12/bn"
type: "BatchNorm"
bottom: "conv12"
top: "conv12"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv12/scale"
type: "Scale"
bottom: "conv12"
top: "conv12"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu12"
type: "ReLU"
bottom: "conv12"
top: "conv12"
relu_param{
negative_slope: 0.1
}
}
layer{
name: "conv13/dw"
type: "Convolution"
bottom: "conv12"
top: "conv13/dw"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 256
kernel_size: 3
pad: 1
stride: 1
group: 256
bias_term: false
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv13/dw/bn"
type: "BatchNorm"
bottom: "conv13/dw"
top: "conv13/dw"
}
layer {
name: "conv13/dw/scale"
type: "Scale"
bottom: "conv13/dw"
top: "conv13/dw"
param { # scale
lr_mult: 1
decay_mult: 0
}
param { # bias
lr_mult: 1
decay_mult: 0
}
scale_param {
bias_term: true
}
}
layer {
name: "relu13/dw"
type: "ReLU"
bottom: "conv13/dw"
top: "conv13/dw"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "conv13/sep"
type: "Convolution"
bottom: "conv13/dw"
top: "conv13/sep"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 512
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv13/sep/bn"
type: "BatchNorm"
bottom: "conv13/sep"
top: "conv13/sep"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv13/sep/scale"
type: "Scale"
bottom: "conv13/sep"
top: "conv13/sep"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu13/sep"
type: "ReLU"
bottom: "conv13/sep"
top: "conv13/sep"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "pool13"
type: "Pooling"
bottom: "conv13/sep"
top: "pool13"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer{
name: "conv14/dw"
type: "Convolution"
bottom: "pool13"
top: "conv14/dw"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 512
kernel_size: 3
pad: 1
stride: 1
group: 512
bias_term: false
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv14/dw/bn"
type: "BatchNorm"
bottom: "conv14/dw"
top: "conv14/dw"
}
layer {
name: "conv14/dw/scale"
type: "Scale"
bottom: "conv14/dw"
top: "conv14/dw"
param { # scale
lr_mult: 1
decay_mult: 0
}
param { # bias
lr_mult: 1
decay_mult: 0
}
scale_param {
bias_term: true
}
}
layer {
name: "relu14/dw"
type: "ReLU"
bottom: "conv14/dw"
top: "conv14/dw"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "conv14/sep"
type: "Convolution"
bottom: "conv14/dw"
top: "conv14/sep"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 1024
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv14/sep/bn"
type: "BatchNorm"
bottom: "conv14/sep"
top: "conv14/sep"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv14/sep/scale"
type: "Scale"
bottom: "conv14/sep"
top: "conv14/sep"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu14/sep"
type: "ReLU"
bottom: "conv14/sep"
top: "conv14/sep"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "conv15"
type: "Convolution"
bottom: "conv14/sep"
top: "conv15"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 512
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv15/bn"
type: "BatchNorm"
bottom: "conv15"
top: "conv15"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv15/scale"
type: "Scale"
bottom: "conv15"
top: "conv15"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu15"
type: "ReLU"
bottom: "conv15"
top: "conv15"
relu_param{
negative_slope: 0.1
}
}
layer{
name: "conv16/dw"
type: "Convolution"
bottom: "conv15"
top: "conv16/dw"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 512
kernel_size: 3
pad: 1
stride: 1
group: 512
bias_term: false
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv16/dw/bn"
type: "BatchNorm"
bottom: "conv16/dw"
top: "conv16/dw"
}
layer {
name: "conv16/dw/scale"
type: "Scale"
bottom: "conv16/dw"
top: "conv16/dw"
param { # scale
lr_mult: 1
decay_mult: 0
}
param { # bias
lr_mult: 1
decay_mult: 0
}
scale_param {
bias_term: true
}
}
layer {
name: "relu16/dw"
type: "ReLU"
bottom: "conv16/dw"
top: "conv16/dw"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "conv16/sep"
type: "Convolution"
bottom: "conv16/dw"
top: "conv16/sep"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 1024
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv16/sep/bn"
type: "BatchNorm"
bottom: "conv16/sep"
top: "conv16/sep"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv16/sep/scale"
type: "Scale"
bottom: "conv16/sep"
top: "conv16/sep"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu16/sep"
type: "ReLU"
bottom: "conv16/sep"
top: "conv16/sep"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "conv17"
type: "Convolution"
bottom: "conv16/sep"
top: "conv17"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 512
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv17/bn"
type: "BatchNorm"
bottom: "conv17"
top: "conv17"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv17/scale"
type: "Scale"
bottom: "conv17"
top: "conv17"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu17"
type: "ReLU"
bottom: "conv17"
top: "conv17"
relu_param{
negative_slope: 0.1
}
}
layer{
name: "conv18/dw"
type: "Convolution"
bottom: "conv17"
top: "conv18/dw"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 512
kernel_size: 3
pad: 1
stride: 1
group: 512
bias_term: false
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv18/dw/bn"
type: "BatchNorm"
bottom: "conv18/dw"
top: "conv18/dw"
}
layer {
name: "conv18/dw/scale"
type: "Scale"
bottom: "conv18/dw"
top: "conv18/dw"
param { # scale
lr_mult: 1
decay_mult: 0
}
param { # bias
lr_mult: 1
decay_mult: 0
}
scale_param {
bias_term: true
}
}
layer {
name: "relu18/dw"
type: "ReLU"
bottom: "conv18/dw"
top: "conv18/dw"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "conv18/sep"
type: "Convolution"
bottom: "conv18/dw"
top: "conv18/sep"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 1024
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv18/sep/bn"
type: "BatchNorm"
bottom: "conv18/sep"
top: "conv18/sep"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv18/sep/scale"
type: "Scale"
bottom: "conv18/sep"
top: "conv18/sep"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu18/sep"
type: "ReLU"
bottom: "conv18/sep"
top: "conv18/sep"
relu_param{
negative_slope: 0.1
}
}
layer{
name: "conv19/dw"
type: "Convolution"
bottom: "conv18/sep"
top: "conv19/dw"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 1024
kernel_size: 3
pad: 1
stride: 1
group: 1024
bias_term: false
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv19/dw/bn"
type: "BatchNorm"
bottom: "conv19/dw"
top: "conv19/dw"
}
layer {
name: "conv19/dw/scale"
type: "Scale"
bottom: "conv19/dw"
top: "conv19/dw"
param { # scale
lr_mult: 1
decay_mult: 0
}
param { # bias
lr_mult: 1
decay_mult: 0
}
scale_param {
bias_term: true
}
}
layer {
name: "relu19/dw"
type: "ReLU"
bottom: "conv19/dw"
top: "conv19/dw"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "conv19/sep"
type: "Convolution"
bottom: "conv19/dw"
top: "conv19/sep"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 1024
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv19/sep/bn"
type: "BatchNorm"
bottom: "conv19/sep"
top: "conv19/sep"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv19/sep/scale"
type: "Scale"
bottom: "conv19/sep"
top: "conv19/sep"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu19/sep"
type: "ReLU"
bottom: "conv19/sep"
top: "conv19/sep"
relu_param{
negative_slope: 0.1
}
}
layer{
name: "conv20/dw"
type: "Convolution"
bottom: "conv19/sep"
top: "conv20/dw"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 1024
kernel_size: 3
pad: 1
stride: 1
group: 1024
bias_term: false
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv20/dw/bn"
type: "BatchNorm"
bottom: "conv20/dw"
top: "conv20/dw"
}
layer {
name: "conv20/dw/scale"
type: "Scale"
bottom: "conv20/dw"
top: "conv20/dw"
param { # scale
lr_mult: 1
decay_mult: 0
}
param { # bias
lr_mult: 1
decay_mult: 0
}
scale_param {
bias_term: true
}
}
layer {
name: "relu20/dw"
type: "ReLU"
bottom: "conv20/dw"
top: "conv20/dw"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "conv20/sep"
type: "Convolution"
bottom: "conv20/dw"
top: "conv20/sep"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 1024
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv20/sep/bn"
type: "BatchNorm"
bottom: "conv20/sep"
top: "conv20/sep"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv20/sep/scale"
type: "Scale"
bottom: "conv20/sep"
top: "conv20/sep"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu20/sep"
type: "ReLU"
bottom: "conv20/sep"
top: "conv20/sep"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "reorg1"
type: "Reorg"
bottom: "conv13/sep"
top: "reorg1"
reorg_param {
stride: 2
}
}
layer {
name: "concat1"
type: "Concat"
bottom: "reorg1"
bottom: "conv20/sep"
top: "concat1"
}
layer{
name: "conv21/dw"
type: "Convolution"
bottom: "concat1"
top: "conv21/dw"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 3072
kernel_size: 3
pad: 1
stride: 1
group: 3072
bias_term: false
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv21/dw/bn"
type: "BatchNorm"
bottom: "conv21/dw"
top: "conv21/dw"
}
layer {
name: "conv21/dw/scale"
type: "Scale"
bottom: "conv21/dw"
top: "conv21/dw"
param { # scale
lr_mult: 1
decay_mult: 0
}
param { # bias
lr_mult: 1
decay_mult: 0
}
scale_param {
bias_term: true
}
}
layer {
name: "relu21/dw"
type: "ReLU"
bottom: "conv21/dw"
top: "conv21/dw"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "conv21/sep"
type: "Convolution"
bottom: "conv21/dw"
top: "conv21/sep"
param {
lr_mult: 1
decay_mult: 1
}
convolution_param {
num_output: 1024
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
}
}
layer {
name: "conv21/sep/bn"
type: "BatchNorm"
bottom: "conv21/sep"
top: "conv21/sep"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "conv21/sep/scale"
type: "Scale"
bottom: "conv21/sep"
top: "conv21/sep"
scale_param {
filler {
value: 1
}
bias_term: true
bias_filler {
value: 0
}
}
}
layer {
name: "relu21/sep"
type: "ReLU"
bottom: "conv21/sep"
top: "conv21/sep"
relu_param{
negative_slope: 0.1
}
}
layer {
name: "pool21"
type: "Pooling"
bottom: "conv21/sep"
top: "pool21"
pooling_param {
pool: AVE
global_pooling: true
}
}
layer {
name: "fc22"
type: "Convolution"
bottom: "pool21"
top: "fc22"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 1000
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "accuracy"
type: "Accuracy"
bottom: "fc22"
bottom: "label"
top: "accuracy"
include {
phase: TEST
}
}
layer {
name: "loss"
type: "SoftmaxWithLoss"
bottom: "fc22"
bottom: "label"
top: "loss"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment