From d95b4665b8e246ad05f4d0e302ac270b3b31db4f Mon Sep 17 00:00:00 2001 From: Dzmitry Kamarouski Date: Sun, 11 Mar 2018 01:24:04 +0300 Subject: [PATCH 1/6] Add files via upload --- models/SqueezeNet/deploy.prototxt | 553 +++++++++++++++++++++ models/SqueezeNet/solver.prototxt | 25 + models/SqueezeNet/train_val.prototxt | 693 +++++++++++++++++++++++++++ 3 files changed, 1271 insertions(+) create mode 100644 models/SqueezeNet/deploy.prototxt create mode 100644 models/SqueezeNet/solver.prototxt create mode 100644 models/SqueezeNet/train_val.prototxt diff --git a/models/SqueezeNet/deploy.prototxt b/models/SqueezeNet/deploy.prototxt new file mode 100644 index 000000000..8295b13fa --- /dev/null +++ b/models/SqueezeNet/deploy.prototxt @@ -0,0 +1,553 @@ +# please cite: +# @article{SqueezeNet, +# Author = {Forrest N. Iandola and Matthew W. Moskewicz and Khalid Ashraf and Song Han and William J. Dally and Kurt Keutzer}, +# Title = {SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and $<$1MB model size}, +# Journal = {arXiv:1602.07360}, +# Year = {2016} +# } + +layer { + name: "data" + type: "Input" + top: "data" + input_param { shape: { dim: 10 dim: 3 dim: 227 dim: 227 } } +} +layer { + name: "conv1" + type: "Convolution" + bottom: "data" + top: "conv1" + convolution_param { + num_output: 64 + kernel_size: 3 + stride: 2 + } +} +layer { + name: "relu_conv1" + type: "ReLU" + bottom: "conv1" + top: "conv1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fire2/squeeze1x1" + type: "Convolution" + bottom: "pool1" + top: "fire2/squeeze1x1" + convolution_param { + num_output: 16 + kernel_size: 1 + } +} +layer { + name: "fire2/relu_squeeze1x1" + type: "ReLU" + bottom: "fire2/squeeze1x1" + top: "fire2/squeeze1x1" +} +layer { + name: "fire2/expand1x1" + type: "Convolution" + bottom: "fire2/squeeze1x1" + top: "fire2/expand1x1" + convolution_param { + num_output: 64 + kernel_size: 1 + } +} +layer { + name: "fire2/relu_expand1x1" + type: "ReLU" + bottom: "fire2/expand1x1" + top: "fire2/expand1x1" +} +layer { + name: "fire2/expand3x3" + type: "Convolution" + bottom: "fire2/squeeze1x1" + top: "fire2/expand3x3" + convolution_param { + num_output: 64 + pad: 1 + kernel_size: 3 + } +} +layer { + name: "fire2/relu_expand3x3" + type: "ReLU" + bottom: "fire2/expand3x3" + top: "fire2/expand3x3" +} +layer { + name: "fire2/concat" + type: "Concat" + bottom: "fire2/expand1x1" + bottom: "fire2/expand3x3" + top: "fire2/concat" +} +layer { + name: "fire3/squeeze1x1" + type: "Convolution" + bottom: "fire2/concat" + top: "fire3/squeeze1x1" + convolution_param { + num_output: 16 + kernel_size: 1 + } +} +layer { + name: "fire3/relu_squeeze1x1" + type: "ReLU" + bottom: "fire3/squeeze1x1" + top: "fire3/squeeze1x1" +} +layer { + name: "fire3/expand1x1" + type: "Convolution" + bottom: "fire3/squeeze1x1" + top: "fire3/expand1x1" + convolution_param { + num_output: 64 + kernel_size: 1 + } +} +layer { + name: "fire3/relu_expand1x1" + type: "ReLU" + bottom: "fire3/expand1x1" + top: "fire3/expand1x1" +} +layer { + name: "fire3/expand3x3" + type: "Convolution" + bottom: "fire3/squeeze1x1" + top: "fire3/expand3x3" + convolution_param { + num_output: 64 + pad: 1 + kernel_size: 3 + } +} +layer { + name: "fire3/relu_expand3x3" + type: "ReLU" + bottom: "fire3/expand3x3" + top: "fire3/expand3x3" +} +layer { + name: "fire3/concat" + type: "Concat" + bottom: "fire3/expand1x1" + bottom: "fire3/expand3x3" + top: "fire3/concat" +} +layer { + name: "pool3" + type: "Pooling" + bottom: "fire3/concat" + top: "pool3" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fire4/squeeze1x1" + type: "Convolution" + bottom: "pool3" + top: "fire4/squeeze1x1" + convolution_param { + num_output: 32 + kernel_size: 1 + } +} +layer { + name: "fire4/relu_squeeze1x1" + type: "ReLU" + bottom: "fire4/squeeze1x1" + top: "fire4/squeeze1x1" +} +layer { + name: "fire4/expand1x1" + type: "Convolution" + bottom: "fire4/squeeze1x1" + top: "fire4/expand1x1" + convolution_param { + num_output: 128 + kernel_size: 1 + } +} +layer { + name: "fire4/relu_expand1x1" + type: "ReLU" + bottom: "fire4/expand1x1" + top: "fire4/expand1x1" +} +layer { + name: "fire4/expand3x3" + type: "Convolution" + bottom: "fire4/squeeze1x1" + top: "fire4/expand3x3" + convolution_param { + num_output: 128 + pad: 1 + kernel_size: 3 + } +} +layer { + name: "fire4/relu_expand3x3" + type: "ReLU" + bottom: "fire4/expand3x3" + top: "fire4/expand3x3" +} +layer { + name: "fire4/concat" + type: "Concat" + bottom: "fire4/expand1x1" + bottom: "fire4/expand3x3" + top: "fire4/concat" +} +layer { + name: "fire5/squeeze1x1" + type: "Convolution" + bottom: "fire4/concat" + top: "fire5/squeeze1x1" + convolution_param { + num_output: 32 + kernel_size: 1 + } +} +layer { + name: "fire5/relu_squeeze1x1" + type: "ReLU" + bottom: "fire5/squeeze1x1" + top: "fire5/squeeze1x1" +} +layer { + name: "fire5/expand1x1" + type: "Convolution" + bottom: "fire5/squeeze1x1" + top: "fire5/expand1x1" + convolution_param { + num_output: 128 + kernel_size: 1 + } +} +layer { + name: "fire5/relu_expand1x1" + type: "ReLU" + bottom: "fire5/expand1x1" + top: "fire5/expand1x1" +} +layer { + name: "fire5/expand3x3" + type: "Convolution" + bottom: "fire5/squeeze1x1" + top: "fire5/expand3x3" + convolution_param { + num_output: 128 + pad: 1 + kernel_size: 3 + } +} +layer { + name: "fire5/relu_expand3x3" + type: "ReLU" + bottom: "fire5/expand3x3" + top: "fire5/expand3x3" +} +layer { + name: "fire5/concat" + type: "Concat" + bottom: "fire5/expand1x1" + bottom: "fire5/expand3x3" + top: "fire5/concat" +} +layer { + name: "pool5" + type: "Pooling" + bottom: "fire5/concat" + top: "pool5" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fire6/squeeze1x1" + type: "Convolution" + bottom: "pool5" + top: "fire6/squeeze1x1" + convolution_param { + num_output: 48 + kernel_size: 1 + } +} +layer { + name: "fire6/relu_squeeze1x1" + type: "ReLU" + bottom: "fire6/squeeze1x1" + top: "fire6/squeeze1x1" +} +layer { + name: "fire6/expand1x1" + type: "Convolution" + bottom: "fire6/squeeze1x1" + top: "fire6/expand1x1" + convolution_param { + num_output: 192 + kernel_size: 1 + } +} +layer { + name: "fire6/relu_expand1x1" + type: "ReLU" + bottom: "fire6/expand1x1" + top: "fire6/expand1x1" +} +layer { + name: "fire6/expand3x3" + type: "Convolution" + bottom: "fire6/squeeze1x1" + top: "fire6/expand3x3" + convolution_param { + num_output: 192 + pad: 1 + kernel_size: 3 + } +} +layer { + name: "fire6/relu_expand3x3" + type: "ReLU" + bottom: "fire6/expand3x3" + top: "fire6/expand3x3" +} +layer { + name: "fire6/concat" + type: "Concat" + bottom: "fire6/expand1x1" + bottom: "fire6/expand3x3" + top: "fire6/concat" +} +layer { + name: "fire7/squeeze1x1" + type: "Convolution" + bottom: "fire6/concat" + top: "fire7/squeeze1x1" + convolution_param { + num_output: 48 + kernel_size: 1 + } +} +layer { + name: "fire7/relu_squeeze1x1" + type: "ReLU" + bottom: "fire7/squeeze1x1" + top: "fire7/squeeze1x1" +} +layer { + name: "fire7/expand1x1" + type: "Convolution" + bottom: "fire7/squeeze1x1" + top: "fire7/expand1x1" + convolution_param { + num_output: 192 + kernel_size: 1 + } +} +layer { + name: "fire7/relu_expand1x1" + type: "ReLU" + bottom: "fire7/expand1x1" + top: "fire7/expand1x1" +} +layer { + name: "fire7/expand3x3" + type: "Convolution" + bottom: "fire7/squeeze1x1" + top: "fire7/expand3x3" + convolution_param { + num_output: 192 + pad: 1 + kernel_size: 3 + } +} +layer { + name: "fire7/relu_expand3x3" + type: "ReLU" + bottom: "fire7/expand3x3" + top: "fire7/expand3x3" +} +layer { + name: "fire7/concat" + type: "Concat" + bottom: "fire7/expand1x1" + bottom: "fire7/expand3x3" + top: "fire7/concat" +} +layer { + name: "fire8/squeeze1x1" + type: "Convolution" + bottom: "fire7/concat" + top: "fire8/squeeze1x1" + convolution_param { + num_output: 64 + kernel_size: 1 + } +} +layer { + name: "fire8/relu_squeeze1x1" + type: "ReLU" + bottom: "fire8/squeeze1x1" + top: "fire8/squeeze1x1" +} +layer { + name: "fire8/expand1x1" + type: "Convolution" + bottom: "fire8/squeeze1x1" + top: "fire8/expand1x1" + convolution_param { + num_output: 256 + kernel_size: 1 + } +} +layer { + name: "fire8/relu_expand1x1" + type: "ReLU" + bottom: "fire8/expand1x1" + top: "fire8/expand1x1" +} +layer { + name: "fire8/expand3x3" + type: "Convolution" + bottom: "fire8/squeeze1x1" + top: "fire8/expand3x3" + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + } +} +layer { + name: "fire8/relu_expand3x3" + type: "ReLU" + bottom: "fire8/expand3x3" + top: "fire8/expand3x3" +} +layer { + name: "fire8/concat" + type: "Concat" + bottom: "fire8/expand1x1" + bottom: "fire8/expand3x3" + top: "fire8/concat" +} +layer { + name: "fire9/squeeze1x1" + type: "Convolution" + bottom: "fire8/concat" + top: "fire9/squeeze1x1" + convolution_param { + num_output: 64 + kernel_size: 1 + } +} +layer { + name: "fire9/relu_squeeze1x1" + type: "ReLU" + bottom: "fire9/squeeze1x1" + top: "fire9/squeeze1x1" +} +layer { + name: "fire9/expand1x1" + type: "Convolution" + bottom: "fire9/squeeze1x1" + top: "fire9/expand1x1" + convolution_param { + num_output: 256 + kernel_size: 1 + } +} +layer { + name: "fire9/relu_expand1x1" + type: "ReLU" + bottom: "fire9/expand1x1" + top: "fire9/expand1x1" +} +layer { + name: "fire9/expand3x3" + type: "Convolution" + bottom: "fire9/squeeze1x1" + top: "fire9/expand3x3" + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + } +} +layer { + name: "fire9/relu_expand3x3" + type: "ReLU" + bottom: "fire9/expand3x3" + top: "fire9/expand3x3" +} +layer { + name: "fire9/concat" + type: "Concat" + bottom: "fire9/expand1x1" + bottom: "fire9/expand3x3" + top: "fire9/concat" +} +layer { + name: "drop9" + type: "Dropout" + bottom: "fire9/concat" + top: "fire9/concat" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "conv10" + type: "Convolution" + bottom: "fire9/concat" + top: "conv10" + convolution_param { + num_output: 1000 + kernel_size: 1 + } +} +layer { + name: "relu_conv10" + type: "ReLU" + bottom: "conv10" + top: "conv10" +} +layer { + name: "pool10" + type: "Pooling" + bottom: "conv10" + top: "pool10" + pooling_param { + pool: AVE + global_pooling: true + } +} +layer { + name: "prob" + type: "Softmax" + bottom: "pool10" + top: "prob" +} diff --git a/models/SqueezeNet/solver.prototxt b/models/SqueezeNet/solver.prototxt new file mode 100644 index 000000000..b5f3de552 --- /dev/null +++ b/models/SqueezeNet/solver.prototxt @@ -0,0 +1,25 @@ +# please cite: +# @article{SqueezeNet, +# Author = {Forrest N. Iandola and Matthew W. Moskewicz and Khalid Ashraf and Song Han and William J. Dally and Kurt Keutzer}, +# Title = {SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and $<$1MB model size}, +# Journal = {arXiv:1602.07360}, +# Year = {2016} +# } + +test_iter: 2000 #not subject to iter_size +test_interval: 1000 +base_lr: 0.04 +display: 40 +max_iter: 170000 +iter_size: 16 #global batch size = batch_size * iter_size +lr_policy: "poly" +power: 1.0 #linearly decrease LR +momentum: 0.9 +weight_decay: 0.0002 +snapshot: 1000 +snapshot_prefix: "train" +solver_mode: GPU +random_seed: 42 +net: "train_val.prototxt" #we typically do `cd SqueezeNet_v1.0; caffe train ` +test_initialization: false +average_loss: 40 diff --git a/models/SqueezeNet/train_val.prototxt b/models/SqueezeNet/train_val.prototxt new file mode 100644 index 000000000..6a1c47805 --- /dev/null +++ b/models/SqueezeNet/train_val.prototxt @@ -0,0 +1,693 @@ +# please cite: +# @article{SqueezeNet, +# Author = {Forrest N. Iandola and Matthew W. Moskewicz and Khalid Ashraf and Song Han and William J. Dally and Kurt Keutzer}, +# Title = {SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and $<$1MB model size}, +# Journal = {arXiv:1602.07360}, +# Year = {2016} +# } +layer { + name: "data" + type: "Data" + top: "data" + top: "label" + include { + phase: TRAIN + } + transform_param { + crop_size: 227 + mean_value: 104 + mean_value: 117 + mean_value: 123 + } + data_param { + source: "examples/imagenet/ilsvrc12_train_lmdb" + batch_size: 32 + backend: LMDB + } +} +layer { + name: "data" + type: "Data" + top: "data" + top: "label" + include { + phase: TEST + } + transform_param { + crop_size: 227 + mean_value: 104 + mean_value: 117 + mean_value: 123 + } + data_param { + source: "examples/imagenet/ilsvrc12_val_lmdb" + batch_size: 25 #not *iter_size + backend: LMDB + } +} +layer { + name: "conv1" + type: "Convolution" + bottom: "data" + top: "conv1" + convolution_param { + num_output: 64 + kernel_size: 3 + stride: 2 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "relu_conv1" + type: "ReLU" + bottom: "conv1" + top: "conv1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fire2/squeeze1x1" + type: "Convolution" + bottom: "pool1" + top: "fire2/squeeze1x1" + convolution_param { + num_output: 16 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire2/relu_squeeze1x1" + type: "ReLU" + bottom: "fire2/squeeze1x1" + top: "fire2/squeeze1x1" +} +layer { + name: "fire2/expand1x1" + type: "Convolution" + bottom: "fire2/squeeze1x1" + top: "fire2/expand1x1" + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire2/relu_expand1x1" + type: "ReLU" + bottom: "fire2/expand1x1" + top: "fire2/expand1x1" +} +layer { + name: "fire2/expand3x3" + type: "Convolution" + bottom: "fire2/squeeze1x1" + top: "fire2/expand3x3" + convolution_param { + num_output: 64 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire2/relu_expand3x3" + type: "ReLU" + bottom: "fire2/expand3x3" + top: "fire2/expand3x3" +} +layer { + name: "fire2/concat" + type: "Concat" + bottom: "fire2/expand1x1" + bottom: "fire2/expand3x3" + top: "fire2/concat" +} +layer { + name: "fire3/squeeze1x1" + type: "Convolution" + bottom: "fire2/concat" + top: "fire3/squeeze1x1" + convolution_param { + num_output: 16 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire3/relu_squeeze1x1" + type: "ReLU" + bottom: "fire3/squeeze1x1" + top: "fire3/squeeze1x1" +} +layer { + name: "fire3/expand1x1" + type: "Convolution" + bottom: "fire3/squeeze1x1" + top: "fire3/expand1x1" + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire3/relu_expand1x1" + type: "ReLU" + bottom: "fire3/expand1x1" + top: "fire3/expand1x1" +} +layer { + name: "fire3/expand3x3" + type: "Convolution" + bottom: "fire3/squeeze1x1" + top: "fire3/expand3x3" + convolution_param { + num_output: 64 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire3/relu_expand3x3" + type: "ReLU" + bottom: "fire3/expand3x3" + top: "fire3/expand3x3" +} +layer { + name: "fire3/concat" + type: "Concat" + bottom: "fire3/expand1x1" + bottom: "fire3/expand3x3" + top: "fire3/concat" +} +layer { + name: "pool3" + type: "Pooling" + bottom: "fire3/concat" + top: "pool3" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fire4/squeeze1x1" + type: "Convolution" + bottom: "pool3" + top: "fire4/squeeze1x1" + convolution_param { + num_output: 32 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire4/relu_squeeze1x1" + type: "ReLU" + bottom: "fire4/squeeze1x1" + top: "fire4/squeeze1x1" +} +layer { + name: "fire4/expand1x1" + type: "Convolution" + bottom: "fire4/squeeze1x1" + top: "fire4/expand1x1" + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire4/relu_expand1x1" + type: "ReLU" + bottom: "fire4/expand1x1" + top: "fire4/expand1x1" +} +layer { + name: "fire4/expand3x3" + type: "Convolution" + bottom: "fire4/squeeze1x1" + top: "fire4/expand3x3" + convolution_param { + num_output: 128 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire4/relu_expand3x3" + type: "ReLU" + bottom: "fire4/expand3x3" + top: "fire4/expand3x3" +} +layer { + name: "fire4/concat" + type: "Concat" + bottom: "fire4/expand1x1" + bottom: "fire4/expand3x3" + top: "fire4/concat" +} +layer { + name: "fire5/squeeze1x1" + type: "Convolution" + bottom: "fire4/concat" + top: "fire5/squeeze1x1" + convolution_param { + num_output: 32 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire5/relu_squeeze1x1" + type: "ReLU" + bottom: "fire5/squeeze1x1" + top: "fire5/squeeze1x1" +} +layer { + name: "fire5/expand1x1" + type: "Convolution" + bottom: "fire5/squeeze1x1" + top: "fire5/expand1x1" + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire5/relu_expand1x1" + type: "ReLU" + bottom: "fire5/expand1x1" + top: "fire5/expand1x1" +} +layer { + name: "fire5/expand3x3" + type: "Convolution" + bottom: "fire5/squeeze1x1" + top: "fire5/expand3x3" + convolution_param { + num_output: 128 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire5/relu_expand3x3" + type: "ReLU" + bottom: "fire5/expand3x3" + top: "fire5/expand3x3" +} +layer { + name: "fire5/concat" + type: "Concat" + bottom: "fire5/expand1x1" + bottom: "fire5/expand3x3" + top: "fire5/concat" +} +layer { + name: "pool5" + type: "Pooling" + bottom: "fire5/concat" + top: "pool5" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fire6/squeeze1x1" + type: "Convolution" + bottom: "pool5" + top: "fire6/squeeze1x1" + convolution_param { + num_output: 48 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire6/relu_squeeze1x1" + type: "ReLU" + bottom: "fire6/squeeze1x1" + top: "fire6/squeeze1x1" +} +layer { + name: "fire6/expand1x1" + type: "Convolution" + bottom: "fire6/squeeze1x1" + top: "fire6/expand1x1" + convolution_param { + num_output: 192 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire6/relu_expand1x1" + type: "ReLU" + bottom: "fire6/expand1x1" + top: "fire6/expand1x1" +} +layer { + name: "fire6/expand3x3" + type: "Convolution" + bottom: "fire6/squeeze1x1" + top: "fire6/expand3x3" + convolution_param { + num_output: 192 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire6/relu_expand3x3" + type: "ReLU" + bottom: "fire6/expand3x3" + top: "fire6/expand3x3" +} +layer { + name: "fire6/concat" + type: "Concat" + bottom: "fire6/expand1x1" + bottom: "fire6/expand3x3" + top: "fire6/concat" +} +layer { + name: "fire7/squeeze1x1" + type: "Convolution" + bottom: "fire6/concat" + top: "fire7/squeeze1x1" + convolution_param { + num_output: 48 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire7/relu_squeeze1x1" + type: "ReLU" + bottom: "fire7/squeeze1x1" + top: "fire7/squeeze1x1" +} +layer { + name: "fire7/expand1x1" + type: "Convolution" + bottom: "fire7/squeeze1x1" + top: "fire7/expand1x1" + convolution_param { + num_output: 192 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire7/relu_expand1x1" + type: "ReLU" + bottom: "fire7/expand1x1" + top: "fire7/expand1x1" +} +layer { + name: "fire7/expand3x3" + type: "Convolution" + bottom: "fire7/squeeze1x1" + top: "fire7/expand3x3" + convolution_param { + num_output: 192 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire7/relu_expand3x3" + type: "ReLU" + bottom: "fire7/expand3x3" + top: "fire7/expand3x3" +} +layer { + name: "fire7/concat" + type: "Concat" + bottom: "fire7/expand1x1" + bottom: "fire7/expand3x3" + top: "fire7/concat" +} +layer { + name: "fire8/squeeze1x1" + type: "Convolution" + bottom: "fire7/concat" + top: "fire8/squeeze1x1" + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire8/relu_squeeze1x1" + type: "ReLU" + bottom: "fire8/squeeze1x1" + top: "fire8/squeeze1x1" +} +layer { + name: "fire8/expand1x1" + type: "Convolution" + bottom: "fire8/squeeze1x1" + top: "fire8/expand1x1" + convolution_param { + num_output: 256 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire8/relu_expand1x1" + type: "ReLU" + bottom: "fire8/expand1x1" + top: "fire8/expand1x1" +} +layer { + name: "fire8/expand3x3" + type: "Convolution" + bottom: "fire8/squeeze1x1" + top: "fire8/expand3x3" + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire8/relu_expand3x3" + type: "ReLU" + bottom: "fire8/expand3x3" + top: "fire8/expand3x3" +} +layer { + name: "fire8/concat" + type: "Concat" + bottom: "fire8/expand1x1" + bottom: "fire8/expand3x3" + top: "fire8/concat" +} +layer { + name: "fire9/squeeze1x1" + type: "Convolution" + bottom: "fire8/concat" + top: "fire9/squeeze1x1" + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire9/relu_squeeze1x1" + type: "ReLU" + bottom: "fire9/squeeze1x1" + top: "fire9/squeeze1x1" +} +layer { + name: "fire9/expand1x1" + type: "Convolution" + bottom: "fire9/squeeze1x1" + top: "fire9/expand1x1" + convolution_param { + num_output: 256 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire9/relu_expand1x1" + type: "ReLU" + bottom: "fire9/expand1x1" + top: "fire9/expand1x1" +} +layer { + name: "fire9/expand3x3" + type: "Convolution" + bottom: "fire9/squeeze1x1" + top: "fire9/expand3x3" + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire9/relu_expand3x3" + type: "ReLU" + bottom: "fire9/expand3x3" + top: "fire9/expand3x3" +} +layer { + name: "fire9/concat" + type: "Concat" + bottom: "fire9/expand1x1" + bottom: "fire9/expand3x3" + top: "fire9/concat" +} +layer { + name: "drop9" + type: "Dropout" + bottom: "fire9/concat" + top: "fire9/concat" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "conv10" + type: "Convolution" + bottom: "fire9/concat" + top: "conv10" + convolution_param { + num_output: 1000 + kernel_size: 1 + weight_filler { + type: "gaussian" + mean: 0.0 + std: 0.01 + } + } +} +layer { + name: "relu_conv10" + type: "ReLU" + bottom: "conv10" + top: "conv10" +} +layer { + name: "pool10" + type: "Pooling" + bottom: "conv10" + top: "pool10" + pooling_param { + pool: AVE + global_pooling: true + } +} +layer { + name: "loss" + type: "SoftmaxWithLoss" + bottom: "pool10" + bottom: "label" + top: "loss" + #include { + # phase: TRAIN + #} +} +layer { + name: "accuracy" + type: "Accuracy" + bottom: "pool10" + bottom: "label" + top: "accuracy" + #include { + # phase: TEST + #} +} +layer { + name: "accuracy_top5" + type: "Accuracy" + bottom: "pool10" + bottom: "label" + top: "accuracy_top5" + #include { + # phase: TEST + #} + accuracy_param { + top_k: 5 + } +} From 2cf8c624ebfc374b47869920bfbfdc2a646b1044 Mon Sep 17 00:00:00 2001 From: Dzmitry Kamarouski Date: Sun, 11 Mar 2018 01:25:13 +0300 Subject: [PATCH 2/6] Add files via upload --- .../ssd/SqueezeNet-SSD/README.md | 7 + .../ssd/SqueezeNet-SSD/solver_test.prototxt | 27 + .../ssd/SqueezeNet-SSD/solver_train.prototxt | 22 + .../squeezenet_ssd_voc_deploy.prototxt | 2367 ++++++++++++++++ .../squeezenet_ssd_voc_test.prototxt | 2407 ++++++++++++++++ .../squeezenet_ssd_voc_train.prototxt | 2478 +++++++++++++++++ 6 files changed, 7308 insertions(+) create mode 100644 models/intel_optimized_models/ssd/SqueezeNet-SSD/README.md create mode 100644 models/intel_optimized_models/ssd/SqueezeNet-SSD/solver_test.prototxt create mode 100644 models/intel_optimized_models/ssd/SqueezeNet-SSD/solver_train.prototxt create mode 100644 models/intel_optimized_models/ssd/SqueezeNet-SSD/squeezenet_ssd_voc_deploy.prototxt create mode 100644 models/intel_optimized_models/ssd/SqueezeNet-SSD/squeezenet_ssd_voc_test.prototxt create mode 100644 models/intel_optimized_models/ssd/SqueezeNet-SSD/squeezenet_ssd_voc_train.prototxt diff --git a/models/intel_optimized_models/ssd/SqueezeNet-SSD/README.md b/models/intel_optimized_models/ssd/SqueezeNet-SSD/README.md new file mode 100644 index 000000000..9480fc8a1 --- /dev/null +++ b/models/intel_optimized_models/ssd/SqueezeNet-SSD/README.md @@ -0,0 +1,7 @@ +# SqueezeNet-SSD +SSD detection network of SqueezeNet, with pretrained weights on VOC0712 and mAP=0.643. + +Network|mAP|FPS(GPU)|Download +:---:|:---:|:---:|:---: +SqueezeNet-SSD|64.3|100|[22M](https://drive.google.com/open?id=0B3gersZ2cHIxdGpyZlZnbEQ5Snc) + diff --git a/models/intel_optimized_models/ssd/SqueezeNet-SSD/solver_test.prototxt b/models/intel_optimized_models/ssd/SqueezeNet-SSD/solver_test.prototxt new file mode 100644 index 000000000..887022a32 --- /dev/null +++ b/models/intel_optimized_models/ssd/SqueezeNet-SSD/solver_test.prototxt @@ -0,0 +1,27 @@ +train_net: "squeezenet_ssd_voc_train.prototxt" +test_net: "squeezenet_ssd_voc_test.prototxt" +test_iter: 619 +test_interval: 10000 +base_lr: 0.001 +display: 10 +max_iter: 0 +lr_policy: "multistep" +gamma: 0.1 +momentum: 0.9 +weight_decay: 0.0005 +snapshot: 0 +snapshot_prefix: "snapshot/squeezenet" +solver_mode: GPU +device_id: 0 +debug_info: false +snapshot_after_train: false +test_initialization: true +average_loss: 10 +stepvalue: 80000 +stepvalue: 100000 +stepvalue: 120000 +iter_size: 1 +type: "SGD" +eval_type: "detection" +ap_version: "11point" + diff --git a/models/intel_optimized_models/ssd/SqueezeNet-SSD/solver_train.prototxt b/models/intel_optimized_models/ssd/SqueezeNet-SSD/solver_train.prototxt new file mode 100644 index 000000000..7ebfc70df --- /dev/null +++ b/models/intel_optimized_models/ssd/SqueezeNet-SSD/solver_train.prototxt @@ -0,0 +1,22 @@ +net: "squeezenet_ssd_voc_train.prototxt" +base_lr: 0.0001 +display: 10 +max_iter: 220000 +lr_policy: "multistep" +gamma: 0.5 +weight_decay: 0.0 +snapshot: 1000 +snapshot_prefix: "snapshot/squeezenet" +solver_mode: GPU +debug_info: false +snapshot_after_train: true +test_initialization: false +average_loss: 10 +stepvalue: 20000 +stepvalue: 50000 +stepvalue: 100000 +iter_size: 1 +type: "RMSProp" +eval_type: "detection" +ap_version: "11point" + diff --git a/models/intel_optimized_models/ssd/SqueezeNet-SSD/squeezenet_ssd_voc_deploy.prototxt b/models/intel_optimized_models/ssd/SqueezeNet-SSD/squeezenet_ssd_voc_deploy.prototxt new file mode 100644 index 000000000..ff2f06ee1 --- /dev/null +++ b/models/intel_optimized_models/ssd/SqueezeNet-SSD/squeezenet_ssd_voc_deploy.prototxt @@ -0,0 +1,2367 @@ +name: "squeezenet-ssd" +input: "data" +input_shape { + dim: 1 + dim: 3 + dim: 300 + dim: 300 +} +layer { + name: "conv1" + type: "Convolution" + bottom: "data" + top: "conv1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + kernel_size: 3 + stride: 2 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "relu_conv1" + type: "ReLU" + bottom: "conv1" + top: "conv1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fire2/squeeze1x1" + type: "Convolution" + bottom: "pool1" + top: "fire2/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 16 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire2/relu_squeeze1x1" + type: "ReLU" + bottom: "fire2/squeeze1x1" + top: "fire2/squeeze1x1" +} +layer { + name: "fire2/expand1x1" + type: "Convolution" + bottom: "fire2/squeeze1x1" + top: "fire2/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire2/relu_expand1x1" + type: "ReLU" + bottom: "fire2/expand1x1" + top: "fire2/expand1x1" +} +layer { + name: "fire2/expand3x3" + type: "Convolution" + bottom: "fire2/squeeze1x1" + top: "fire2/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire2/relu_expand3x3" + type: "ReLU" + bottom: "fire2/expand3x3" + top: "fire2/expand3x3" +} +layer { + name: "fire2/concat" + type: "Concat" + bottom: "fire2/expand1x1" + bottom: "fire2/expand3x3" + top: "fire2/concat" +} +layer { + name: "fire3/squeeze1x1" + type: "Convolution" + bottom: "fire2/concat" + top: "fire3/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 16 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire3/relu_squeeze1x1" + type: "ReLU" + bottom: "fire3/squeeze1x1" + top: "fire3/squeeze1x1" +} +layer { + name: "fire3/expand1x1" + type: "Convolution" + bottom: "fire3/squeeze1x1" + top: "fire3/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire3/relu_expand1x1" + type: "ReLU" + bottom: "fire3/expand1x1" + top: "fire3/expand1x1" +} +layer { + name: "fire3/expand3x3" + type: "Convolution" + bottom: "fire3/squeeze1x1" + top: "fire3/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire3/relu_expand3x3" + type: "ReLU" + bottom: "fire3/expand3x3" + top: "fire3/expand3x3" +} +layer { + name: "fire3/concat" + type: "Concat" + bottom: "fire3/expand1x1" + bottom: "fire3/expand3x3" + top: "fire3/concat" +} +layer { + name: "pool3" + type: "Pooling" + bottom: "fire3/concat" + top: "pool3" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fire4/squeeze1x1" + type: "Convolution" + bottom: "pool3" + top: "fire4/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 32 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire4/relu_squeeze1x1" + type: "ReLU" + bottom: "fire4/squeeze1x1" + top: "fire4/squeeze1x1" +} +layer { + name: "fire4/expand1x1" + type: "Convolution" + bottom: "fire4/squeeze1x1" + top: "fire4/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire4/relu_expand1x1" + type: "ReLU" + bottom: "fire4/expand1x1" + top: "fire4/expand1x1" +} +layer { + name: "fire4/expand3x3" + type: "Convolution" + bottom: "fire4/squeeze1x1" + top: "fire4/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire4/relu_expand3x3" + type: "ReLU" + bottom: "fire4/expand3x3" + top: "fire4/expand3x3" +} +layer { + name: "fire4/concat" + type: "Concat" + bottom: "fire4/expand1x1" + bottom: "fire4/expand3x3" + top: "fire4/concat" +} +layer { + name: "fire5/squeeze1x1" + type: "Convolution" + bottom: "fire4/concat" + top: "fire5/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 32 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire5/relu_squeeze1x1" + type: "ReLU" + bottom: "fire5/squeeze1x1" + top: "fire5/squeeze1x1" +} +layer { + name: "fire5/expand1x1" + type: "Convolution" + bottom: "fire5/squeeze1x1" + top: "fire5/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire5/relu_expand1x1" + type: "ReLU" + bottom: "fire5/expand1x1" + top: "fire5/expand1x1" +} +layer { + name: "fire5/expand3x3" + type: "Convolution" + bottom: "fire5/squeeze1x1" + top: "fire5/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire5/relu_expand3x3" + type: "ReLU" + bottom: "fire5/expand3x3" + top: "fire5/expand3x3" +} +layer { + name: "fire5/concat" + type: "Concat" + bottom: "fire5/expand1x1" + bottom: "fire5/expand3x3" + top: "fire5/concat" +} +layer { + name: "pool5" + type: "Pooling" + bottom: "fire5/concat" + top: "pool5" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fire6/squeeze1x1" + type: "Convolution" + bottom: "pool5" + top: "fire6/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire6/relu_squeeze1x1" + type: "ReLU" + bottom: "fire6/squeeze1x1" + top: "fire6/squeeze1x1" +} +layer { + name: "fire6/expand1x1" + type: "Convolution" + bottom: "fire6/squeeze1x1" + top: "fire6/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 192 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire6/relu_expand1x1" + type: "ReLU" + bottom: "fire6/expand1x1" + top: "fire6/expand1x1" +} +layer { + name: "fire6/expand3x3" + type: "Convolution" + bottom: "fire6/squeeze1x1" + top: "fire6/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 192 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire6/relu_expand3x3" + type: "ReLU" + bottom: "fire6/expand3x3" + top: "fire6/expand3x3" +} +layer { + name: "fire6/concat" + type: "Concat" + bottom: "fire6/expand1x1" + bottom: "fire6/expand3x3" + top: "fire6/concat" +} +layer { + name: "fire7/squeeze1x1" + type: "Convolution" + bottom: "fire6/concat" + top: "fire7/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire7/relu_squeeze1x1" + type: "ReLU" + bottom: "fire7/squeeze1x1" + top: "fire7/squeeze1x1" +} +layer { + name: "fire7/expand1x1" + type: "Convolution" + bottom: "fire7/squeeze1x1" + top: "fire7/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 192 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire7/relu_expand1x1" + type: "ReLU" + bottom: "fire7/expand1x1" + top: "fire7/expand1x1" +} +layer { + name: "fire7/expand3x3" + type: "Convolution" + bottom: "fire7/squeeze1x1" + top: "fire7/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 192 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire7/relu_expand3x3" + type: "ReLU" + bottom: "fire7/expand3x3" + top: "fire7/expand3x3" +} +layer { + name: "fire7/concat" + type: "Concat" + bottom: "fire7/expand1x1" + bottom: "fire7/expand3x3" + top: "fire7/concat" +} +layer { + name: "fire8/squeeze1x1" + type: "Convolution" + bottom: "fire7/concat" + top: "fire8/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire8/relu_squeeze1x1" + type: "ReLU" + bottom: "fire8/squeeze1x1" + top: "fire8/squeeze1x1" +} +layer { + name: "fire8/expand1x1" + type: "Convolution" + bottom: "fire8/squeeze1x1" + top: "fire8/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire8/relu_expand1x1" + type: "ReLU" + bottom: "fire8/expand1x1" + top: "fire8/expand1x1" +} +layer { + name: "fire8/expand3x3" + type: "Convolution" + bottom: "fire8/squeeze1x1" + top: "fire8/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire8/relu_expand3x3" + type: "ReLU" + bottom: "fire8/expand3x3" + top: "fire8/expand3x3" +} +layer { + name: "fire8/concat" + type: "Concat" + bottom: "fire8/expand1x1" + bottom: "fire8/expand3x3" + top: "fire8/concat" +} +layer { + name: "fire9/squeeze1x1" + type: "Convolution" + bottom: "fire8/concat" + top: "fire9/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire9/relu_squeeze1x1" + type: "ReLU" + bottom: "fire9/squeeze1x1" + top: "fire9/squeeze1x1" +} +layer { + name: "fire9/expand1x1" + type: "Convolution" + bottom: "fire9/squeeze1x1" + top: "fire9/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire9/expand1x1/bn" + type: "BatchNorm" + bottom: "fire9/expand1x1" + top: "fire9/expand1x1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire9/expand1x1/scale" + type: "Scale" + bottom: "fire9/expand1x1" + top: "fire9/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire9/relu_expand1x1" + type: "ReLU" + bottom: "fire9/expand1x1" + top: "fire9/expand1x1" +} +layer { + name: "fire9/expand3x3" + type: "Convolution" + bottom: "fire9/squeeze1x1" + top: "fire9/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire9/expand3x3/bn" + type: "BatchNorm" + bottom: "fire9/expand3x3" + top: "fire9/expand3x3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire9/expand3x3/scale" + type: "Scale" + bottom: "fire9/expand3x3" + top: "fire9/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire9/relu_expand3x3" + type: "ReLU" + bottom: "fire9/expand3x3" + top: "fire9/expand3x3" +} +layer { + name: "fire9/concat" + type: "Concat" + bottom: "fire9/expand1x1" + bottom: "fire9/expand3x3" + top: "fire9/concat" +} +layer { + name: "pool9" + type: "Pooling" + bottom: "fire9/concat" + top: "pool9" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +#================ssd append layer fire10, out 9 * 9 +layer { + name: "fire10/squeeze1x1" + type: "Convolution" + bottom: "pool9" + top: "fire10/squeeze1x1" + convolution_param { + num_output: 96 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire10/squeeze1x1/bn" + type: "BatchNorm" + top: "fire10/squeeze1x1" + bottom: "fire10/squeeze1x1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire10/squeeze1x1/scale" + type: "Scale" + top: "fire10/squeeze1x1" + bottom: "fire10/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire10/relu_squeeze1x1" + type: "ReLU" + bottom: "fire10/squeeze1x1" + top: "fire10/squeeze1x1" +} +layer { + name: "fire10/expand1x1" + type: "Convolution" + bottom: "fire10/squeeze1x1" + top: "fire10/expand1x1" + convolution_param { + num_output: 384 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire10/expand1x1/bn" + type: "BatchNorm" + bottom: "fire10/expand1x1" + top: "fire10/expand1x1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire10/expand1x1/scale" + type: "Scale" + bottom: "fire10/expand1x1" + top: "fire10/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire10/relu_expand1x1" + type: "ReLU" + bottom: "fire10/expand1x1" + top: "fire10/expand1x1" +} +layer { + name: "fire10/expand3x3" + type: "Convolution" + bottom: "fire10/squeeze1x1" + top: "fire10/expand3x3" + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire10/expand3x3/bn" + type: "BatchNorm" + bottom: "fire10/expand3x3" + top: "fire10/expand3x3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire10/expand3x3/scale" + type: "Scale" + bottom: "fire10/expand3x3" + top: "fire10/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire10/relu_expand3x3" + type: "ReLU" + bottom: "fire10/expand3x3" + top: "fire10/expand3x3" +} +layer { + name: "fire10/concat" + type: "Concat" + bottom: "fire10/expand1x1" + bottom: "fire10/expand3x3" + top: "fire10/concat" +} +#================ssd append layer fire11, out 4 * 4 +layer { + name: "pool10" + type: "Pooling" + bottom: "fire10/concat" + top: "pool10" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fire11/squeeze1x1" + type: "Convolution" + bottom: "pool10" + top: "fire11/squeeze1x1" + convolution_param { + num_output: 96 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire11/squeeze1x1/bn" + type: "BatchNorm" + top: "fire11/squeeze1x1" + bottom: "fire11/squeeze1x1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire11/squeeze1x1/scale" + type: "Scale" + top: "fire11/squeeze1x1" + bottom: "fire11/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire11/relu_squeeze1x1" + type: "ReLU" + bottom: "fire11/squeeze1x1" + top: "fire11/squeeze1x1" +} +layer { + name: "fire11/expand1x1" + type: "Convolution" + bottom: "fire11/squeeze1x1" + top: "fire11/expand1x1" + convolution_param { + num_output: 384 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire11/expand1x1/bn" + type: "BatchNorm" + bottom: "fire11/expand1x1" + top: "fire11/expand1x1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire11/expand1x1/scale" + type: "Scale" + bottom: "fire11/expand1x1" + top: "fire11/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire11/relu_expand1x1" + type: "ReLU" + bottom: "fire11/expand1x1" + top: "fire11/expand1x1" +} +layer { + name: "fire11/expand3x3" + type: "Convolution" + bottom: "fire11/squeeze1x1" + top: "fire11/expand3x3" + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire11/expand3x3/bn" + type: "BatchNorm" + bottom: "fire11/expand3x3" + top: "fire11/expand3x3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire11/expand3x3/scale" + type: "Scale" + bottom: "fire11/expand3x3" + top: "fire11/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire11/relu_expand3x3" + type: "ReLU" + bottom: "fire11/expand3x3" + top: "fire11/expand3x3" +} +layer { + name: "fire11/concat" + type: "Concat" + bottom: "fire11/expand1x1" + bottom: "fire11/expand3x3" + top: "fire11/concat" +} +#================ssd append layer conv12, out 2 * 2 +layer { + name: "conv12_1" + type: "Convolution" + bottom: "fire11/concat" + top: "conv12_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + kernel_size: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "conv12_1/bn" + type: "BatchNorm" + bottom: "conv12_1" + top: "conv12_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "conv12_1/scale" + type: "Scale" + bottom: "conv12_1" + top: "conv12_1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "conv12_1/relu" + type: "ReLU" + bottom: "conv12_1" + top: "conv12_1" +} +layer { + name: "conv12_2" + type: "Convolution" + bottom: "conv12_1" + top: "conv12_2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 256 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "msra" + } + } +} +layer { + name: "conv12_2/bn" + type: "BatchNorm" + bottom: "conv12_2" + top: "conv12_2" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "conv12_2/scale" + type: "Scale" + bottom: "conv12_2" + top: "conv12_2" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "conv12_2/relu" + type: "ReLU" + bottom: "conv12_2" + top: "conv12_2" +} +#================ssd append layer conv13, out 1 * 1 +layer { + name: "conv13_1" + type: "Convolution" + bottom: "conv12_2" + top: "conv13_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + kernel_size: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "conv13_1/bn" + type: "BatchNorm" + bottom: "conv13_1" + top: "conv13_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "conv13_1/scale" + type: "Scale" + bottom: "conv13_1" + top: "conv13_1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "conv13_1/relu" + type: "ReLU" + bottom: "conv13_1" + top: "conv13_1" +} +layer { + name: "conv13_2" + type: "Convolution" + bottom: "conv13_1" + top: "conv13_2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "msra" + } + } +} +layer { + name: "conv13_2/bn" + type: "BatchNorm" + bottom: "conv13_2" + top: "conv13_2" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "conv13_2/scale" + type: "Scale" + bottom: "conv13_2" + top: "conv13_2" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "conv13_2/relu" + type: "ReLU" + bottom: "conv13_2" + top: "conv13_2" +} +#================ssd mbox layer +layer { + name: "fire5/bn" + type: "BatchNorm" + bottom: "fire5/concat" + top: "fire5/normal" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire5/scale" + type: "Scale" + bottom: "fire5/normal" + top: "fire5/normal" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire5_mbox_loc" + type: "Convolution" + bottom: "fire5/normal" + top: "fire5_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 16 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire5_mbox_loc_perm" + type: "Permute" + bottom: "fire5_mbox_loc" + top: "fire5_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire5_mbox_loc_flat" + type: "Flatten" + bottom: "fire5_mbox_loc_perm" + top: "fire5_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire5_mbox_conf" + type: "Convolution" + bottom: "fire5/normal" + top: "fire5_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 84 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire5_mbox_conf_perm" + type: "Permute" + bottom: "fire5_mbox_conf" + top: "fire5_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire5_mbox_conf_flat" + type: "Flatten" + bottom: "fire5_mbox_conf_perm" + top: "fire5_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire5_mbox_priorbox" + type: "PriorBox" + bottom: "fire5/normal" + bottom: "data" + top: "fire5_mbox_priorbox" + prior_box_param { + min_size: 21.0 + max_size: 45.0 + aspect_ratio: 2.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 8 + } +} +#================mbox fire9 +layer { + name: "fire9_mbox_loc" + type: "Convolution" + bottom: "fire9/concat" + top: "fire9_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire9_mbox_loc_perm" + type: "Permute" + bottom: "fire9_mbox_loc" + top: "fire9_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire9_mbox_loc_flat" + type: "Flatten" + bottom: "fire9_mbox_loc_perm" + top: "fire9_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire9_mbox_conf" + type: "Convolution" + bottom: "fire9/concat" + top: "fire9_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 126 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire9_mbox_conf_perm" + type: "Permute" + bottom: "fire9_mbox_conf" + top: "fire9_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire9_mbox_conf_flat" + type: "Flatten" + bottom: "fire9_mbox_conf_perm" + top: "fire9_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire9_mbox_priorbox" + type: "PriorBox" + bottom: "fire9/concat" + bottom: "data" + top: "fire9_mbox_priorbox" + prior_box_param { + min_size: 45.0 + max_size: 99.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 16 + } +} +#=====fire10 mbox +layer { + name: "fire10_mbox_loc" + type: "Convolution" + bottom: "fire10/concat" + top: "fire10_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire10_mbox_loc_perm" + type: "Permute" + bottom: "fire10_mbox_loc" + top: "fire10_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire10_mbox_loc_flat" + type: "Flatten" + bottom: "fire10_mbox_loc_perm" + top: "fire10_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire10_mbox_conf" + type: "Convolution" + bottom: "fire10/concat" + top: "fire10_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 126 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire10_mbox_conf_perm" + type: "Permute" + bottom: "fire10_mbox_conf" + top: "fire10_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire10_mbox_conf_flat" + type: "Flatten" + bottom: "fire10_mbox_conf_perm" + top: "fire10_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire10_mbox_priorbox" + type: "PriorBox" + bottom: "fire10/concat" + bottom: "data" + top: "fire10_mbox_priorbox" + prior_box_param { + min_size: 99.0 + max_size: 153.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 32 + } +} + +#=====conv11 mbox +layer { + name: "fire11_mbox_loc" + type: "Convolution" + bottom: "fire11/concat" + top: "fire11_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire11_mbox_loc_perm" + type: "Permute" + bottom: "fire11_mbox_loc" + top: "fire11_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire11_mbox_loc_flat" + type: "Flatten" + bottom: "fire11_mbox_loc_perm" + top: "fire11_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire11_mbox_conf" + type: "Convolution" + bottom: "fire11/concat" + top: "fire11_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 126 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire11_mbox_conf_perm" + type: "Permute" + bottom: "fire11_mbox_conf" + top: "fire11_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire11_mbox_conf_flat" + type: "Flatten" + bottom: "fire11_mbox_conf_perm" + top: "fire11_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire11_mbox_priorbox" + type: "PriorBox" + bottom: "fire11/concat" + bottom: "data" + top: "fire11_mbox_priorbox" + prior_box_param { + min_size: 153.0 + max_size: 207.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 64 + } +} +#=====conv12 mbox +layer { + name: "conv12_2_mbox_loc" + type: "Convolution" + bottom: "conv12_2" + top: "conv12_2_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv12_2_mbox_loc_perm" + type: "Permute" + bottom: "conv12_2_mbox_loc" + top: "conv12_2_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv12_2_mbox_loc_flat" + type: "Flatten" + bottom: "conv12_2_mbox_loc_perm" + top: "conv12_2_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv12_2_mbox_conf" + type: "Convolution" + bottom: "conv12_2" + top: "conv12_2_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 126 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv12_2_mbox_conf_perm" + type: "Permute" + bottom: "conv12_2_mbox_conf" + top: "conv12_2_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv12_2_mbox_conf_flat" + type: "Flatten" + bottom: "conv12_2_mbox_conf_perm" + top: "conv12_2_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv12_2_mbox_priorbox" + type: "PriorBox" + bottom: "conv12_2" + bottom: "data" + top: "conv12_2_mbox_priorbox" + prior_box_param { + min_size: 207.0 + max_size: 261.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 100 + } +} +#=====conv13 mbox +layer { + name: "conv13_2_mbox_loc" + type: "Convolution" + bottom: "conv13_2" + top: "conv13_2_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 16 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv13_2_mbox_loc_perm" + type: "Permute" + bottom: "conv13_2_mbox_loc" + top: "conv13_2_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv13_2_mbox_loc_flat" + type: "Flatten" + bottom: "conv13_2_mbox_loc_perm" + top: "conv13_2_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv13_2_mbox_conf" + type: "Convolution" + bottom: "conv13_2" + top: "conv13_2_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 84 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv13_2_mbox_conf_perm" + type: "Permute" + bottom: "conv13_2_mbox_conf" + top: "conv13_2_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv13_2_mbox_conf_flat" + type: "Flatten" + bottom: "conv13_2_mbox_conf_perm" + top: "conv13_2_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv13_2_mbox_priorbox" + type: "PriorBox" + bottom: "conv13_2" + bottom: "data" + top: "conv13_2_mbox_priorbox" + prior_box_param { + min_size: 261.0 + max_size: 315.0 + aspect_ratio: 2.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 300 + } +} +layer { + name: "mbox_loc" + type: "Concat" + bottom: "fire5_mbox_loc_flat" + bottom: "fire9_mbox_loc_flat" + bottom: "fire10_mbox_loc_flat" + bottom: "fire11_mbox_loc_flat" + bottom: "conv12_2_mbox_loc_flat" + bottom: "conv13_2_mbox_loc_flat" + top: "mbox_loc" + concat_param { + axis: 1 + } +} +layer { + name: "mbox_conf" + type: "Concat" + bottom: "fire5_mbox_conf_flat" + bottom: "fire9_mbox_conf_flat" + bottom: "fire10_mbox_conf_flat" + bottom: "fire11_mbox_conf_flat" + bottom: "conv12_2_mbox_conf_flat" + bottom: "conv13_2_mbox_conf_flat" + top: "mbox_conf" + concat_param { + axis: 1 + } +} +layer { + name: "mbox_priorbox" + type: "Concat" + bottom: "fire5_mbox_priorbox" + bottom: "fire9_mbox_priorbox" + bottom: "fire10_mbox_priorbox" + bottom: "fire11_mbox_priorbox" + bottom: "conv12_2_mbox_priorbox" + bottom: "conv13_2_mbox_priorbox" + top: "mbox_priorbox" + concat_param { + axis: 2 + } +} +layer { + name: "mbox_conf_reshape" + type: "Reshape" + bottom: "mbox_conf" + top: "mbox_conf_reshape" + reshape_param { + shape { + dim: 0 + dim: -1 + dim: 21 + } + } +} +layer { + name: "mbox_conf_softmax" + type: "Softmax" + bottom: "mbox_conf_reshape" + top: "mbox_conf_softmax" + softmax_param { + axis: 2 + } +} +layer { + name: "mbox_conf_flatten" + type: "Flatten" + bottom: "mbox_conf_softmax" + top: "mbox_conf_flatten" + flatten_param { + axis: 1 + } +} +layer { + name: "detection_out" + type: "DetectionOutput" + bottom: "mbox_loc" + bottom: "mbox_conf_flatten" + bottom: "mbox_priorbox" + top: "detection_out" + include { + phase: TEST + } + detection_output_param { + num_classes: 21 + share_location: true + background_label_id: 0 + nms_param { + nms_threshold: 0.45 + top_k: 100 + } + code_type: CENTER_SIZE + keep_top_k: 100 + confidence_threshold: 0.25 + } +} diff --git a/models/intel_optimized_models/ssd/SqueezeNet-SSD/squeezenet_ssd_voc_test.prototxt b/models/intel_optimized_models/ssd/SqueezeNet-SSD/squeezenet_ssd_voc_test.prototxt new file mode 100644 index 000000000..c193ea73b --- /dev/null +++ b/models/intel_optimized_models/ssd/SqueezeNet-SSD/squeezenet_ssd_voc_test.prototxt @@ -0,0 +1,2407 @@ +name: "squeezenet-ssd" +layer { + name: "data" + type: "AnnotatedData" + top: "data" + top: "label" + include { + phase: TEST + } + transform_param { + mean_value: 104 + mean_value: 117 + mean_value: 123 + resize_param { + prob: 1.0 + resize_mode: WARP + height: 300 + width: 300 + interp_mode: LINEAR + } + } + data_param { + source: "test_lmdb/" + batch_size: 8 + backend: LMDB + } + annotated_data_param { + batch_sampler { + } + label_map_file: "labelmap.prototxt" + } +} +layer { + name: "conv1" + type: "Convolution" + bottom: "data" + top: "conv1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + kernel_size: 3 + stride: 2 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "relu_conv1" + type: "ReLU" + bottom: "conv1" + top: "conv1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fire2/squeeze1x1" + type: "Convolution" + bottom: "pool1" + top: "fire2/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 16 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire2/relu_squeeze1x1" + type: "ReLU" + bottom: "fire2/squeeze1x1" + top: "fire2/squeeze1x1" +} +layer { + name: "fire2/expand1x1" + type: "Convolution" + bottom: "fire2/squeeze1x1" + top: "fire2/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire2/relu_expand1x1" + type: "ReLU" + bottom: "fire2/expand1x1" + top: "fire2/expand1x1" +} +layer { + name: "fire2/expand3x3" + type: "Convolution" + bottom: "fire2/squeeze1x1" + top: "fire2/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire2/relu_expand3x3" + type: "ReLU" + bottom: "fire2/expand3x3" + top: "fire2/expand3x3" +} +layer { + name: "fire2/concat" + type: "Concat" + bottom: "fire2/expand1x1" + bottom: "fire2/expand3x3" + top: "fire2/concat" +} +layer { + name: "fire3/squeeze1x1" + type: "Convolution" + bottom: "fire2/concat" + top: "fire3/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 16 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire3/relu_squeeze1x1" + type: "ReLU" + bottom: "fire3/squeeze1x1" + top: "fire3/squeeze1x1" +} +layer { + name: "fire3/expand1x1" + type: "Convolution" + bottom: "fire3/squeeze1x1" + top: "fire3/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire3/relu_expand1x1" + type: "ReLU" + bottom: "fire3/expand1x1" + top: "fire3/expand1x1" +} +layer { + name: "fire3/expand3x3" + type: "Convolution" + bottom: "fire3/squeeze1x1" + top: "fire3/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire3/relu_expand3x3" + type: "ReLU" + bottom: "fire3/expand3x3" + top: "fire3/expand3x3" +} +layer { + name: "fire3/concat" + type: "Concat" + bottom: "fire3/expand1x1" + bottom: "fire3/expand3x3" + top: "fire3/concat" +} +layer { + name: "pool3" + type: "Pooling" + bottom: "fire3/concat" + top: "pool3" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fire4/squeeze1x1" + type: "Convolution" + bottom: "pool3" + top: "fire4/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 32 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire4/relu_squeeze1x1" + type: "ReLU" + bottom: "fire4/squeeze1x1" + top: "fire4/squeeze1x1" +} +layer { + name: "fire4/expand1x1" + type: "Convolution" + bottom: "fire4/squeeze1x1" + top: "fire4/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire4/relu_expand1x1" + type: "ReLU" + bottom: "fire4/expand1x1" + top: "fire4/expand1x1" +} +layer { + name: "fire4/expand3x3" + type: "Convolution" + bottom: "fire4/squeeze1x1" + top: "fire4/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire4/relu_expand3x3" + type: "ReLU" + bottom: "fire4/expand3x3" + top: "fire4/expand3x3" +} +layer { + name: "fire4/concat" + type: "Concat" + bottom: "fire4/expand1x1" + bottom: "fire4/expand3x3" + top: "fire4/concat" +} +layer { + name: "fire5/squeeze1x1" + type: "Convolution" + bottom: "fire4/concat" + top: "fire5/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 32 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire5/relu_squeeze1x1" + type: "ReLU" + bottom: "fire5/squeeze1x1" + top: "fire5/squeeze1x1" +} +layer { + name: "fire5/expand1x1" + type: "Convolution" + bottom: "fire5/squeeze1x1" + top: "fire5/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire5/relu_expand1x1" + type: "ReLU" + bottom: "fire5/expand1x1" + top: "fire5/expand1x1" +} +layer { + name: "fire5/expand3x3" + type: "Convolution" + bottom: "fire5/squeeze1x1" + top: "fire5/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire5/relu_expand3x3" + type: "ReLU" + bottom: "fire5/expand3x3" + top: "fire5/expand3x3" +} +layer { + name: "fire5/concat" + type: "Concat" + bottom: "fire5/expand1x1" + bottom: "fire5/expand3x3" + top: "fire5/concat" +} +layer { + name: "pool5" + type: "Pooling" + bottom: "fire5/concat" + top: "pool5" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fire6/squeeze1x1" + type: "Convolution" + bottom: "pool5" + top: "fire6/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire6/relu_squeeze1x1" + type: "ReLU" + bottom: "fire6/squeeze1x1" + top: "fire6/squeeze1x1" +} +layer { + name: "fire6/expand1x1" + type: "Convolution" + bottom: "fire6/squeeze1x1" + top: "fire6/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 192 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire6/relu_expand1x1" + type: "ReLU" + bottom: "fire6/expand1x1" + top: "fire6/expand1x1" +} +layer { + name: "fire6/expand3x3" + type: "Convolution" + bottom: "fire6/squeeze1x1" + top: "fire6/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 192 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire6/relu_expand3x3" + type: "ReLU" + bottom: "fire6/expand3x3" + top: "fire6/expand3x3" +} +layer { + name: "fire6/concat" + type: "Concat" + bottom: "fire6/expand1x1" + bottom: "fire6/expand3x3" + top: "fire6/concat" +} +layer { + name: "fire7/squeeze1x1" + type: "Convolution" + bottom: "fire6/concat" + top: "fire7/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire7/relu_squeeze1x1" + type: "ReLU" + bottom: "fire7/squeeze1x1" + top: "fire7/squeeze1x1" +} +layer { + name: "fire7/expand1x1" + type: "Convolution" + bottom: "fire7/squeeze1x1" + top: "fire7/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 192 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire7/relu_expand1x1" + type: "ReLU" + bottom: "fire7/expand1x1" + top: "fire7/expand1x1" +} +layer { + name: "fire7/expand3x3" + type: "Convolution" + bottom: "fire7/squeeze1x1" + top: "fire7/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 192 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire7/relu_expand3x3" + type: "ReLU" + bottom: "fire7/expand3x3" + top: "fire7/expand3x3" +} +layer { + name: "fire7/concat" + type: "Concat" + bottom: "fire7/expand1x1" + bottom: "fire7/expand3x3" + top: "fire7/concat" +} +layer { + name: "fire8/squeeze1x1" + type: "Convolution" + bottom: "fire7/concat" + top: "fire8/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire8/relu_squeeze1x1" + type: "ReLU" + bottom: "fire8/squeeze1x1" + top: "fire8/squeeze1x1" +} +layer { + name: "fire8/expand1x1" + type: "Convolution" + bottom: "fire8/squeeze1x1" + top: "fire8/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire8/relu_expand1x1" + type: "ReLU" + bottom: "fire8/expand1x1" + top: "fire8/expand1x1" +} +layer { + name: "fire8/expand3x3" + type: "Convolution" + bottom: "fire8/squeeze1x1" + top: "fire8/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire8/relu_expand3x3" + type: "ReLU" + bottom: "fire8/expand3x3" + top: "fire8/expand3x3" +} +layer { + name: "fire8/concat" + type: "Concat" + bottom: "fire8/expand1x1" + bottom: "fire8/expand3x3" + top: "fire8/concat" +} +layer { + name: "fire9/squeeze1x1" + type: "Convolution" + bottom: "fire8/concat" + top: "fire9/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire9/relu_squeeze1x1" + type: "ReLU" + bottom: "fire9/squeeze1x1" + top: "fire9/squeeze1x1" +} +layer { + name: "fire9/expand1x1" + type: "Convolution" + bottom: "fire9/squeeze1x1" + top: "fire9/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire9/expand1x1/bn" + type: "BatchNorm" + bottom: "fire9/expand1x1" + top: "fire9/expand1x1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire9/expand1x1/scale" + type: "Scale" + bottom: "fire9/expand1x1" + top: "fire9/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire9/relu_expand1x1" + type: "ReLU" + bottom: "fire9/expand1x1" + top: "fire9/expand1x1" +} +layer { + name: "fire9/expand3x3" + type: "Convolution" + bottom: "fire9/squeeze1x1" + top: "fire9/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire9/expand3x3/bn" + type: "BatchNorm" + bottom: "fire9/expand3x3" + top: "fire9/expand3x3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire9/expand3x3/scale" + type: "Scale" + bottom: "fire9/expand3x3" + top: "fire9/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire9/relu_expand3x3" + type: "ReLU" + bottom: "fire9/expand3x3" + top: "fire9/expand3x3" +} +layer { + name: "fire9/concat" + type: "Concat" + bottom: "fire9/expand1x1" + bottom: "fire9/expand3x3" + top: "fire9/concat" +} +layer { + name: "pool9" + type: "Pooling" + bottom: "fire9/concat" + top: "pool9" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +#================ssd append layer fire10, out 9 * 9 +layer { + name: "fire10/squeeze1x1" + type: "Convolution" + bottom: "pool9" + top: "fire10/squeeze1x1" + convolution_param { + num_output: 96 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire10/squeeze1x1/bn" + type: "BatchNorm" + top: "fire10/squeeze1x1" + bottom: "fire10/squeeze1x1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire10/squeeze1x1/scale" + type: "Scale" + top: "fire10/squeeze1x1" + bottom: "fire10/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire10/relu_squeeze1x1" + type: "ReLU" + bottom: "fire10/squeeze1x1" + top: "fire10/squeeze1x1" +} +layer { + name: "fire10/expand1x1" + type: "Convolution" + bottom: "fire10/squeeze1x1" + top: "fire10/expand1x1" + convolution_param { + num_output: 384 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire10/expand1x1/bn" + type: "BatchNorm" + bottom: "fire10/expand1x1" + top: "fire10/expand1x1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire10/expand1x1/scale" + type: "Scale" + bottom: "fire10/expand1x1" + top: "fire10/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire10/relu_expand1x1" + type: "ReLU" + bottom: "fire10/expand1x1" + top: "fire10/expand1x1" +} +layer { + name: "fire10/expand3x3" + type: "Convolution" + bottom: "fire10/squeeze1x1" + top: "fire10/expand3x3" + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire10/expand3x3/bn" + type: "BatchNorm" + bottom: "fire10/expand3x3" + top: "fire10/expand3x3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire10/expand3x3/scale" + type: "Scale" + bottom: "fire10/expand3x3" + top: "fire10/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire10/relu_expand3x3" + type: "ReLU" + bottom: "fire10/expand3x3" + top: "fire10/expand3x3" +} +layer { + name: "fire10/concat" + type: "Concat" + bottom: "fire10/expand1x1" + bottom: "fire10/expand3x3" + top: "fire10/concat" +} +#================ssd append layer fire11, out 4 * 4 +layer { + name: "pool10" + type: "Pooling" + bottom: "fire10/concat" + top: "pool10" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fire11/squeeze1x1" + type: "Convolution" + bottom: "pool10" + top: "fire11/squeeze1x1" + convolution_param { + num_output: 96 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire11/squeeze1x1/bn" + type: "BatchNorm" + top: "fire11/squeeze1x1" + bottom: "fire11/squeeze1x1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire11/squeeze1x1/scale" + type: "Scale" + top: "fire11/squeeze1x1" + bottom: "fire11/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire11/relu_squeeze1x1" + type: "ReLU" + bottom: "fire11/squeeze1x1" + top: "fire11/squeeze1x1" +} +layer { + name: "fire11/expand1x1" + type: "Convolution" + bottom: "fire11/squeeze1x1" + top: "fire11/expand1x1" + convolution_param { + num_output: 384 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire11/expand1x1/bn" + type: "BatchNorm" + bottom: "fire11/expand1x1" + top: "fire11/expand1x1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire11/expand1x1/scale" + type: "Scale" + bottom: "fire11/expand1x1" + top: "fire11/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire11/relu_expand1x1" + type: "ReLU" + bottom: "fire11/expand1x1" + top: "fire11/expand1x1" +} +layer { + name: "fire11/expand3x3" + type: "Convolution" + bottom: "fire11/squeeze1x1" + top: "fire11/expand3x3" + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire11/expand3x3/bn" + type: "BatchNorm" + bottom: "fire11/expand3x3" + top: "fire11/expand3x3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire11/expand3x3/scale" + type: "Scale" + bottom: "fire11/expand3x3" + top: "fire11/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire11/relu_expand3x3" + type: "ReLU" + bottom: "fire11/expand3x3" + top: "fire11/expand3x3" +} +layer { + name: "fire11/concat" + type: "Concat" + bottom: "fire11/expand1x1" + bottom: "fire11/expand3x3" + top: "fire11/concat" +} +#================ssd append layer conv12, out 2 * 2 +layer { + name: "conv12_1" + type: "Convolution" + bottom: "fire11/concat" + top: "conv12_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + kernel_size: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "conv12_1/bn" + type: "BatchNorm" + bottom: "conv12_1" + top: "conv12_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "conv12_1/scale" + type: "Scale" + bottom: "conv12_1" + top: "conv12_1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "conv12_1/relu" + type: "ReLU" + bottom: "conv12_1" + top: "conv12_1" +} +layer { + name: "conv12_2" + type: "Convolution" + bottom: "conv12_1" + top: "conv12_2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 256 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "msra" + } + } +} +layer { + name: "conv12_2/bn" + type: "BatchNorm" + bottom: "conv12_2" + top: "conv12_2" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "conv12_2/scale" + type: "Scale" + bottom: "conv12_2" + top: "conv12_2" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "conv12_2/relu" + type: "ReLU" + bottom: "conv12_2" + top: "conv12_2" +} +#================ssd append layer conv13, out 1 * 1 +layer { + name: "conv13_1" + type: "Convolution" + bottom: "conv12_2" + top: "conv13_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + kernel_size: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "conv13_1/bn" + type: "BatchNorm" + bottom: "conv13_1" + top: "conv13_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "conv13_1/scale" + type: "Scale" + bottom: "conv13_1" + top: "conv13_1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "conv13_1/relu" + type: "ReLU" + bottom: "conv13_1" + top: "conv13_1" +} +layer { + name: "conv13_2" + type: "Convolution" + bottom: "conv13_1" + top: "conv13_2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "msra" + } + } +} +layer { + name: "conv13_2/bn" + type: "BatchNorm" + bottom: "conv13_2" + top: "conv13_2" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "conv13_2/scale" + type: "Scale" + bottom: "conv13_2" + top: "conv13_2" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "conv13_2/relu" + type: "ReLU" + bottom: "conv13_2" + top: "conv13_2" +} +#================ssd mbox layer +layer { + name: "fire5/bn" + type: "BatchNorm" + bottom: "fire5/concat" + top: "fire5/normal" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire5/scale" + type: "Scale" + bottom: "fire5/normal" + top: "fire5/normal" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire5_mbox_loc" + type: "Convolution" + bottom: "fire5/normal" + top: "fire5_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 16 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire5_mbox_loc_perm" + type: "Permute" + bottom: "fire5_mbox_loc" + top: "fire5_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire5_mbox_loc_flat" + type: "Flatten" + bottom: "fire5_mbox_loc_perm" + top: "fire5_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire5_mbox_conf" + type: "Convolution" + bottom: "fire5/normal" + top: "fire5_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 84 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire5_mbox_conf_perm" + type: "Permute" + bottom: "fire5_mbox_conf" + top: "fire5_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire5_mbox_conf_flat" + type: "Flatten" + bottom: "fire5_mbox_conf_perm" + top: "fire5_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire5_mbox_priorbox" + type: "PriorBox" + bottom: "fire5/normal" + bottom: "data" + top: "fire5_mbox_priorbox" + prior_box_param { + min_size: 21.0 + max_size: 45.0 + aspect_ratio: 2.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 8 + } +} +#================mbox fire9 +layer { + name: "fire9_mbox_loc" + type: "Convolution" + bottom: "fire9/concat" + top: "fire9_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire9_mbox_loc_perm" + type: "Permute" + bottom: "fire9_mbox_loc" + top: "fire9_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire9_mbox_loc_flat" + type: "Flatten" + bottom: "fire9_mbox_loc_perm" + top: "fire9_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire9_mbox_conf" + type: "Convolution" + bottom: "fire9/concat" + top: "fire9_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 126 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire9_mbox_conf_perm" + type: "Permute" + bottom: "fire9_mbox_conf" + top: "fire9_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire9_mbox_conf_flat" + type: "Flatten" + bottom: "fire9_mbox_conf_perm" + top: "fire9_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire9_mbox_priorbox" + type: "PriorBox" + bottom: "fire9/concat" + bottom: "data" + top: "fire9_mbox_priorbox" + prior_box_param { + min_size: 45.0 + max_size: 99.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 16 + } +} +#=====fire10 mbox +layer { + name: "fire10_mbox_loc" + type: "Convolution" + bottom: "fire10/concat" + top: "fire10_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire10_mbox_loc_perm" + type: "Permute" + bottom: "fire10_mbox_loc" + top: "fire10_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire10_mbox_loc_flat" + type: "Flatten" + bottom: "fire10_mbox_loc_perm" + top: "fire10_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire10_mbox_conf" + type: "Convolution" + bottom: "fire10/concat" + top: "fire10_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 126 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire10_mbox_conf_perm" + type: "Permute" + bottom: "fire10_mbox_conf" + top: "fire10_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire10_mbox_conf_flat" + type: "Flatten" + bottom: "fire10_mbox_conf_perm" + top: "fire10_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire10_mbox_priorbox" + type: "PriorBox" + bottom: "fire10/concat" + bottom: "data" + top: "fire10_mbox_priorbox" + prior_box_param { + min_size: 99.0 + max_size: 153.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 32 + } +} + +#=====conv11 mbox +layer { + name: "fire11_mbox_loc" + type: "Convolution" + bottom: "fire11/concat" + top: "fire11_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire11_mbox_loc_perm" + type: "Permute" + bottom: "fire11_mbox_loc" + top: "fire11_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire11_mbox_loc_flat" + type: "Flatten" + bottom: "fire11_mbox_loc_perm" + top: "fire11_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire11_mbox_conf" + type: "Convolution" + bottom: "fire11/concat" + top: "fire11_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 126 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire11_mbox_conf_perm" + type: "Permute" + bottom: "fire11_mbox_conf" + top: "fire11_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire11_mbox_conf_flat" + type: "Flatten" + bottom: "fire11_mbox_conf_perm" + top: "fire11_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire11_mbox_priorbox" + type: "PriorBox" + bottom: "fire11/concat" + bottom: "data" + top: "fire11_mbox_priorbox" + prior_box_param { + min_size: 153.0 + max_size: 207.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 64 + } +} +#=====conv12 mbox +layer { + name: "conv12_2_mbox_loc" + type: "Convolution" + bottom: "conv12_2" + top: "conv12_2_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv12_2_mbox_loc_perm" + type: "Permute" + bottom: "conv12_2_mbox_loc" + top: "conv12_2_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv12_2_mbox_loc_flat" + type: "Flatten" + bottom: "conv12_2_mbox_loc_perm" + top: "conv12_2_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv12_2_mbox_conf" + type: "Convolution" + bottom: "conv12_2" + top: "conv12_2_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 126 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv12_2_mbox_conf_perm" + type: "Permute" + bottom: "conv12_2_mbox_conf" + top: "conv12_2_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv12_2_mbox_conf_flat" + type: "Flatten" + bottom: "conv12_2_mbox_conf_perm" + top: "conv12_2_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv12_2_mbox_priorbox" + type: "PriorBox" + bottom: "conv12_2" + bottom: "data" + top: "conv12_2_mbox_priorbox" + prior_box_param { + min_size: 207.0 + max_size: 261.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 100 + } +} +#=====conv13 mbox +layer { + name: "conv13_2_mbox_loc" + type: "Convolution" + bottom: "conv13_2" + top: "conv13_2_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 16 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv13_2_mbox_loc_perm" + type: "Permute" + bottom: "conv13_2_mbox_loc" + top: "conv13_2_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv13_2_mbox_loc_flat" + type: "Flatten" + bottom: "conv13_2_mbox_loc_perm" + top: "conv13_2_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv13_2_mbox_conf" + type: "Convolution" + bottom: "conv13_2" + top: "conv13_2_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 84 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv13_2_mbox_conf_perm" + type: "Permute" + bottom: "conv13_2_mbox_conf" + top: "conv13_2_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv13_2_mbox_conf_flat" + type: "Flatten" + bottom: "conv13_2_mbox_conf_perm" + top: "conv13_2_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv13_2_mbox_priorbox" + type: "PriorBox" + bottom: "conv13_2" + bottom: "data" + top: "conv13_2_mbox_priorbox" + prior_box_param { + min_size: 261.0 + max_size: 315.0 + aspect_ratio: 2.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 300 + } +} +layer { + name: "mbox_loc" + type: "Concat" + bottom: "fire5_mbox_loc_flat" + bottom: "fire9_mbox_loc_flat" + bottom: "fire10_mbox_loc_flat" + bottom: "fire11_mbox_loc_flat" + bottom: "conv12_2_mbox_loc_flat" + bottom: "conv13_2_mbox_loc_flat" + top: "mbox_loc" + concat_param { + axis: 1 + } +} +layer { + name: "mbox_conf" + type: "Concat" + bottom: "fire5_mbox_conf_flat" + bottom: "fire9_mbox_conf_flat" + bottom: "fire10_mbox_conf_flat" + bottom: "fire11_mbox_conf_flat" + bottom: "conv12_2_mbox_conf_flat" + bottom: "conv13_2_mbox_conf_flat" + top: "mbox_conf" + concat_param { + axis: 1 + } +} +layer { + name: "mbox_priorbox" + type: "Concat" + bottom: "fire5_mbox_priorbox" + bottom: "fire9_mbox_priorbox" + bottom: "fire10_mbox_priorbox" + bottom: "fire11_mbox_priorbox" + bottom: "conv12_2_mbox_priorbox" + bottom: "conv13_2_mbox_priorbox" + top: "mbox_priorbox" + concat_param { + axis: 2 + } +} +layer { + name: "mbox_conf_reshape" + type: "Reshape" + bottom: "mbox_conf" + top: "mbox_conf_reshape" + reshape_param { + shape { + dim: 0 + dim: -1 + dim: 21 + } + } +} +layer { + name: "mbox_conf_softmax" + type: "Softmax" + bottom: "mbox_conf_reshape" + top: "mbox_conf_softmax" + softmax_param { + axis: 2 + } +} +layer { + name: "mbox_conf_flatten" + type: "Flatten" + bottom: "mbox_conf_softmax" + top: "mbox_conf_flatten" + flatten_param { + axis: 1 + } +} +layer { + name: "detection_out" + type: "DetectionOutput" + bottom: "mbox_loc" + bottom: "mbox_conf_flatten" + bottom: "mbox_priorbox" + top: "detection_out" + include { + phase: TEST + } + detection_output_param { + num_classes: 21 + share_location: true + background_label_id: 0 + nms_param { + nms_threshold: 0.45 + top_k: 400 + } + code_type: CENTER_SIZE + keep_top_k: 200 + confidence_threshold: 0.01 + } +} +layer { + name: "detection_eval" + type: "DetectionEvaluate" + bottom: "detection_out" + bottom: "label" + top: "detection_eval" + include { + phase: TEST + } + detection_evaluate_param { + num_classes: 21 + background_label_id: 0 + overlap_threshold: 0.5 + evaluate_difficult_gt: false + } +} diff --git a/models/intel_optimized_models/ssd/SqueezeNet-SSD/squeezenet_ssd_voc_train.prototxt b/models/intel_optimized_models/ssd/SqueezeNet-SSD/squeezenet_ssd_voc_train.prototxt new file mode 100644 index 000000000..86f0142c4 --- /dev/null +++ b/models/intel_optimized_models/ssd/SqueezeNet-SSD/squeezenet_ssd_voc_train.prototxt @@ -0,0 +1,2478 @@ +name: "squeezenet-ssd" +layer { + name: "data" + type: "AnnotatedData" + top: "data" + top: "label" + include { + phase: TRAIN + } + transform_param { + mirror: true + mean_value: 104 + mean_value: 117 + mean_value: 123 + resize_param { + prob: 1.0 + resize_mode: WARP + height: 300 + width: 300 + interp_mode: LINEAR + interp_mode: AREA + interp_mode: NEAREST + interp_mode: CUBIC + interp_mode: LANCZOS4 + } + emit_constraint { + emit_type: CENTER + } + distort_param { + brightness_prob: 0.5 + brightness_delta: 32.0 + contrast_prob: 0.5 + contrast_lower: 0.5 + contrast_upper: 1.5 + hue_prob: 0.5 + hue_delta: 18.0 + saturation_prob: 0.5 + saturation_lower: 0.5 + saturation_upper: 1.5 + random_order_prob: 0.0 + } + expand_param { + prob: 0.5 + max_expand_ratio: 4.0 + } + } + data_param { + source: "trainval_lmdb" + batch_size: 32 + backend: LMDB + } + annotated_data_param { + batch_sampler { + max_sample: 1 + max_trials: 1 + } + batch_sampler { + sampler { + min_scale: 0.3 + max_scale: 1.0 + min_aspect_ratio: 0.5 + max_aspect_ratio: 2.0 + } + sample_constraint { + min_jaccard_overlap: 0.1 + } + max_sample: 1 + max_trials: 50 + } + batch_sampler { + sampler { + min_scale: 0.3 + max_scale: 1.0 + min_aspect_ratio: 0.5 + max_aspect_ratio: 2.0 + } + sample_constraint { + min_jaccard_overlap: 0.3 + } + max_sample: 1 + max_trials: 50 + } + batch_sampler { + sampler { + min_scale: 0.3 + max_scale: 1.0 + min_aspect_ratio: 0.5 + max_aspect_ratio: 2.0 + } + sample_constraint { + min_jaccard_overlap: 0.5 + } + max_sample: 1 + max_trials: 50 + } + batch_sampler { + sampler { + min_scale: 0.3 + max_scale: 1.0 + min_aspect_ratio: 0.5 + max_aspect_ratio: 2.0 + } + sample_constraint { + min_jaccard_overlap: 0.7 + } + max_sample: 1 + max_trials: 50 + } + batch_sampler { + sampler { + min_scale: 0.3 + max_scale: 1.0 + min_aspect_ratio: 0.5 + max_aspect_ratio: 2.0 + } + sample_constraint { + min_jaccard_overlap: 0.9 + } + max_sample: 1 + max_trials: 50 + } + batch_sampler { + sampler { + min_scale: 0.3 + max_scale: 1.0 + min_aspect_ratio: 0.5 + max_aspect_ratio: 2.0 + } + sample_constraint { + max_jaccard_overlap: 1.0 + } + max_sample: 1 + max_trials: 50 + } + label_map_file: "labelmap.prototxt" + } +} +layer { + name: "conv1" + type: "Convolution" + bottom: "data" + top: "conv1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + kernel_size: 3 + stride: 2 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "relu_conv1" + type: "ReLU" + bottom: "conv1" + top: "conv1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fire2/squeeze1x1" + type: "Convolution" + bottom: "pool1" + top: "fire2/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 16 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire2/relu_squeeze1x1" + type: "ReLU" + bottom: "fire2/squeeze1x1" + top: "fire2/squeeze1x1" +} +layer { + name: "fire2/expand1x1" + type: "Convolution" + bottom: "fire2/squeeze1x1" + top: "fire2/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire2/relu_expand1x1" + type: "ReLU" + bottom: "fire2/expand1x1" + top: "fire2/expand1x1" +} +layer { + name: "fire2/expand3x3" + type: "Convolution" + bottom: "fire2/squeeze1x1" + top: "fire2/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire2/relu_expand3x3" + type: "ReLU" + bottom: "fire2/expand3x3" + top: "fire2/expand3x3" +} +layer { + name: "fire2/concat" + type: "Concat" + bottom: "fire2/expand1x1" + bottom: "fire2/expand3x3" + top: "fire2/concat" +} +layer { + name: "fire3/squeeze1x1" + type: "Convolution" + bottom: "fire2/concat" + top: "fire3/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 16 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire3/relu_squeeze1x1" + type: "ReLU" + bottom: "fire3/squeeze1x1" + top: "fire3/squeeze1x1" +} +layer { + name: "fire3/expand1x1" + type: "Convolution" + bottom: "fire3/squeeze1x1" + top: "fire3/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire3/relu_expand1x1" + type: "ReLU" + bottom: "fire3/expand1x1" + top: "fire3/expand1x1" +} +layer { + name: "fire3/expand3x3" + type: "Convolution" + bottom: "fire3/squeeze1x1" + top: "fire3/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire3/relu_expand3x3" + type: "ReLU" + bottom: "fire3/expand3x3" + top: "fire3/expand3x3" +} +layer { + name: "fire3/concat" + type: "Concat" + bottom: "fire3/expand1x1" + bottom: "fire3/expand3x3" + top: "fire3/concat" +} +layer { + name: "pool3" + type: "Pooling" + bottom: "fire3/concat" + top: "pool3" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fire4/squeeze1x1" + type: "Convolution" + bottom: "pool3" + top: "fire4/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 32 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire4/relu_squeeze1x1" + type: "ReLU" + bottom: "fire4/squeeze1x1" + top: "fire4/squeeze1x1" +} +layer { + name: "fire4/expand1x1" + type: "Convolution" + bottom: "fire4/squeeze1x1" + top: "fire4/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire4/relu_expand1x1" + type: "ReLU" + bottom: "fire4/expand1x1" + top: "fire4/expand1x1" +} +layer { + name: "fire4/expand3x3" + type: "Convolution" + bottom: "fire4/squeeze1x1" + top: "fire4/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire4/relu_expand3x3" + type: "ReLU" + bottom: "fire4/expand3x3" + top: "fire4/expand3x3" +} +layer { + name: "fire4/concat" + type: "Concat" + bottom: "fire4/expand1x1" + bottom: "fire4/expand3x3" + top: "fire4/concat" +} +layer { + name: "fire5/squeeze1x1" + type: "Convolution" + bottom: "fire4/concat" + top: "fire5/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 32 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire5/relu_squeeze1x1" + type: "ReLU" + bottom: "fire5/squeeze1x1" + top: "fire5/squeeze1x1" +} +layer { + name: "fire5/expand1x1" + type: "Convolution" + bottom: "fire5/squeeze1x1" + top: "fire5/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire5/relu_expand1x1" + type: "ReLU" + bottom: "fire5/expand1x1" + top: "fire5/expand1x1" +} +layer { + name: "fire5/expand3x3" + type: "Convolution" + bottom: "fire5/squeeze1x1" + top: "fire5/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire5/relu_expand3x3" + type: "ReLU" + bottom: "fire5/expand3x3" + top: "fire5/expand3x3" +} +layer { + name: "fire5/concat" + type: "Concat" + bottom: "fire5/expand1x1" + bottom: "fire5/expand3x3" + top: "fire5/concat" +} +layer { + name: "pool5" + type: "Pooling" + bottom: "fire5/concat" + top: "pool5" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fire6/squeeze1x1" + type: "Convolution" + bottom: "pool5" + top: "fire6/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire6/relu_squeeze1x1" + type: "ReLU" + bottom: "fire6/squeeze1x1" + top: "fire6/squeeze1x1" +} +layer { + name: "fire6/expand1x1" + type: "Convolution" + bottom: "fire6/squeeze1x1" + top: "fire6/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 192 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire6/relu_expand1x1" + type: "ReLU" + bottom: "fire6/expand1x1" + top: "fire6/expand1x1" +} +layer { + name: "fire6/expand3x3" + type: "Convolution" + bottom: "fire6/squeeze1x1" + top: "fire6/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 192 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire6/relu_expand3x3" + type: "ReLU" + bottom: "fire6/expand3x3" + top: "fire6/expand3x3" +} +layer { + name: "fire6/concat" + type: "Concat" + bottom: "fire6/expand1x1" + bottom: "fire6/expand3x3" + top: "fire6/concat" +} +layer { + name: "fire7/squeeze1x1" + type: "Convolution" + bottom: "fire6/concat" + top: "fire7/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire7/relu_squeeze1x1" + type: "ReLU" + bottom: "fire7/squeeze1x1" + top: "fire7/squeeze1x1" +} +layer { + name: "fire7/expand1x1" + type: "Convolution" + bottom: "fire7/squeeze1x1" + top: "fire7/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 192 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire7/relu_expand1x1" + type: "ReLU" + bottom: "fire7/expand1x1" + top: "fire7/expand1x1" +} +layer { + name: "fire7/expand3x3" + type: "Convolution" + bottom: "fire7/squeeze1x1" + top: "fire7/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 192 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire7/relu_expand3x3" + type: "ReLU" + bottom: "fire7/expand3x3" + top: "fire7/expand3x3" +} +layer { + name: "fire7/concat" + type: "Concat" + bottom: "fire7/expand1x1" + bottom: "fire7/expand3x3" + top: "fire7/concat" +} +layer { + name: "fire8/squeeze1x1" + type: "Convolution" + bottom: "fire7/concat" + top: "fire8/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire8/relu_squeeze1x1" + type: "ReLU" + bottom: "fire8/squeeze1x1" + top: "fire8/squeeze1x1" +} +layer { + name: "fire8/expand1x1" + type: "Convolution" + bottom: "fire8/squeeze1x1" + top: "fire8/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire8/relu_expand1x1" + type: "ReLU" + bottom: "fire8/expand1x1" + top: "fire8/expand1x1" +} +layer { + name: "fire8/expand3x3" + type: "Convolution" + bottom: "fire8/squeeze1x1" + top: "fire8/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire8/relu_expand3x3" + type: "ReLU" + bottom: "fire8/expand3x3" + top: "fire8/expand3x3" +} +layer { + name: "fire8/concat" + type: "Concat" + bottom: "fire8/expand1x1" + bottom: "fire8/expand3x3" + top: "fire8/concat" +} +layer { + name: "fire9/squeeze1x1" + type: "Convolution" + bottom: "fire8/concat" + top: "fire9/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire9/relu_squeeze1x1" + type: "ReLU" + bottom: "fire9/squeeze1x1" + top: "fire9/squeeze1x1" +} +layer { + name: "fire9/expand1x1" + type: "Convolution" + bottom: "fire9/squeeze1x1" + top: "fire9/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire9/expand1x1/bn" + type: "BatchNorm" + bottom: "fire9/expand1x1" + top: "fire9/expand1x1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire9/expand1x1/scale" + type: "Scale" + bottom: "fire9/expand1x1" + top: "fire9/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire9/relu_expand1x1" + type: "ReLU" + bottom: "fire9/expand1x1" + top: "fire9/expand1x1" +} +layer { + name: "fire9/expand3x3" + type: "Convolution" + bottom: "fire9/squeeze1x1" + top: "fire9/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire9/expand3x3/bn" + type: "BatchNorm" + bottom: "fire9/expand3x3" + top: "fire9/expand3x3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire9/expand3x3/scale" + type: "Scale" + bottom: "fire9/expand3x3" + top: "fire9/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire9/relu_expand3x3" + type: "ReLU" + bottom: "fire9/expand3x3" + top: "fire9/expand3x3" +} +layer { + name: "fire9/concat" + type: "Concat" + bottom: "fire9/expand1x1" + bottom: "fire9/expand3x3" + top: "fire9/concat" +} +layer { + name: "pool9" + type: "Pooling" + bottom: "fire9/concat" + top: "pool9" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +#================ssd append layer fire10, out 9 * 9 +layer { + name: "fire10/squeeze1x1" + type: "Convolution" + bottom: "pool9" + top: "fire10/squeeze1x1" + convolution_param { + num_output: 96 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire10/squeeze1x1/bn" + type: "BatchNorm" + top: "fire10/squeeze1x1" + bottom: "fire10/squeeze1x1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire10/squeeze1x1/scale" + type: "Scale" + top: "fire10/squeeze1x1" + bottom: "fire10/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire10/relu_squeeze1x1" + type: "ReLU" + bottom: "fire10/squeeze1x1" + top: "fire10/squeeze1x1" +} +layer { + name: "fire10/expand1x1" + type: "Convolution" + bottom: "fire10/squeeze1x1" + top: "fire10/expand1x1" + convolution_param { + num_output: 384 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire10/expand1x1/bn" + type: "BatchNorm" + bottom: "fire10/expand1x1" + top: "fire10/expand1x1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire10/expand1x1/scale" + type: "Scale" + bottom: "fire10/expand1x1" + top: "fire10/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire10/relu_expand1x1" + type: "ReLU" + bottom: "fire10/expand1x1" + top: "fire10/expand1x1" +} +layer { + name: "fire10/expand3x3" + type: "Convolution" + bottom: "fire10/squeeze1x1" + top: "fire10/expand3x3" + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire10/expand3x3/bn" + type: "BatchNorm" + bottom: "fire10/expand3x3" + top: "fire10/expand3x3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire10/expand3x3/scale" + type: "Scale" + bottom: "fire10/expand3x3" + top: "fire10/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire10/relu_expand3x3" + type: "ReLU" + bottom: "fire10/expand3x3" + top: "fire10/expand3x3" +} +layer { + name: "fire10/concat" + type: "Concat" + bottom: "fire10/expand1x1" + bottom: "fire10/expand3x3" + top: "fire10/concat" +} +#================ssd append layer fire11, out 4 * 4 +layer { + name: "pool10" + type: "Pooling" + bottom: "fire10/concat" + top: "pool10" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fire11/squeeze1x1" + type: "Convolution" + bottom: "pool10" + top: "fire11/squeeze1x1" + convolution_param { + num_output: 96 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire11/squeeze1x1/bn" + type: "BatchNorm" + top: "fire11/squeeze1x1" + bottom: "fire11/squeeze1x1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire11/squeeze1x1/scale" + type: "Scale" + top: "fire11/squeeze1x1" + bottom: "fire11/squeeze1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire11/relu_squeeze1x1" + type: "ReLU" + bottom: "fire11/squeeze1x1" + top: "fire11/squeeze1x1" +} +layer { + name: "fire11/expand1x1" + type: "Convolution" + bottom: "fire11/squeeze1x1" + top: "fire11/expand1x1" + convolution_param { + num_output: 384 + kernel_size: 1 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire11/expand1x1/bn" + type: "BatchNorm" + bottom: "fire11/expand1x1" + top: "fire11/expand1x1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire11/expand1x1/scale" + type: "Scale" + bottom: "fire11/expand1x1" + top: "fire11/expand1x1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire11/relu_expand1x1" + type: "ReLU" + bottom: "fire11/expand1x1" + top: "fire11/expand1x1" +} +layer { + name: "fire11/expand3x3" + type: "Convolution" + bottom: "fire11/squeeze1x1" + top: "fire11/expand3x3" + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + } +} +layer { + name: "fire11/expand3x3/bn" + type: "BatchNorm" + bottom: "fire11/expand3x3" + top: "fire11/expand3x3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire11/expand3x3/scale" + type: "Scale" + bottom: "fire11/expand3x3" + top: "fire11/expand3x3" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire11/relu_expand3x3" + type: "ReLU" + bottom: "fire11/expand3x3" + top: "fire11/expand3x3" +} +layer { + name: "fire11/concat" + type: "Concat" + bottom: "fire11/expand1x1" + bottom: "fire11/expand3x3" + top: "fire11/concat" +} +#================ssd append layer conv12, out 2 * 2 +layer { + name: "conv12_1" + type: "Convolution" + bottom: "fire11/concat" + top: "conv12_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + kernel_size: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "conv12_1/bn" + type: "BatchNorm" + bottom: "conv12_1" + top: "conv12_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "conv12_1/scale" + type: "Scale" + bottom: "conv12_1" + top: "conv12_1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "conv12_1/relu" + type: "ReLU" + bottom: "conv12_1" + top: "conv12_1" +} +layer { + name: "conv12_2" + type: "Convolution" + bottom: "conv12_1" + top: "conv12_2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 256 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "msra" + } + } +} +layer { + name: "conv12_2/bn" + type: "BatchNorm" + bottom: "conv12_2" + top: "conv12_2" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "conv12_2/scale" + type: "Scale" + bottom: "conv12_2" + top: "conv12_2" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "conv12_2/relu" + type: "ReLU" + bottom: "conv12_2" + top: "conv12_2" +} +#================ssd append layer conv13, out 1 * 1 +layer { + name: "conv13_1" + type: "Convolution" + bottom: "conv12_2" + top: "conv13_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + kernel_size: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "conv13_1/bn" + type: "BatchNorm" + bottom: "conv13_1" + top: "conv13_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "conv13_1/scale" + type: "Scale" + bottom: "conv13_1" + top: "conv13_1" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "conv13_1/relu" + type: "ReLU" + bottom: "conv13_1" + top: "conv13_1" +} +layer { + name: "conv13_2" + type: "Convolution" + bottom: "conv13_1" + top: "conv13_2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "msra" + } + } +} +layer { + name: "conv13_2/bn" + type: "BatchNorm" + bottom: "conv13_2" + top: "conv13_2" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "conv13_2/scale" + type: "Scale" + bottom: "conv13_2" + top: "conv13_2" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "conv13_2/relu" + type: "ReLU" + bottom: "conv13_2" + top: "conv13_2" +} +#================ssd mbox layer +layer { + name: "fire5/bn" + type: "BatchNorm" + bottom: "fire5/concat" + top: "fire5/normal" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } +} +layer { + name: "fire5/scale" + type: "Scale" + bottom: "fire5/normal" + top: "fire5/normal" + param { + lr_mult: 1.0 + decay_mult: 0.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + scale_param { + filler { + value: 1 + } + bias_term: true + bias_filler { + value: 0 + } + } +} +layer { + name: "fire5_mbox_loc" + type: "Convolution" + bottom: "fire5/normal" + top: "fire5_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 16 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire5_mbox_loc_perm" + type: "Permute" + bottom: "fire5_mbox_loc" + top: "fire5_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire5_mbox_loc_flat" + type: "Flatten" + bottom: "fire5_mbox_loc_perm" + top: "fire5_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire5_mbox_conf" + type: "Convolution" + bottom: "fire5/normal" + top: "fire5_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 84 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire5_mbox_conf_perm" + type: "Permute" + bottom: "fire5_mbox_conf" + top: "fire5_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire5_mbox_conf_flat" + type: "Flatten" + bottom: "fire5_mbox_conf_perm" + top: "fire5_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire5_mbox_priorbox" + type: "PriorBox" + bottom: "fire5/normal" + bottom: "data" + top: "fire5_mbox_priorbox" + prior_box_param { + min_size: 21.0 + max_size: 45.0 + aspect_ratio: 2.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 8 + } +} +#================mbox fire9 +layer { + name: "fire9_mbox_loc" + type: "Convolution" + bottom: "fire9/concat" + top: "fire9_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire9_mbox_loc_perm" + type: "Permute" + bottom: "fire9_mbox_loc" + top: "fire9_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire9_mbox_loc_flat" + type: "Flatten" + bottom: "fire9_mbox_loc_perm" + top: "fire9_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire9_mbox_conf" + type: "Convolution" + bottom: "fire9/concat" + top: "fire9_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 126 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire9_mbox_conf_perm" + type: "Permute" + bottom: "fire9_mbox_conf" + top: "fire9_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire9_mbox_conf_flat" + type: "Flatten" + bottom: "fire9_mbox_conf_perm" + top: "fire9_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire9_mbox_priorbox" + type: "PriorBox" + bottom: "fire9/concat" + bottom: "data" + top: "fire9_mbox_priorbox" + prior_box_param { + min_size: 45.0 + max_size: 99.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 16 + } +} +#=====fire10 mbox +layer { + name: "fire10_mbox_loc" + type: "Convolution" + bottom: "fire10/concat" + top: "fire10_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire10_mbox_loc_perm" + type: "Permute" + bottom: "fire10_mbox_loc" + top: "fire10_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire10_mbox_loc_flat" + type: "Flatten" + bottom: "fire10_mbox_loc_perm" + top: "fire10_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire10_mbox_conf" + type: "Convolution" + bottom: "fire10/concat" + top: "fire10_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 126 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire10_mbox_conf_perm" + type: "Permute" + bottom: "fire10_mbox_conf" + top: "fire10_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire10_mbox_conf_flat" + type: "Flatten" + bottom: "fire10_mbox_conf_perm" + top: "fire10_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire10_mbox_priorbox" + type: "PriorBox" + bottom: "fire10/concat" + bottom: "data" + top: "fire10_mbox_priorbox" + prior_box_param { + min_size: 99.0 + max_size: 153.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 32 + } +} + +#=====conv11 mbox +layer { + name: "fire11_mbox_loc" + type: "Convolution" + bottom: "fire11/concat" + top: "fire11_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire11_mbox_loc_perm" + type: "Permute" + bottom: "fire11_mbox_loc" + top: "fire11_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire11_mbox_loc_flat" + type: "Flatten" + bottom: "fire11_mbox_loc_perm" + top: "fire11_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire11_mbox_conf" + type: "Convolution" + bottom: "fire11/concat" + top: "fire11_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 126 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "fire11_mbox_conf_perm" + type: "Permute" + bottom: "fire11_mbox_conf" + top: "fire11_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fire11_mbox_conf_flat" + type: "Flatten" + bottom: "fire11_mbox_conf_perm" + top: "fire11_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fire11_mbox_priorbox" + type: "PriorBox" + bottom: "fire11/concat" + bottom: "data" + top: "fire11_mbox_priorbox" + prior_box_param { + min_size: 153.0 + max_size: 207.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 64 + } +} +#=====conv12 mbox +layer { + name: "conv12_2_mbox_loc" + type: "Convolution" + bottom: "conv12_2" + top: "conv12_2_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv12_2_mbox_loc_perm" + type: "Permute" + bottom: "conv12_2_mbox_loc" + top: "conv12_2_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv12_2_mbox_loc_flat" + type: "Flatten" + bottom: "conv12_2_mbox_loc_perm" + top: "conv12_2_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv12_2_mbox_conf" + type: "Convolution" + bottom: "conv12_2" + top: "conv12_2_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 126 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv12_2_mbox_conf_perm" + type: "Permute" + bottom: "conv12_2_mbox_conf" + top: "conv12_2_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv12_2_mbox_conf_flat" + type: "Flatten" + bottom: "conv12_2_mbox_conf_perm" + top: "conv12_2_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv12_2_mbox_priorbox" + type: "PriorBox" + bottom: "conv12_2" + bottom: "data" + top: "conv12_2_mbox_priorbox" + prior_box_param { + min_size: 207.0 + max_size: 261.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 100 + } +} +#=====conv13 mbox +layer { + name: "conv13_2_mbox_loc" + type: "Convolution" + bottom: "conv13_2" + top: "conv13_2_mbox_loc" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 16 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv13_2_mbox_loc_perm" + type: "Permute" + bottom: "conv13_2_mbox_loc" + top: "conv13_2_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv13_2_mbox_loc_flat" + type: "Flatten" + bottom: "conv13_2_mbox_loc_perm" + top: "conv13_2_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv13_2_mbox_conf" + type: "Convolution" + bottom: "conv13_2" + top: "conv13_2_mbox_conf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 84 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } + } +} +layer { + name: "conv13_2_mbox_conf_perm" + type: "Permute" + bottom: "conv13_2_mbox_conf" + top: "conv13_2_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv13_2_mbox_conf_flat" + type: "Flatten" + bottom: "conv13_2_mbox_conf_perm" + top: "conv13_2_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv13_2_mbox_priorbox" + type: "PriorBox" + bottom: "conv13_2" + bottom: "data" + top: "conv13_2_mbox_priorbox" + prior_box_param { + min_size: 261.0 + max_size: 315.0 + aspect_ratio: 2.0 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 300 + } +} +layer { + name: "mbox_loc" + type: "Concat" + bottom: "fire5_mbox_loc_flat" + bottom: "fire9_mbox_loc_flat" + bottom: "fire10_mbox_loc_flat" + bottom: "fire11_mbox_loc_flat" + bottom: "conv12_2_mbox_loc_flat" + bottom: "conv13_2_mbox_loc_flat" + top: "mbox_loc" + concat_param { + axis: 1 + } +} +layer { + name: "mbox_conf" + type: "Concat" + bottom: "fire5_mbox_conf_flat" + bottom: "fire9_mbox_conf_flat" + bottom: "fire10_mbox_conf_flat" + bottom: "fire11_mbox_conf_flat" + bottom: "conv12_2_mbox_conf_flat" + bottom: "conv13_2_mbox_conf_flat" + top: "mbox_conf" + concat_param { + axis: 1 + } +} +layer { + name: "mbox_priorbox" + type: "Concat" + bottom: "fire5_mbox_priorbox" + bottom: "fire9_mbox_priorbox" + bottom: "fire10_mbox_priorbox" + bottom: "fire11_mbox_priorbox" + bottom: "conv12_2_mbox_priorbox" + bottom: "conv13_2_mbox_priorbox" + top: "mbox_priorbox" + concat_param { + axis: 2 + } +} +layer { + name: "mbox_loss" + type: "MultiBoxLoss" + bottom: "mbox_loc" + bottom: "mbox_conf" + bottom: "mbox_priorbox" + bottom: "label" + top: "mbox_loss" + include { + phase: TRAIN + } + propagate_down: true + propagate_down: true + propagate_down: false + propagate_down: false + loss_param { + normalization: VALID + } + multibox_loss_param { + loc_loss_type: SMOOTH_L1 + conf_loss_type: SOFTMAX + loc_weight: 1.0 + num_classes: 21 + share_location: true + match_type: PER_PREDICTION + overlap_threshold: 0.5 + use_prior_for_matching: true + background_label_id: 0 + use_difficult_gt: true + neg_pos_ratio: 3.0 + neg_overlap: 0.5 + code_type: CENTER_SIZE + ignore_cross_boundary_bbox: false + mining_type: MAX_NEGATIVE + } +} From 3532b60934180d87553e0a31c3afad0fec7350be Mon Sep 17 00:00:00 2001 From: Dzmitry Kamarouski Date: Sun, 11 Mar 2018 01:28:43 +0300 Subject: [PATCH 3/6] Update caffe.proto --- src/caffe/proto/caffe.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/src/caffe/proto/caffe.proto b/src/caffe/proto/caffe.proto index cfbfdb55c..169068755 100755 --- a/src/caffe/proto/caffe.proto +++ b/src/caffe/proto/caffe.proto @@ -1219,6 +1219,7 @@ message DetectionOutputParameter { message DropoutParameter { optional float dropout_ratio = 1 [default = 0.5]; // dropout ratio + optional bool sample_weights_test = 2 [default = false]; // Sample weights for testing or use the mean } message SpatialDropoutParameter { From 6cd34c7436a76c4a64196b028b48910e9c80379b Mon Sep 17 00:00:00 2001 From: Dzmitry Kamarouski Date: Sun, 11 Mar 2018 01:29:49 +0300 Subject: [PATCH 4/6] Update dropout_layer.cu --- src/caffe/layers/dropout_layer.cu | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/caffe/layers/dropout_layer.cu b/src/caffe/layers/dropout_layer.cu index 186c10ca4..6cac942ad 100644 --- a/src/caffe/layers/dropout_layer.cu +++ b/src/caffe/layers/dropout_layer.cu @@ -20,7 +20,7 @@ void DropoutLayer::Forward_gpu(const vector*>& bottom, const Dtype* bottom_data = bottom[0]->gpu_data(); Dtype* top_data = top[0]->mutable_gpu_data(); const int count = bottom[0]->count(); - if (this->phase_ == TRAIN) { + if (this->phase_ == TRAIN || this->layer_param_.dropout_param().sample_weights_test()) { unsigned int* mask = static_cast(rand_vec_.mutable_gpu_data()); caffe_gpu_rng_uniform(count, mask); @@ -50,7 +50,7 @@ void DropoutLayer::Backward_gpu(const vector*>& top, if (propagate_down[0]) { const Dtype* top_diff = top[0]->gpu_diff(); Dtype* bottom_diff = bottom[0]->mutable_gpu_diff(); - if (this->phase_ == TRAIN) { + if (this->phase_ == TRAIN || this->layer_param_.dropout_param().sample_weights_test()) { const unsigned int* mask = static_cast(rand_vec_.gpu_data()); const int count = bottom[0]->count(); From 7b10f6af69229f112105036812ebd71f7ddaa3a8 Mon Sep 17 00:00:00 2001 From: Dzmitry Kamarouski Date: Sun, 11 Mar 2018 01:30:20 +0300 Subject: [PATCH 5/6] Update dropout_layer.cpp --- src/caffe/layers/dropout_layer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/caffe/layers/dropout_layer.cpp b/src/caffe/layers/dropout_layer.cpp index c23c583de..57d1462c8 100644 --- a/src/caffe/layers/dropout_layer.cpp +++ b/src/caffe/layers/dropout_layer.cpp @@ -71,7 +71,7 @@ void DropoutLayer::Forward_cpu(const vector*>& bottom, Dtype* top_data = top[0]->mutable_cpu_data(); unsigned int* mask = rand_vec_.mutable_cpu_data(); const int count = bottom[0]->count(); - if (this->phase_ == TRAIN) { + if (this->phase_ == TRAIN || this->layer_param_.dropout_param().sample_weights_test()) { // Create random numbers caffe_rng_bernoulli(count, 1. - threshold_, mask); #ifdef _OPENMP @@ -92,7 +92,7 @@ void DropoutLayer::Backward_cpu(const vector*>& top, if (propagate_down[0]) { const Dtype* top_diff = top[0]->cpu_diff(); Dtype* bottom_diff = bottom[0]->mutable_cpu_diff(); - if (this->phase_ == TRAIN) { + if (this->phase_ == TRAIN || this->layer_param_.dropout_param().sample_weights_test()) { const unsigned int* mask = rand_vec_.cpu_data(); const int count = bottom[0]->count(); #ifdef _OPENMP From 9f22046cef4dc8225564caa45c50ceb40b594f81 Mon Sep 17 00:00:00 2001 From: Dzmitry Kamarouski Date: Sun, 11 Mar 2018 01:36:54 +0300 Subject: [PATCH 6/6] Add files via upload --- .../ssd/alexnet_2classes_gray/deploy.prototxt | 1368 +++++++++++++++ .../ssd/alexnet_2classes_gray/solver.prototxt | 24 + .../ssd/alexnet_2classes_gray/train.prototxt | 1480 +++++++++++++++++ 3 files changed, 2872 insertions(+) create mode 100644 models/intel_optimized_models/ssd/alexnet_2classes_gray/deploy.prototxt create mode 100644 models/intel_optimized_models/ssd/alexnet_2classes_gray/solver.prototxt create mode 100644 models/intel_optimized_models/ssd/alexnet_2classes_gray/train.prototxt diff --git a/models/intel_optimized_models/ssd/alexnet_2classes_gray/deploy.prototxt b/models/intel_optimized_models/ssd/alexnet_2classes_gray/deploy.prototxt new file mode 100644 index 000000000..34e0b1988 --- /dev/null +++ b/models/intel_optimized_models/ssd/alexnet_2classes_gray/deploy.prototxt @@ -0,0 +1,1368 @@ +name: "AlexNet_VOC0712_SSD_300x300_deploy" +input: "data" +input_shape { + dim: 1 + dim: 1 + dim: 300 + dim: 300 +} +layer { + name: "conv1" + type: "Convolution" + bottom: "data" + top: "conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 96 + kernel_size: 11 + stride: 4 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "relu1" + type: "ReLU" + bottom: "conv1" + top: "conv1" +} +layer { + name: "norm1" + type: "LRN" + bottom: "conv1" + top: "norm1" + lrn_param { + local_size: 5 + alpha: 0.0001 + beta: 0.75 + k: 2 + } +} +layer { + name: "pool1" + type: "Pooling" + bottom: "norm1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "conv2" + type: "Convolution" + bottom: "pool1" + top: "conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 256 + pad: 2 + kernel_size: 5 + group: 2 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "relu2" + type: "ReLU" + bottom: "conv2" + top: "conv2" +} +layer { + name: "norm2" + type: "LRN" + bottom: "conv2" + top: "norm2" + lrn_param { + local_size: 5 + alpha: 0.0001 + beta: 0.75 + k: 2 + } +} +layer { + name: "pool2" + type: "Pooling" + bottom: "norm2" + top: "pool2" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "conv3" + type: "Convolution" + bottom: "pool2" + top: "conv3" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "relu3" + type: "ReLU" + bottom: "conv3" + top: "conv3" +} +layer { + name: "conv4" + type: "Convolution" + bottom: "conv3" + top: "conv4" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + group: 2 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "relu4" + type: "ReLU" + bottom: "conv4" + top: "conv4" +} +layer { + name: "conv5" + type: "Convolution" + bottom: "conv4" + top: "conv5" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + group: 2 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "relu5" + type: "ReLU" + bottom: "conv5" + top: "conv5" +} +layer { + name: "pool5" + type: "Pooling" + bottom: "conv5" + top: "pool5" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + name: "fc6_conv" + type: "Convolution" + bottom: "pool5" + top: "fc6_conv" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 1024 + pad: 5 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + dilation: 5 + } +} +layer { + name: "relu6" + type: "ReLU" + bottom: "fc6_conv" + top: "fc6_conv" +} +layer { + name: "fc7_conv" + type: "Convolution" + bottom: "fc6_conv" + top: "fc7_conv" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 1024 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "relu7" + type: "ReLU" + bottom: "fc7_conv" + top: "fc7_conv" +} +layer { + name: "conv6_1" + type: "Convolution" + bottom: "fc7_conv" + top: "conv6_1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 256 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv6_1_relu" + type: "ReLU" + bottom: "conv6_1" + top: "conv6_1" +} +layer { + name: "conv6_2" + type: "Convolution" + bottom: "conv6_1" + top: "conv6_2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 512 + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv6_2_relu" + type: "ReLU" + bottom: "conv6_2" + top: "conv6_2" +} +layer { + name: "conv7_1" + type: "Convolution" + bottom: "conv6_2" + top: "conv7_1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv7_1_relu" + type: "ReLU" + bottom: "conv7_1" + top: "conv7_1" +} +layer { + name: "conv7_2" + type: "Convolution" + bottom: "conv7_1" + top: "conv7_2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv7_2_relu" + type: "ReLU" + bottom: "conv7_2" + top: "conv7_2" +} +layer { + name: "conv8_1" + type: "Convolution" + bottom: "conv7_2" + top: "conv8_1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv8_1_relu" + type: "ReLU" + bottom: "conv8_1" + top: "conv8_1" +} +layer { + name: "conv8_2" + type: "Convolution" + bottom: "conv8_1" + top: "conv8_2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 256 + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv8_2_relu" + type: "ReLU" + bottom: "conv8_2" + top: "conv8_2" +} +layer { + name: "conv9_1" + type: "Convolution" + bottom: "conv8_2" + top: "conv9_1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv9_1_relu" + type: "ReLU" + bottom: "conv9_1" + top: "conv9_1" +} +layer { + name: "conv9_2" + type: "Convolution" + bottom: "conv9_1" + top: "conv9_2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 256 + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv9_2_relu" + type: "ReLU" + bottom: "conv9_2" + top: "conv9_2" +} +layer { + name: "conv2_norm" + type: "Normalize" + bottom: "conv2" + top: "conv2_norm" + norm_param { + across_spatial: false + scale_filler { + type: "constant" + value: 20 + } + channel_shared: false + } +} +layer { + name: "conv2_norm_mbox_loc" + type: "Convolution" + bottom: "conv2_norm" + top: "conv2_norm_mbox_loc" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 16 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv2_norm_mbox_loc_perm" + type: "Permute" + bottom: "conv2_norm_mbox_loc" + top: "conv2_norm_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv2_norm_mbox_loc_flat" + type: "Flatten" + bottom: "conv2_norm_mbox_loc_perm" + top: "conv2_norm_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv2_norm_mbox_conf" + type: "Convolution" + bottom: "conv2_norm" + top: "conv2_norm_mbox_conf" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 8 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv2_norm_mbox_conf_perm" + type: "Permute" + bottom: "conv2_norm_mbox_conf" + top: "conv2_norm_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv2_norm_mbox_conf_flat" + type: "Flatten" + bottom: "conv2_norm_mbox_conf_perm" + top: "conv2_norm_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv2_norm_mbox_priorbox" + type: "PriorBox" + bottom: "conv2_norm" + bottom: "data" + top: "conv2_norm_mbox_priorbox" + prior_box_param { + min_size: 30.0 + max_size: 60.0 + aspect_ratio: 2 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 8 + offset: 0.5 + } +} +layer { + name: "fc6_conv_mbox_loc" + type: "Convolution" + bottom: "fc6_conv" + top: "fc6_conv_mbox_loc" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 24 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "fc6_conv_mbox_loc_perm" + type: "Permute" + bottom: "fc6_conv_mbox_loc" + top: "fc6_conv_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fc6_conv_mbox_loc_flat" + type: "Flatten" + bottom: "fc6_conv_mbox_loc_perm" + top: "fc6_conv_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fc6_conv_mbox_conf" + type: "Convolution" + bottom: "fc6_conv" + top: "fc6_conv_mbox_conf" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 12 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "fc6_conv_mbox_conf_perm" + type: "Permute" + bottom: "fc6_conv_mbox_conf" + top: "fc6_conv_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fc6_conv_mbox_conf_flat" + type: "Flatten" + bottom: "fc6_conv_mbox_conf_perm" + top: "fc6_conv_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fc6_conv_mbox_priorbox" + type: "PriorBox" + bottom: "fc6_conv" + bottom: "data" + top: "fc6_conv_mbox_priorbox" + prior_box_param { + min_size: 60.0 + max_size: 111.0 + aspect_ratio: 2 + aspect_ratio: 3 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 16 + offset: 0.5 + } +} +layer { + name: "conv6_2_mbox_loc" + type: "Convolution" + bottom: "conv6_2" + top: "conv6_2_mbox_loc" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 24 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv6_2_mbox_loc_perm" + type: "Permute" + bottom: "conv6_2_mbox_loc" + top: "conv6_2_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv6_2_mbox_loc_flat" + type: "Flatten" + bottom: "conv6_2_mbox_loc_perm" + top: "conv6_2_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv6_2_mbox_conf" + type: "Convolution" + bottom: "conv6_2" + top: "conv6_2_mbox_conf" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 12 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv6_2_mbox_conf_perm" + type: "Permute" + bottom: "conv6_2_mbox_conf" + top: "conv6_2_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv6_2_mbox_conf_flat" + type: "Flatten" + bottom: "conv6_2_mbox_conf_perm" + top: "conv6_2_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv6_2_mbox_priorbox" + type: "PriorBox" + bottom: "conv6_2" + bottom: "data" + top: "conv6_2_mbox_priorbox" + prior_box_param { + min_size: 111.0 + max_size: 162.0 + aspect_ratio: 2 + aspect_ratio: 3 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 32 + offset: 0.5 + } +} +layer { + name: "conv7_2_mbox_loc" + type: "Convolution" + bottom: "conv7_2" + top: "conv7_2_mbox_loc" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 24 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv7_2_mbox_loc_perm" + type: "Permute" + bottom: "conv7_2_mbox_loc" + top: "conv7_2_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv7_2_mbox_loc_flat" + type: "Flatten" + bottom: "conv7_2_mbox_loc_perm" + top: "conv7_2_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv7_2_mbox_conf" + type: "Convolution" + bottom: "conv7_2" + top: "conv7_2_mbox_conf" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 12 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv7_2_mbox_conf_perm" + type: "Permute" + bottom: "conv7_2_mbox_conf" + top: "conv7_2_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv7_2_mbox_conf_flat" + type: "Flatten" + bottom: "conv7_2_mbox_conf_perm" + top: "conv7_2_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv7_2_mbox_priorbox" + type: "PriorBox" + bottom: "conv7_2" + bottom: "data" + top: "conv7_2_mbox_priorbox" + prior_box_param { + min_size: 162.0 + max_size: 213.0 + aspect_ratio: 2 + aspect_ratio: 3 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 64 + offset: 0.5 + } +} +layer { + name: "conv8_2_mbox_loc" + type: "Convolution" + bottom: "conv8_2" + top: "conv8_2_mbox_loc" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 16 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv8_2_mbox_loc_perm" + type: "Permute" + bottom: "conv8_2_mbox_loc" + top: "conv8_2_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv8_2_mbox_loc_flat" + type: "Flatten" + bottom: "conv8_2_mbox_loc_perm" + top: "conv8_2_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv8_2_mbox_conf" + type: "Convolution" + bottom: "conv8_2" + top: "conv8_2_mbox_conf" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 8 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv8_2_mbox_conf_perm" + type: "Permute" + bottom: "conv8_2_mbox_conf" + top: "conv8_2_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv8_2_mbox_conf_flat" + type: "Flatten" + bottom: "conv8_2_mbox_conf_perm" + top: "conv8_2_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv8_2_mbox_priorbox" + type: "PriorBox" + bottom: "conv8_2" + bottom: "data" + top: "conv8_2_mbox_priorbox" + prior_box_param { + min_size: 213.0 + max_size: 264.0 + aspect_ratio: 2 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 100 + offset: 0.5 + } +} +layer { + name: "conv9_2_mbox_loc" + type: "Convolution" + bottom: "conv9_2" + top: "conv9_2_mbox_loc" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 16 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv9_2_mbox_loc_perm" + type: "Permute" + bottom: "conv9_2_mbox_loc" + top: "conv9_2_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv9_2_mbox_loc_flat" + type: "Flatten" + bottom: "conv9_2_mbox_loc_perm" + top: "conv9_2_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv9_2_mbox_conf" + type: "Convolution" + bottom: "conv9_2" + top: "conv9_2_mbox_conf" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 8 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv9_2_mbox_conf_perm" + type: "Permute" + bottom: "conv9_2_mbox_conf" + top: "conv9_2_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv9_2_mbox_conf_flat" + type: "Flatten" + bottom: "conv9_2_mbox_conf_perm" + top: "conv9_2_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv9_2_mbox_priorbox" + type: "PriorBox" + bottom: "conv9_2" + bottom: "data" + top: "conv9_2_mbox_priorbox" + prior_box_param { + min_size: 264.0 + max_size: 315.0 + aspect_ratio: 2 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 300 + offset: 0.5 + } +} +layer { + name: "mbox_loc" + type: "Concat" + bottom: "conv2_norm_mbox_loc_flat" + bottom: "fc6_conv_mbox_loc_flat" + bottom: "conv6_2_mbox_loc_flat" + bottom: "conv7_2_mbox_loc_flat" + bottom: "conv8_2_mbox_loc_flat" + bottom: "conv9_2_mbox_loc_flat" + top: "mbox_loc" + concat_param { + axis: 1 + } +} +layer { + name: "mbox_conf" + type: "Concat" + bottom: "conv2_norm_mbox_conf_flat" + bottom: "fc6_conv_mbox_conf_flat" + bottom: "conv6_2_mbox_conf_flat" + bottom: "conv7_2_mbox_conf_flat" + bottom: "conv8_2_mbox_conf_flat" + bottom: "conv9_2_mbox_conf_flat" + top: "mbox_conf" + concat_param { + axis: 1 + } +} +layer { + name: "mbox_priorbox" + type: "Concat" + bottom: "conv2_norm_mbox_priorbox" + bottom: "fc6_conv_mbox_priorbox" + bottom: "conv6_2_mbox_priorbox" + bottom: "conv7_2_mbox_priorbox" + bottom: "conv8_2_mbox_priorbox" + bottom: "conv9_2_mbox_priorbox" + top: "mbox_priorbox" + concat_param { + axis: 2 + } +} +layer { + name: "mbox_conf_reshape" + type: "Reshape" + bottom: "mbox_conf" + top: "mbox_conf_reshape" + reshape_param { + shape { + dim: 0 + dim: -1 + dim: 2 + } + } +} +layer { + name: "mbox_conf_softmax" + type: "Softmax" + bottom: "mbox_conf_reshape" + top: "mbox_conf_softmax" + softmax_param { + axis: 2 + } +} +layer { + name: "mbox_conf_flatten" + type: "Flatten" + bottom: "mbox_conf_softmax" + top: "mbox_conf_flatten" + flatten_param { + axis: 1 + } +} +layer { + name: "detection_out" + type: "DetectionOutput" + bottom: "mbox_loc" + bottom: "mbox_conf_flatten" + bottom: "mbox_priorbox" + top: "detection_out" + detection_output_param { + num_classes: 2 + share_location: true + background_label_id: 0 + nms_param { + nms_threshold: 0.45 + top_k: 400 + } + code_type: CENTER_SIZE + keep_top_k: 200 + confidence_threshold: 0.01 + } +} + diff --git a/models/intel_optimized_models/ssd/alexnet_2classes_gray/solver.prototxt b/models/intel_optimized_models/ssd/alexnet_2classes_gray/solver.prototxt new file mode 100644 index 000000000..276168140 --- /dev/null +++ b/models/intel_optimized_models/ssd/alexnet_2classes_gray/solver.prototxt @@ -0,0 +1,24 @@ +train_net: "models/AlexNet/VOC0712/SSD_300x300/train.prototxt" +base_lr: 0.00025 +display: 10 +max_iter: 300000 +lr_policy: "multistep" +gamma: 0.1 +momentum: 0.9 +weight_decay: 0.0005 +snapshot: 50000 +snapshot_prefix: "models/AlexNet/VOC0712/SSD_300x300_boost" +solver_mode: CPU +device_id: 0 +debug_info: false +snapshot_after_train: true +test_initialization: false +average_loss: 10 +stepvalue: 80000 +stepvalue: 100000 +stepvalue: 120000 +iter_size: 1 +type: "SGD" +eval_type: "detection" +ap_version: "11point" + diff --git a/models/intel_optimized_models/ssd/alexnet_2classes_gray/train.prototxt b/models/intel_optimized_models/ssd/alexnet_2classes_gray/train.prototxt new file mode 100644 index 000000000..79b1d586b --- /dev/null +++ b/models/intel_optimized_models/ssd/alexnet_2classes_gray/train.prototxt @@ -0,0 +1,1480 @@ +name: "AlexNet_VOC0712_SSD_300x300_train" +layer { + name: "data" + type: "AnnotatedData" + top: "data" + top: "label" + include { + phase: TRAIN + } + transform_param { + mirror: true + mean_value: 128 + resize_param { + prob: 1 + resize_mode: WARP + height: 300 + width: 300 + interp_mode: LINEAR + interp_mode: AREA + interp_mode: NEAREST + interp_mode: CUBIC + interp_mode: LANCZOS4 + } + emit_constraint { + emit_type: CENTER + } + distort_param { + brightness_prob: 0.5 + brightness_delta: 32 + contrast_prob: 0.5 + contrast_lower: 0.5 + contrast_upper: 1.5 + hue_prob: 0.5 + hue_delta: 18 + saturation_prob: 0.5 + saturation_lower: 0.5 + saturation_upper: 1.5 + random_order_prob: 0.0 + } + expand_param { + prob: 0.5 + max_expand_ratio: 4.0 + } + } + data_param { + source: "examples/copter/copter_trainval_lmdb" + batch_size: 3 + backend: LMDB + } + annotated_data_param { + batch_sampler { + max_sample: 1 + max_trials: 1 + } + batch_sampler { + sampler { + min_scale: 0.3 + max_scale: 1.0 + min_aspect_ratio: 0.5 + max_aspect_ratio: 2.0 + } + sample_constraint { + min_jaccard_overlap: 0.1 + } + max_sample: 1 + max_trials: 50 + } + batch_sampler { + sampler { + min_scale: 0.3 + max_scale: 1.0 + min_aspect_ratio: 0.5 + max_aspect_ratio: 2.0 + } + sample_constraint { + min_jaccard_overlap: 0.3 + } + max_sample: 1 + max_trials: 50 + } + batch_sampler { + sampler { + min_scale: 0.3 + max_scale: 1.0 + min_aspect_ratio: 0.5 + max_aspect_ratio: 2.0 + } + sample_constraint { + min_jaccard_overlap: 0.5 + } + max_sample: 1 + max_trials: 50 + } + batch_sampler { + sampler { + min_scale: 0.3 + max_scale: 1.0 + min_aspect_ratio: 0.5 + max_aspect_ratio: 2.0 + } + sample_constraint { + min_jaccard_overlap: 0.7 + } + max_sample: 1 + max_trials: 50 + } + batch_sampler { + sampler { + min_scale: 0.3 + max_scale: 1.0 + min_aspect_ratio: 0.5 + max_aspect_ratio: 2.0 + } + sample_constraint { + min_jaccard_overlap: 0.9 + } + max_sample: 1 + max_trials: 50 + } + batch_sampler { + sampler { + min_scale: 0.3 + max_scale: 1.0 + min_aspect_ratio: 0.5 + max_aspect_ratio: 2.0 + } + sample_constraint { + max_jaccard_overlap: 1.0 + } + max_sample: 1 + max_trials: 50 + } + label_map_file: "data/copter/labelmap.prototxt" + } +} +layer { + name: "conv1" + type: "Convolution" + bottom: "data" + top: "conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 96 + kernel_size: 11 + stride: 4 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "relu1" + type: "ReLU" + bottom: "conv1" + top: "conv1" +} +layer { + name: "norm1" + type: "LRN" + bottom: "conv1" + top: "norm1" + lrn_param { + local_size: 5 + alpha: 0.0001 + beta: 0.75 + k: 2 + } +} +layer { + name: "pool1" + type: "Pooling" + bottom: "norm1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "conv2" + type: "Convolution" + bottom: "pool1" + top: "conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 256 + pad: 2 + kernel_size: 5 + group: 2 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "relu2" + type: "ReLU" + bottom: "conv2" + top: "conv2" +} +layer { + name: "norm2" + type: "LRN" + bottom: "conv2" + top: "norm2" + lrn_param { + local_size: 5 + alpha: 0.0001 + beta: 0.75 + k: 2 + } +} +layer { + name: "pool2" + type: "Pooling" + bottom: "norm2" + top: "pool2" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "conv3" + type: "Convolution" + bottom: "pool2" + top: "conv3" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "relu3" + type: "ReLU" + bottom: "conv3" + top: "conv3" +} +layer { + name: "conv4" + type: "Convolution" + bottom: "conv3" + top: "conv4" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + group: 2 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "relu4" + type: "ReLU" + bottom: "conv4" + top: "conv4" +} +layer { + name: "conv5" + type: "Convolution" + bottom: "conv4" + top: "conv5" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + group: 2 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "relu5" + type: "ReLU" + bottom: "conv5" + top: "conv5" +} +layer { + name: "pool5" + type: "Pooling" + bottom: "conv5" + top: "pool5" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + name: "fc6_conv" + type: "Convolution" + bottom: "pool5" + top: "fc6_conv" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 1024 + pad: 5 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + dilation: 5 + } +} +layer { + name: "relu6" + type: "ReLU" + bottom: "fc6_conv" + top: "fc6_conv" +} +layer { + name: "fc7_conv" + type: "Convolution" + bottom: "fc6_conv" + top: "fc7_conv" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 1024 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "relu7" + type: "ReLU" + bottom: "fc7_conv" + top: "fc7_conv" +} +layer { + name: "conv6_1" + type: "Convolution" + bottom: "fc7_conv" + top: "conv6_1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 256 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv6_1_relu" + type: "ReLU" + bottom: "conv6_1" + top: "conv6_1" +} +layer { + name: "conv6_2" + type: "Convolution" + bottom: "conv6_1" + top: "conv6_2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 512 + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv6_2_relu" + type: "ReLU" + bottom: "conv6_2" + top: "conv6_2" +} +layer { + name: "conv7_1" + type: "Convolution" + bottom: "conv6_2" + top: "conv7_1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv7_1_relu" + type: "ReLU" + bottom: "conv7_1" + top: "conv7_1" +} +layer { + name: "conv7_2" + type: "Convolution" + bottom: "conv7_1" + top: "conv7_2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv7_2_relu" + type: "ReLU" + bottom: "conv7_2" + top: "conv7_2" +} +layer { + name: "conv8_1" + type: "Convolution" + bottom: "conv7_2" + top: "conv8_1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv8_1_relu" + type: "ReLU" + bottom: "conv8_1" + top: "conv8_1" +} +layer { + name: "conv8_2" + type: "Convolution" + bottom: "conv8_1" + top: "conv8_2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 256 + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv8_2_relu" + type: "ReLU" + bottom: "conv8_2" + top: "conv8_2" +} +layer { + name: "conv9_1" + type: "Convolution" + bottom: "conv8_2" + top: "conv9_1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv9_1_relu" + type: "ReLU" + bottom: "conv9_1" + top: "conv9_1" +} +layer { + name: "conv9_2" + type: "Convolution" + bottom: "conv9_1" + top: "conv9_2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 256 + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv9_2_relu" + type: "ReLU" + bottom: "conv9_2" + top: "conv9_2" +} +layer { + name: "conv2_norm" + type: "Normalize" + bottom: "conv2" + top: "conv2_norm" + norm_param { + across_spatial: false + scale_filler { + type: "constant" + value: 20 + } + channel_shared: false + } +} +layer { + name: "conv2_norm_mbox_loc" + type: "Convolution" + bottom: "conv2_norm" + top: "conv2_norm_mbox_loc" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 16 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv2_norm_mbox_loc_perm" + type: "Permute" + bottom: "conv2_norm_mbox_loc" + top: "conv2_norm_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv2_norm_mbox_loc_flat" + type: "Flatten" + bottom: "conv2_norm_mbox_loc_perm" + top: "conv2_norm_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv2_norm_mbox_conf" + type: "Convolution" + bottom: "conv2_norm" + top: "conv2_norm_mbox_conf" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 8 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv2_norm_mbox_conf_perm" + type: "Permute" + bottom: "conv2_norm_mbox_conf" + top: "conv2_norm_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv2_norm_mbox_conf_flat" + type: "Flatten" + bottom: "conv2_norm_mbox_conf_perm" + top: "conv2_norm_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv2_norm_mbox_priorbox" + type: "PriorBox" + bottom: "conv2_norm" + bottom: "data" + top: "conv2_norm_mbox_priorbox" + prior_box_param { + min_size: 30.0 + max_size: 60.0 + aspect_ratio: 2 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 8 + offset: 0.5 + } +} +layer { + name: "fc6_conv_mbox_loc" + type: "Convolution" + bottom: "fc6_conv" + top: "fc6_conv_mbox_loc" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 24 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "fc6_conv_mbox_loc_perm" + type: "Permute" + bottom: "fc6_conv_mbox_loc" + top: "fc6_conv_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fc6_conv_mbox_loc_flat" + type: "Flatten" + bottom: "fc6_conv_mbox_loc_perm" + top: "fc6_conv_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fc6_conv_mbox_conf" + type: "Convolution" + bottom: "fc6_conv" + top: "fc6_conv_mbox_conf" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 12 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "fc6_conv_mbox_conf_perm" + type: "Permute" + bottom: "fc6_conv_mbox_conf" + top: "fc6_conv_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "fc6_conv_mbox_conf_flat" + type: "Flatten" + bottom: "fc6_conv_mbox_conf_perm" + top: "fc6_conv_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "fc6_conv_mbox_priorbox" + type: "PriorBox" + bottom: "fc6_conv" + bottom: "data" + top: "fc6_conv_mbox_priorbox" + prior_box_param { + min_size: 60.0 + max_size: 111.0 + aspect_ratio: 2 + aspect_ratio: 3 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 16 + offset: 0.5 + } +} +layer { + name: "conv6_2_mbox_loc" + type: "Convolution" + bottom: "conv6_2" + top: "conv6_2_mbox_loc" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 24 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv6_2_mbox_loc_perm" + type: "Permute" + bottom: "conv6_2_mbox_loc" + top: "conv6_2_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv6_2_mbox_loc_flat" + type: "Flatten" + bottom: "conv6_2_mbox_loc_perm" + top: "conv6_2_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv6_2_mbox_conf" + type: "Convolution" + bottom: "conv6_2" + top: "conv6_2_mbox_conf" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 12 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv6_2_mbox_conf_perm" + type: "Permute" + bottom: "conv6_2_mbox_conf" + top: "conv6_2_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv6_2_mbox_conf_flat" + type: "Flatten" + bottom: "conv6_2_mbox_conf_perm" + top: "conv6_2_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv6_2_mbox_priorbox" + type: "PriorBox" + bottom: "conv6_2" + bottom: "data" + top: "conv6_2_mbox_priorbox" + prior_box_param { + min_size: 111.0 + max_size: 162.0 + aspect_ratio: 2 + aspect_ratio: 3 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 32 + offset: 0.5 + } +} +layer { + name: "conv7_2_mbox_loc" + type: "Convolution" + bottom: "conv7_2" + top: "conv7_2_mbox_loc" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 24 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv7_2_mbox_loc_perm" + type: "Permute" + bottom: "conv7_2_mbox_loc" + top: "conv7_2_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv7_2_mbox_loc_flat" + type: "Flatten" + bottom: "conv7_2_mbox_loc_perm" + top: "conv7_2_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv7_2_mbox_conf" + type: "Convolution" + bottom: "conv7_2" + top: "conv7_2_mbox_conf" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 12 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv7_2_mbox_conf_perm" + type: "Permute" + bottom: "conv7_2_mbox_conf" + top: "conv7_2_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv7_2_mbox_conf_flat" + type: "Flatten" + bottom: "conv7_2_mbox_conf_perm" + top: "conv7_2_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv7_2_mbox_priorbox" + type: "PriorBox" + bottom: "conv7_2" + bottom: "data" + top: "conv7_2_mbox_priorbox" + prior_box_param { + min_size: 162.0 + max_size: 213.0 + aspect_ratio: 2 + aspect_ratio: 3 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 64 + offset: 0.5 + } +} +layer { + name: "conv8_2_mbox_loc" + type: "Convolution" + bottom: "conv8_2" + top: "conv8_2_mbox_loc" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 16 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv8_2_mbox_loc_perm" + type: "Permute" + bottom: "conv8_2_mbox_loc" + top: "conv8_2_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv8_2_mbox_loc_flat" + type: "Flatten" + bottom: "conv8_2_mbox_loc_perm" + top: "conv8_2_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv8_2_mbox_conf" + type: "Convolution" + bottom: "conv8_2" + top: "conv8_2_mbox_conf" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 8 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv8_2_mbox_conf_perm" + type: "Permute" + bottom: "conv8_2_mbox_conf" + top: "conv8_2_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv8_2_mbox_conf_flat" + type: "Flatten" + bottom: "conv8_2_mbox_conf_perm" + top: "conv8_2_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv8_2_mbox_priorbox" + type: "PriorBox" + bottom: "conv8_2" + bottom: "data" + top: "conv8_2_mbox_priorbox" + prior_box_param { + min_size: 213.0 + max_size: 264.0 + aspect_ratio: 2 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 100 + offset: 0.5 + } +} +layer { + name: "conv9_2_mbox_loc" + type: "Convolution" + bottom: "conv9_2" + top: "conv9_2_mbox_loc" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 16 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv9_2_mbox_loc_perm" + type: "Permute" + bottom: "conv9_2_mbox_loc" + top: "conv9_2_mbox_loc_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv9_2_mbox_loc_flat" + type: "Flatten" + bottom: "conv9_2_mbox_loc_perm" + top: "conv9_2_mbox_loc_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv9_2_mbox_conf" + type: "Convolution" + bottom: "conv9_2" + top: "conv9_2_mbox_conf" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 8 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "conv9_2_mbox_conf_perm" + type: "Permute" + bottom: "conv9_2_mbox_conf" + top: "conv9_2_mbox_conf_perm" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "conv9_2_mbox_conf_flat" + type: "Flatten" + bottom: "conv9_2_mbox_conf_perm" + top: "conv9_2_mbox_conf_flat" + flatten_param { + axis: 1 + } +} +layer { + name: "conv9_2_mbox_priorbox" + type: "PriorBox" + bottom: "conv9_2" + bottom: "data" + top: "conv9_2_mbox_priorbox" + prior_box_param { + min_size: 264.0 + max_size: 315.0 + aspect_ratio: 2 + flip: true + clip: false + variance: 0.1 + variance: 0.1 + variance: 0.2 + variance: 0.2 + step: 300 + offset: 0.5 + } +} +layer { + name: "mbox_loc" + type: "Concat" + bottom: "conv2_norm_mbox_loc_flat" + bottom: "fc6_conv_mbox_loc_flat" + bottom: "conv6_2_mbox_loc_flat" + bottom: "conv7_2_mbox_loc_flat" + bottom: "conv8_2_mbox_loc_flat" + bottom: "conv9_2_mbox_loc_flat" + top: "mbox_loc" + concat_param { + axis: 1 + } + } +layer { + name: "mbox_conf" + type: "Concat" + bottom: "conv2_norm_mbox_conf_flat" + bottom: "fc6_conv_mbox_conf_flat" + bottom: "conv6_2_mbox_conf_flat" + bottom: "conv7_2_mbox_conf_flat" + bottom: "conv8_2_mbox_conf_flat" + bottom: "conv9_2_mbox_conf_flat" + top: "mbox_conf" + concat_param { + axis: 1 + } + } +layer { + name: "mbox_priorbox" + type: "Concat" + bottom: "conv2_norm_mbox_priorbox" + bottom: "fc6_conv_mbox_priorbox" + bottom: "conv6_2_mbox_priorbox" + bottom: "conv7_2_mbox_priorbox" + bottom: "conv8_2_mbox_priorbox" + bottom: "conv9_2_mbox_priorbox" + top: "mbox_priorbox" + concat_param { + axis: 2 + } + } +layer { + name: "mbox_loss" + type: "MultiBoxLoss" + bottom: "mbox_loc" + bottom: "mbox_conf" + bottom: "mbox_priorbox" + bottom: "label" + top: "mbox_loss" + include { + phase: TRAIN + } + propagate_down: true + propagate_down: true + propagate_down: false + propagate_down: false + loss_param { + normalization: VALID + } + multibox_loss_param { + loc_loss_type: SMOOTH_L1 + conf_loss_type: SOFTMAX + loc_weight: 1.0 + num_classes: 2 + share_location: true + match_type: PER_PREDICTION + overlap_threshold: 0.5 + use_prior_for_matching: true + background_label_id: 0 + use_difficult_gt: true + neg_pos_ratio: 3.0 + neg_overlap: 0.5 + code_type: CENTER_SIZE + ignore_cross_boundary_bbox: false + mining_type: MAX_NEGATIVE + } +} +