diff options
author | Jeff Donahue <jeff.donahue@gmail.com> | 2015-02-05 15:17:24 -0800 |
---|---|---|
committer | Jeff Donahue <jeff.donahue@gmail.com> | 2015-02-05 15:17:24 -0800 |
commit | e6c80dac40d4bb13390b56bc18294e6e91b00436 (patch) | |
tree | ce9356561d9ac4270b14a71f2272b48c96cceb36 /models | |
parent | 11a4c1655842a625a8fbb93f8c8ccd3629321a3f (diff) | |
download | caffe-e6c80dac40d4bb13390b56bc18294e6e91b00436.tar.gz caffe-e6c80dac40d4bb13390b56bc18294e6e91b00436.tar.bz2 caffe-e6c80dac40d4bb13390b56bc18294e6e91b00436.zip |
Upgrade existing nets using upgrade_net_proto_text tool
Restore comments afterwards
Diffstat (limited to 'models')
-rw-r--r-- | models/bvlc_alexnet/deploy.prototxt | 248 | ||||
-rw-r--r-- | models/bvlc_alexnet/train_val.prototxt | 232 | ||||
-rw-r--r-- | models/bvlc_googlenet/deploy.prototxt | 1548 | ||||
-rw-r--r-- | models/bvlc_googlenet/train_val.prototxt | 1802 | ||||
-rw-r--r-- | models/bvlc_reference_caffenet/deploy.prototxt | 92 | ||||
-rw-r--r-- | models/bvlc_reference_caffenet/train_val.prototxt | 232 | ||||
-rw-r--r-- | models/bvlc_reference_rcnn_ilsvrc13/deploy.prototxt | 88 | ||||
-rw-r--r-- | models/finetune_flickr_style/deploy.prototxt | 192 | ||||
-rw-r--r-- | models/finetune_flickr_style/train_val.prototxt | 236 |
9 files changed, 2668 insertions, 2002 deletions
diff --git a/models/bvlc_alexnet/deploy.prototxt b/models/bvlc_alexnet/deploy.prototxt index d010753f..ced055b8 100644 --- a/models/bvlc_alexnet/deploy.prototxt +++ b/models/bvlc_alexnet/deploy.prototxt @@ -4,241 +4,273 @@ input_dim: 10 input_dim: 3 input_dim: 227 input_dim: 227 -layers { +layer { name: "conv1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + 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 } - bottom: "data" - top: "conv1" } -layers { +layer { name: "relu1" - type: RELU + type: "ReLU" bottom: "conv1" top: "conv1" } -layers { +layer { name: "norm1" - type: LRN + type: "LRN" + bottom: "conv1" + top: "norm1" lrn_param { local_size: 5 alpha: 0.0001 beta: 0.75 } - bottom: "conv1" - top: "norm1" } -layers { +layer { name: "pool1" - type: POOLING + type: "Pooling" + bottom: "norm1" + top: "pool1" pooling_param { pool: MAX kernel_size: 3 stride: 2 } - bottom: "norm1" - top: "pool1" } -layers { +layer { name: "conv2" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + 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 } - bottom: "pool1" - top: "conv2" } -layers { +layer { name: "relu2" - type: RELU + type: "ReLU" bottom: "conv2" top: "conv2" } -layers { +layer { name: "norm2" - type: LRN + type: "LRN" + bottom: "conv2" + top: "norm2" lrn_param { local_size: 5 alpha: 0.0001 beta: 0.75 } - bottom: "conv2" - top: "norm2" } -layers { +layer { name: "pool2" - type: POOLING + type: "Pooling" + bottom: "norm2" + top: "pool2" pooling_param { pool: MAX kernel_size: 3 stride: 2 } - bottom: "norm2" - top: "pool2" } -layers { +layer { name: "conv3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + 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 } - bottom: "pool2" - top: "conv3" } -layers { +layer { name: "relu3" - type: RELU + type: "ReLU" bottom: "conv3" top: "conv3" } -layers { +layer { name: "conv4" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + 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 } - bottom: "conv3" - top: "conv4" } -layers { +layer { name: "relu4" - type: RELU + type: "ReLU" bottom: "conv4" top: "conv4" } -layers { +layer { name: "conv5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + 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 } - bottom: "conv4" - top: "conv5" } -layers { +layer { name: "relu5" - type: RELU + type: "ReLU" bottom: "conv5" top: "conv5" } -layers { +layer { name: "pool5" - type: POOLING + type: "Pooling" + bottom: "conv5" + top: "pool5" pooling_param { pool: MAX kernel_size: 3 stride: 2 } - bottom: "conv5" - top: "pool5" } -layers { +layer { name: "fc6" - type: INNER_PRODUCT - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + type: "InnerProduct" + bottom: "pool5" + top: "fc6" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 4096 } - bottom: "pool5" - top: "fc6" } -layers { +layer { name: "relu6" - type: RELU + type: "ReLU" bottom: "fc6" top: "fc6" } -layers { +layer { name: "drop6" - type: DROPOUT + type: "Dropout" + bottom: "fc6" + top: "fc6" dropout_param { dropout_ratio: 0.5 } - bottom: "fc6" - top: "fc6" } -layers { +layer { name: "fc7" - type: INNER_PRODUCT - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + type: "InnerProduct" + bottom: "fc6" + top: "fc7" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 4096 } - bottom: "fc6" - top: "fc7" } -layers { +layer { name: "relu7" - type: RELU + type: "ReLU" bottom: "fc7" top: "fc7" } -layers { +layer { name: "drop7" - type: DROPOUT + type: "Dropout" + bottom: "fc7" + top: "fc7" dropout_param { dropout_ratio: 0.5 } - bottom: "fc7" - top: "fc7" } -layers { +layer { name: "fc8" - type: INNER_PRODUCT - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + type: "InnerProduct" + bottom: "fc7" + top: "fc8" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 1000 } - bottom: "fc7" - top: "fc8" } -layers { +layer { name: "prob" - type: SOFTMAX + type: "Softmax" bottom: "fc8" top: "prob" } diff --git a/models/bvlc_alexnet/train_val.prototxt b/models/bvlc_alexnet/train_val.prototxt index 717b6fa4..588b4ea7 100644 --- a/models/bvlc_alexnet/train_val.prototxt +++ b/models/bvlc_alexnet/train_val.prototxt @@ -1,47 +1,55 @@ name: "AlexNet" -layers { +layer { name: "data" - type: DATA + type: "Data" top: "data" top: "label" - data_param { - source: "examples/imagenet/ilsvrc12_train_lmdb" - backend: LMDB - batch_size: 256 + include { + phase: TRAIN } transform_param { + mirror: true crop_size: 227 mean_file: "data/ilsvrc12/imagenet_mean.binaryproto" - mirror: true } - include: { phase: TRAIN } + data_param { + source: "examples/imagenet/ilsvrc12_train_lmdb" + batch_size: 256 + backend: LMDB + } } -layers { +layer { name: "data" - type: DATA + type: "Data" top: "data" top: "label" - data_param { - source: "examples/imagenet/ilsvrc12_val_lmdb" - backend: LMDB - batch_size: 50 + include { + phase: TEST } transform_param { + mirror: false crop_size: 227 mean_file: "data/ilsvrc12/imagenet_mean.binaryproto" - mirror: false } - include: { phase: TEST } + data_param { + source: "examples/imagenet/ilsvrc12_val_lmdb" + batch_size: 50 + backend: LMDB + } } -layers { +layer { name: "conv1" - type: CONVOLUTION + type: "Convolution" bottom: "data" top: "conv1" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 96 kernel_size: 11 @@ -56,15 +64,15 @@ layers { } } } -layers { +layer { name: "relu1" - type: RELU + type: "ReLU" bottom: "conv1" top: "conv1" } -layers { +layer { name: "norm1" - type: LRN + type: "LRN" bottom: "conv1" top: "norm1" lrn_param { @@ -73,9 +81,9 @@ layers { beta: 0.75 } } -layers { +layer { name: "pool1" - type: POOLING + type: "Pooling" bottom: "norm1" top: "pool1" pooling_param { @@ -84,15 +92,19 @@ layers { stride: 2 } } -layers { +layer { name: "conv2" - type: CONVOLUTION + type: "Convolution" bottom: "pool1" top: "conv2" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 256 pad: 2 @@ -108,15 +120,15 @@ layers { } } } -layers { +layer { name: "relu2" - type: RELU + type: "ReLU" bottom: "conv2" top: "conv2" } -layers { +layer { name: "norm2" - type: LRN + type: "LRN" bottom: "conv2" top: "norm2" lrn_param { @@ -125,9 +137,9 @@ layers { beta: 0.75 } } -layers { +layer { name: "pool2" - type: POOLING + type: "Pooling" bottom: "norm2" top: "pool2" pooling_param { @@ -136,15 +148,19 @@ layers { stride: 2 } } -layers { +layer { name: "conv3" - type: CONVOLUTION + type: "Convolution" bottom: "pool2" top: "conv3" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 384 pad: 1 @@ -159,21 +175,25 @@ layers { } } } -layers { +layer { name: "relu3" - type: RELU + type: "ReLU" bottom: "conv3" top: "conv3" } -layers { +layer { name: "conv4" - type: CONVOLUTION + type: "Convolution" bottom: "conv3" top: "conv4" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 384 pad: 1 @@ -189,21 +209,25 @@ layers { } } } -layers { +layer { name: "relu4" - type: RELU + type: "ReLU" bottom: "conv4" top: "conv4" } -layers { +layer { name: "conv5" - type: CONVOLUTION + type: "Convolution" bottom: "conv4" top: "conv5" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 256 pad: 1 @@ -219,15 +243,15 @@ layers { } } } -layers { +layer { name: "relu5" - type: RELU + type: "ReLU" bottom: "conv5" top: "conv5" } -layers { +layer { name: "pool5" - type: POOLING + type: "Pooling" bottom: "conv5" top: "pool5" pooling_param { @@ -236,15 +260,19 @@ layers { stride: 2 } } -layers { +layer { name: "fc6" - type: INNER_PRODUCT + type: "InnerProduct" bottom: "pool5" top: "fc6" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 4096 weight_filler { @@ -257,30 +285,34 @@ layers { } } } -layers { +layer { name: "relu6" - type: RELU + type: "ReLU" bottom: "fc6" top: "fc6" } -layers { +layer { name: "drop6" - type: DROPOUT + type: "Dropout" bottom: "fc6" top: "fc6" dropout_param { dropout_ratio: 0.5 } } -layers { +layer { name: "fc7" - type: INNER_PRODUCT + type: "InnerProduct" bottom: "fc6" top: "fc7" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 4096 weight_filler { @@ -293,30 +325,34 @@ layers { } } } -layers { +layer { name: "relu7" - type: RELU + type: "ReLU" bottom: "fc7" top: "fc7" } -layers { +layer { name: "drop7" - type: DROPOUT + type: "Dropout" bottom: "fc7" top: "fc7" dropout_param { dropout_ratio: 0.5 } } -layers { +layer { name: "fc8" - type: INNER_PRODUCT + type: "InnerProduct" bottom: "fc7" top: "fc8" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 1000 weight_filler { @@ -329,17 +365,19 @@ layers { } } } -layers { +layer { name: "accuracy" - type: ACCURACY + type: "Accuracy" bottom: "fc8" bottom: "label" top: "accuracy" - include: { phase: TEST } + include { + phase: TEST + } } -layers { +layer { name: "loss" - type: SOFTMAX_LOSS + type: "SoftmaxWithLoss" bottom: "fc8" bottom: "label" top: "loss" diff --git a/models/bvlc_googlenet/deploy.prototxt b/models/bvlc_googlenet/deploy.prototxt index e31a4c9c..4648bf26 100644 --- a/models/bvlc_googlenet/deploy.prototxt +++ b/models/bvlc_googlenet/deploy.prototxt @@ -4,15 +4,19 @@ input_dim: 10 input_dim: 3 input_dim: 224 input_dim: 224 -layers { +layer { + name: "conv1/7x7_s2" + type: "Convolution" bottom: "data" top: "conv1/7x7_s2" - name: "conv1/7x7_s2" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 pad: 3 @@ -28,43 +32,47 @@ layers { } } } -layers { +layer { + name: "conv1/relu_7x7" + type: "ReLU" bottom: "conv1/7x7_s2" top: "conv1/7x7_s2" - name: "conv1/relu_7x7" - type: RELU } -layers { +layer { + name: "pool1/3x3_s2" + type: "Pooling" bottom: "conv1/7x7_s2" top: "pool1/3x3_s2" - name: "pool1/3x3_s2" - type: POOLING pooling_param { pool: MAX kernel_size: 3 stride: 2 } } -layers { +layer { + name: "pool1/norm1" + type: "LRN" bottom: "pool1/3x3_s2" top: "pool1/norm1" - name: "pool1/norm1" - type: LRN lrn_param { local_size: 5 alpha: 0.0001 beta: 0.75 } } -layers { +layer { + name: "conv2/3x3_reduce" + type: "Convolution" bottom: "pool1/norm1" top: "conv2/3x3_reduce" - name: "conv2/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 kernel_size: 1 @@ -78,21 +86,25 @@ layers { } } } -layers { +layer { + name: "conv2/relu_3x3_reduce" + type: "ReLU" bottom: "conv2/3x3_reduce" top: "conv2/3x3_reduce" - name: "conv2/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "conv2/3x3" + type: "Convolution" bottom: "conv2/3x3_reduce" top: "conv2/3x3" - name: "conv2/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 192 pad: 1 @@ -107,43 +119,47 @@ layers { } } } -layers { +layer { + name: "conv2/relu_3x3" + type: "ReLU" bottom: "conv2/3x3" top: "conv2/3x3" - name: "conv2/relu_3x3" - type: RELU } -layers { +layer { + name: "conv2/norm2" + type: "LRN" bottom: "conv2/3x3" top: "conv2/norm2" - name: "conv2/norm2" - type: LRN lrn_param { local_size: 5 alpha: 0.0001 beta: 0.75 } } -layers { +layer { + name: "pool2/3x3_s2" + type: "Pooling" bottom: "conv2/norm2" top: "pool2/3x3_s2" - name: "pool2/3x3_s2" - type: POOLING pooling_param { pool: MAX kernel_size: 3 stride: 2 } } -layers { +layer { + name: "inception_3a/1x1" + type: "Convolution" bottom: "pool2/3x3_s2" top: "inception_3a/1x1" - name: "inception_3a/1x1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 kernel_size: 1 @@ -157,21 +173,25 @@ layers { } } } -layers { +layer { + name: "inception_3a/relu_1x1" + type: "ReLU" bottom: "inception_3a/1x1" top: "inception_3a/1x1" - name: "inception_3a/relu_1x1" - type: RELU } -layers { +layer { + name: "inception_3a/3x3_reduce" + type: "Convolution" bottom: "pool2/3x3_s2" top: "inception_3a/3x3_reduce" - name: "inception_3a/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 96 kernel_size: 1 @@ -185,21 +205,25 @@ layers { } } } -layers { +layer { + name: "inception_3a/relu_3x3_reduce" + type: "ReLU" bottom: "inception_3a/3x3_reduce" top: "inception_3a/3x3_reduce" - name: "inception_3a/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "inception_3a/3x3" + type: "Convolution" bottom: "inception_3a/3x3_reduce" top: "inception_3a/3x3" - name: "inception_3a/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 pad: 1 @@ -214,21 +238,25 @@ layers { } } } -layers { +layer { + name: "inception_3a/relu_3x3" + type: "ReLU" bottom: "inception_3a/3x3" top: "inception_3a/3x3" - name: "inception_3a/relu_3x3" - type: RELU } -layers { +layer { + name: "inception_3a/5x5_reduce" + type: "Convolution" bottom: "pool2/3x3_s2" top: "inception_3a/5x5_reduce" - name: "inception_3a/5x5_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 16 kernel_size: 1 @@ -242,21 +270,25 @@ layers { } } } -layers { +layer { + name: "inception_3a/relu_5x5_reduce" + type: "ReLU" bottom: "inception_3a/5x5_reduce" top: "inception_3a/5x5_reduce" - name: "inception_3a/relu_5x5_reduce" - type: RELU } -layers { +layer { + name: "inception_3a/5x5" + type: "Convolution" bottom: "inception_3a/5x5_reduce" top: "inception_3a/5x5" - name: "inception_3a/5x5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 32 pad: 2 @@ -271,17 +303,17 @@ layers { } } } -layers { +layer { + name: "inception_3a/relu_5x5" + type: "ReLU" bottom: "inception_3a/5x5" top: "inception_3a/5x5" - name: "inception_3a/relu_5x5" - type: RELU } -layers { +layer { + name: "inception_3a/pool" + type: "Pooling" bottom: "pool2/3x3_s2" top: "inception_3a/pool" - name: "inception_3a/pool" - type: POOLING pooling_param { pool: MAX kernel_size: 3 @@ -289,15 +321,19 @@ layers { pad: 1 } } -layers { +layer { + name: "inception_3a/pool_proj" + type: "Convolution" bottom: "inception_3a/pool" top: "inception_3a/pool_proj" - name: "inception_3a/pool_proj" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 32 kernel_size: 1 @@ -311,30 +347,34 @@ layers { } } } -layers { +layer { + name: "inception_3a/relu_pool_proj" + type: "ReLU" bottom: "inception_3a/pool_proj" top: "inception_3a/pool_proj" - name: "inception_3a/relu_pool_proj" - type: RELU } -layers { +layer { + name: "inception_3a/output" + type: "Concat" bottom: "inception_3a/1x1" bottom: "inception_3a/3x3" bottom: "inception_3a/5x5" bottom: "inception_3a/pool_proj" top: "inception_3a/output" - name: "inception_3a/output" - type: CONCAT } -layers { +layer { + name: "inception_3b/1x1" + type: "Convolution" bottom: "inception_3a/output" top: "inception_3b/1x1" - name: "inception_3b/1x1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 kernel_size: 1 @@ -348,21 +388,25 @@ layers { } } } -layers { +layer { + name: "inception_3b/relu_1x1" + type: "ReLU" bottom: "inception_3b/1x1" top: "inception_3b/1x1" - name: "inception_3b/relu_1x1" - type: RELU } -layers { +layer { + name: "inception_3b/3x3_reduce" + type: "Convolution" bottom: "inception_3a/output" top: "inception_3b/3x3_reduce" - name: "inception_3b/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 kernel_size: 1 @@ -376,21 +420,25 @@ layers { } } } -layers { +layer { + name: "inception_3b/relu_3x3_reduce" + type: "ReLU" bottom: "inception_3b/3x3_reduce" top: "inception_3b/3x3_reduce" - name: "inception_3b/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "inception_3b/3x3" + type: "Convolution" bottom: "inception_3b/3x3_reduce" top: "inception_3b/3x3" - name: "inception_3b/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 192 pad: 1 @@ -405,21 +453,25 @@ layers { } } } -layers { +layer { + name: "inception_3b/relu_3x3" + type: "ReLU" bottom: "inception_3b/3x3" top: "inception_3b/3x3" - name: "inception_3b/relu_3x3" - type: RELU } -layers { +layer { + name: "inception_3b/5x5_reduce" + type: "Convolution" bottom: "inception_3a/output" top: "inception_3b/5x5_reduce" - name: "inception_3b/5x5_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 32 kernel_size: 1 @@ -433,21 +485,25 @@ layers { } } } -layers { +layer { + name: "inception_3b/relu_5x5_reduce" + type: "ReLU" bottom: "inception_3b/5x5_reduce" top: "inception_3b/5x5_reduce" - name: "inception_3b/relu_5x5_reduce" - type: RELU } -layers { +layer { + name: "inception_3b/5x5" + type: "Convolution" bottom: "inception_3b/5x5_reduce" top: "inception_3b/5x5" - name: "inception_3b/5x5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 96 pad: 2 @@ -462,17 +518,17 @@ layers { } } } -layers { +layer { + name: "inception_3b/relu_5x5" + type: "ReLU" bottom: "inception_3b/5x5" top: "inception_3b/5x5" - name: "inception_3b/relu_5x5" - type: RELU } -layers { +layer { + name: "inception_3b/pool" + type: "Pooling" bottom: "inception_3a/output" top: "inception_3b/pool" - name: "inception_3b/pool" - type: POOLING pooling_param { pool: MAX kernel_size: 3 @@ -480,15 +536,19 @@ layers { pad: 1 } } -layers { +layer { + name: "inception_3b/pool_proj" + type: "Convolution" bottom: "inception_3b/pool" top: "inception_3b/pool_proj" - name: "inception_3b/pool_proj" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 kernel_size: 1 @@ -502,41 +562,45 @@ layers { } } } -layers { +layer { + name: "inception_3b/relu_pool_proj" + type: "ReLU" bottom: "inception_3b/pool_proj" top: "inception_3b/pool_proj" - name: "inception_3b/relu_pool_proj" - type: RELU } -layers { +layer { + name: "inception_3b/output" + type: "Concat" bottom: "inception_3b/1x1" bottom: "inception_3b/3x3" bottom: "inception_3b/5x5" bottom: "inception_3b/pool_proj" top: "inception_3b/output" - name: "inception_3b/output" - type: CONCAT } -layers { +layer { + name: "pool3/3x3_s2" + type: "Pooling" bottom: "inception_3b/output" top: "pool3/3x3_s2" - name: "pool3/3x3_s2" - type: POOLING pooling_param { pool: MAX kernel_size: 3 stride: 2 } } -layers { +layer { + name: "inception_4a/1x1" + type: "Convolution" bottom: "pool3/3x3_s2" top: "inception_4a/1x1" - name: "inception_4a/1x1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 192 kernel_size: 1 @@ -550,21 +614,25 @@ layers { } } } -layers { +layer { + name: "inception_4a/relu_1x1" + type: "ReLU" bottom: "inception_4a/1x1" top: "inception_4a/1x1" - name: "inception_4a/relu_1x1" - type: RELU } -layers { +layer { + name: "inception_4a/3x3_reduce" + type: "Convolution" bottom: "pool3/3x3_s2" top: "inception_4a/3x3_reduce" - name: "inception_4a/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 96 kernel_size: 1 @@ -578,21 +646,25 @@ layers { } } } -layers { +layer { + name: "inception_4a/relu_3x3_reduce" + type: "ReLU" bottom: "inception_4a/3x3_reduce" top: "inception_4a/3x3_reduce" - name: "inception_4a/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "inception_4a/3x3" + type: "Convolution" bottom: "inception_4a/3x3_reduce" top: "inception_4a/3x3" - name: "inception_4a/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 208 pad: 1 @@ -607,21 +679,25 @@ layers { } } } -layers { +layer { + name: "inception_4a/relu_3x3" + type: "ReLU" bottom: "inception_4a/3x3" top: "inception_4a/3x3" - name: "inception_4a/relu_3x3" - type: RELU } -layers { +layer { + name: "inception_4a/5x5_reduce" + type: "Convolution" bottom: "pool3/3x3_s2" top: "inception_4a/5x5_reduce" - name: "inception_4a/5x5_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 16 kernel_size: 1 @@ -635,21 +711,25 @@ layers { } } } -layers { +layer { + name: "inception_4a/relu_5x5_reduce" + type: "ReLU" bottom: "inception_4a/5x5_reduce" top: "inception_4a/5x5_reduce" - name: "inception_4a/relu_5x5_reduce" - type: RELU } -layers { +layer { + name: "inception_4a/5x5" + type: "Convolution" bottom: "inception_4a/5x5_reduce" top: "inception_4a/5x5" - name: "inception_4a/5x5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 48 pad: 2 @@ -664,17 +744,17 @@ layers { } } } -layers { +layer { + name: "inception_4a/relu_5x5" + type: "ReLU" bottom: "inception_4a/5x5" top: "inception_4a/5x5" - name: "inception_4a/relu_5x5" - type: RELU } -layers { +layer { + name: "inception_4a/pool" + type: "Pooling" bottom: "pool3/3x3_s2" top: "inception_4a/pool" - name: "inception_4a/pool" - type: POOLING pooling_param { pool: MAX kernel_size: 3 @@ -682,15 +762,19 @@ layers { pad: 1 } } -layers { +layer { + name: "inception_4a/pool_proj" + type: "Convolution" bottom: "inception_4a/pool" top: "inception_4a/pool_proj" - name: "inception_4a/pool_proj" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 kernel_size: 1 @@ -704,30 +788,34 @@ layers { } } } -layers { +layer { + name: "inception_4a/relu_pool_proj" + type: "ReLU" bottom: "inception_4a/pool_proj" top: "inception_4a/pool_proj" - name: "inception_4a/relu_pool_proj" - type: RELU } -layers { +layer { + name: "inception_4a/output" + type: "Concat" bottom: "inception_4a/1x1" bottom: "inception_4a/3x3" bottom: "inception_4a/5x5" bottom: "inception_4a/pool_proj" top: "inception_4a/output" - name: "inception_4a/output" - type: CONCAT } -layers { +layer { + name: "inception_4b/1x1" + type: "Convolution" bottom: "inception_4a/output" top: "inception_4b/1x1" - name: "inception_4b/1x1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 160 kernel_size: 1 @@ -741,21 +829,25 @@ layers { } } } -layers { +layer { + name: "inception_4b/relu_1x1" + type: "ReLU" bottom: "inception_4b/1x1" top: "inception_4b/1x1" - name: "inception_4b/relu_1x1" - type: RELU } -layers { +layer { + name: "inception_4b/3x3_reduce" + type: "Convolution" bottom: "inception_4a/output" top: "inception_4b/3x3_reduce" - name: "inception_4b/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 112 kernel_size: 1 @@ -769,21 +861,25 @@ layers { } } } -layers { +layer { + name: "inception_4b/relu_3x3_reduce" + type: "ReLU" bottom: "inception_4b/3x3_reduce" top: "inception_4b/3x3_reduce" - name: "inception_4b/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "inception_4b/3x3" + type: "Convolution" bottom: "inception_4b/3x3_reduce" top: "inception_4b/3x3" - name: "inception_4b/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 224 pad: 1 @@ -798,21 +894,25 @@ layers { } } } -layers { +layer { + name: "inception_4b/relu_3x3" + type: "ReLU" bottom: "inception_4b/3x3" top: "inception_4b/3x3" - name: "inception_4b/relu_3x3" - type: RELU } -layers { +layer { + name: "inception_4b/5x5_reduce" + type: "Convolution" bottom: "inception_4a/output" top: "inception_4b/5x5_reduce" - name: "inception_4b/5x5_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 24 kernel_size: 1 @@ -826,21 +926,25 @@ layers { } } } -layers { +layer { + name: "inception_4b/relu_5x5_reduce" + type: "ReLU" bottom: "inception_4b/5x5_reduce" top: "inception_4b/5x5_reduce" - name: "inception_4b/relu_5x5_reduce" - type: RELU } -layers { +layer { + name: "inception_4b/5x5" + type: "Convolution" bottom: "inception_4b/5x5_reduce" top: "inception_4b/5x5" - name: "inception_4b/5x5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 pad: 2 @@ -855,17 +959,17 @@ layers { } } } -layers { +layer { + name: "inception_4b/relu_5x5" + type: "ReLU" bottom: "inception_4b/5x5" top: "inception_4b/5x5" - name: "inception_4b/relu_5x5" - type: RELU } -layers { +layer { + name: "inception_4b/pool" + type: "Pooling" bottom: "inception_4a/output" top: "inception_4b/pool" - name: "inception_4b/pool" - type: POOLING pooling_param { pool: MAX kernel_size: 3 @@ -873,15 +977,19 @@ layers { pad: 1 } } -layers { +layer { + name: "inception_4b/pool_proj" + type: "Convolution" bottom: "inception_4b/pool" top: "inception_4b/pool_proj" - name: "inception_4b/pool_proj" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 kernel_size: 1 @@ -895,30 +1003,34 @@ layers { } } } -layers { +layer { + name: "inception_4b/relu_pool_proj" + type: "ReLU" bottom: "inception_4b/pool_proj" top: "inception_4b/pool_proj" - name: "inception_4b/relu_pool_proj" - type: RELU } -layers { +layer { + name: "inception_4b/output" + type: "Concat" bottom: "inception_4b/1x1" bottom: "inception_4b/3x3" bottom: "inception_4b/5x5" bottom: "inception_4b/pool_proj" top: "inception_4b/output" - name: "inception_4b/output" - type: CONCAT } -layers { +layer { + name: "inception_4c/1x1" + type: "Convolution" bottom: "inception_4b/output" top: "inception_4c/1x1" - name: "inception_4c/1x1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 kernel_size: 1 @@ -932,21 +1044,25 @@ layers { } } } -layers { +layer { + name: "inception_4c/relu_1x1" + type: "ReLU" bottom: "inception_4c/1x1" top: "inception_4c/1x1" - name: "inception_4c/relu_1x1" - type: RELU } -layers { +layer { + name: "inception_4c/3x3_reduce" + type: "Convolution" bottom: "inception_4b/output" top: "inception_4c/3x3_reduce" - name: "inception_4c/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 kernel_size: 1 @@ -960,21 +1076,25 @@ layers { } } } -layers { +layer { + name: "inception_4c/relu_3x3_reduce" + type: "ReLU" bottom: "inception_4c/3x3_reduce" top: "inception_4c/3x3_reduce" - name: "inception_4c/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "inception_4c/3x3" + type: "Convolution" bottom: "inception_4c/3x3_reduce" top: "inception_4c/3x3" - name: "inception_4c/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 256 pad: 1 @@ -989,21 +1109,25 @@ layers { } } } -layers { +layer { + name: "inception_4c/relu_3x3" + type: "ReLU" bottom: "inception_4c/3x3" top: "inception_4c/3x3" - name: "inception_4c/relu_3x3" - type: RELU } -layers { +layer { + name: "inception_4c/5x5_reduce" + type: "Convolution" bottom: "inception_4b/output" top: "inception_4c/5x5_reduce" - name: "inception_4c/5x5_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 24 kernel_size: 1 @@ -1017,21 +1141,25 @@ layers { } } } -layers { +layer { + name: "inception_4c/relu_5x5_reduce" + type: "ReLU" bottom: "inception_4c/5x5_reduce" top: "inception_4c/5x5_reduce" - name: "inception_4c/relu_5x5_reduce" - type: RELU } -layers { +layer { + name: "inception_4c/5x5" + type: "Convolution" bottom: "inception_4c/5x5_reduce" top: "inception_4c/5x5" - name: "inception_4c/5x5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 pad: 2 @@ -1046,17 +1174,17 @@ layers { } } } -layers { +layer { + name: "inception_4c/relu_5x5" + type: "ReLU" bottom: "inception_4c/5x5" top: "inception_4c/5x5" - name: "inception_4c/relu_5x5" - type: RELU } -layers { +layer { + name: "inception_4c/pool" + type: "Pooling" bottom: "inception_4b/output" top: "inception_4c/pool" - name: "inception_4c/pool" - type: POOLING pooling_param { pool: MAX kernel_size: 3 @@ -1064,15 +1192,19 @@ layers { pad: 1 } } -layers { +layer { + name: "inception_4c/pool_proj" + type: "Convolution" bottom: "inception_4c/pool" top: "inception_4c/pool_proj" - name: "inception_4c/pool_proj" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 kernel_size: 1 @@ -1086,30 +1218,34 @@ layers { } } } -layers { +layer { + name: "inception_4c/relu_pool_proj" + type: "ReLU" bottom: "inception_4c/pool_proj" top: "inception_4c/pool_proj" - name: "inception_4c/relu_pool_proj" - type: RELU } -layers { +layer { + name: "inception_4c/output" + type: "Concat" bottom: "inception_4c/1x1" bottom: "inception_4c/3x3" bottom: "inception_4c/5x5" bottom: "inception_4c/pool_proj" top: "inception_4c/output" - name: "inception_4c/output" - type: CONCAT } -layers { +layer { + name: "inception_4d/1x1" + type: "Convolution" bottom: "inception_4c/output" top: "inception_4d/1x1" - name: "inception_4d/1x1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 112 kernel_size: 1 @@ -1123,21 +1259,25 @@ layers { } } } -layers { +layer { + name: "inception_4d/relu_1x1" + type: "ReLU" bottom: "inception_4d/1x1" top: "inception_4d/1x1" - name: "inception_4d/relu_1x1" - type: RELU } -layers { +layer { + name: "inception_4d/3x3_reduce" + type: "Convolution" bottom: "inception_4c/output" top: "inception_4d/3x3_reduce" - name: "inception_4d/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 144 kernel_size: 1 @@ -1151,21 +1291,25 @@ layers { } } } -layers { +layer { + name: "inception_4d/relu_3x3_reduce" + type: "ReLU" bottom: "inception_4d/3x3_reduce" top: "inception_4d/3x3_reduce" - name: "inception_4d/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "inception_4d/3x3" + type: "Convolution" bottom: "inception_4d/3x3_reduce" top: "inception_4d/3x3" - name: "inception_4d/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 288 pad: 1 @@ -1180,21 +1324,25 @@ layers { } } } -layers { +layer { + name: "inception_4d/relu_3x3" + type: "ReLU" bottom: "inception_4d/3x3" top: "inception_4d/3x3" - name: "inception_4d/relu_3x3" - type: RELU } -layers { +layer { + name: "inception_4d/5x5_reduce" + type: "Convolution" bottom: "inception_4c/output" top: "inception_4d/5x5_reduce" - name: "inception_4d/5x5_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 32 kernel_size: 1 @@ -1208,21 +1356,25 @@ layers { } } } -layers { +layer { + name: "inception_4d/relu_5x5_reduce" + type: "ReLU" bottom: "inception_4d/5x5_reduce" top: "inception_4d/5x5_reduce" - name: "inception_4d/relu_5x5_reduce" - type: RELU } -layers { +layer { + name: "inception_4d/5x5" + type: "Convolution" bottom: "inception_4d/5x5_reduce" top: "inception_4d/5x5" - name: "inception_4d/5x5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 pad: 2 @@ -1237,17 +1389,17 @@ layers { } } } -layers { +layer { + name: "inception_4d/relu_5x5" + type: "ReLU" bottom: "inception_4d/5x5" top: "inception_4d/5x5" - name: "inception_4d/relu_5x5" - type: RELU } -layers { +layer { + name: "inception_4d/pool" + type: "Pooling" bottom: "inception_4c/output" top: "inception_4d/pool" - name: "inception_4d/pool" - type: POOLING pooling_param { pool: MAX kernel_size: 3 @@ -1255,15 +1407,19 @@ layers { pad: 1 } } -layers { +layer { + name: "inception_4d/pool_proj" + type: "Convolution" bottom: "inception_4d/pool" top: "inception_4d/pool_proj" - name: "inception_4d/pool_proj" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 kernel_size: 1 @@ -1277,30 +1433,34 @@ layers { } } } -layers { +layer { + name: "inception_4d/relu_pool_proj" + type: "ReLU" bottom: "inception_4d/pool_proj" top: "inception_4d/pool_proj" - name: "inception_4d/relu_pool_proj" - type: RELU } -layers { +layer { + name: "inception_4d/output" + type: "Concat" bottom: "inception_4d/1x1" bottom: "inception_4d/3x3" bottom: "inception_4d/5x5" bottom: "inception_4d/pool_proj" top: "inception_4d/output" - name: "inception_4d/output" - type: CONCAT } -layers { +layer { + name: "inception_4e/1x1" + type: "Convolution" bottom: "inception_4d/output" top: "inception_4e/1x1" - name: "inception_4e/1x1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 256 kernel_size: 1 @@ -1314,21 +1474,25 @@ layers { } } } -layers { +layer { + name: "inception_4e/relu_1x1" + type: "ReLU" bottom: "inception_4e/1x1" top: "inception_4e/1x1" - name: "inception_4e/relu_1x1" - type: RELU } -layers { +layer { + name: "inception_4e/3x3_reduce" + type: "Convolution" bottom: "inception_4d/output" top: "inception_4e/3x3_reduce" - name: "inception_4e/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 160 kernel_size: 1 @@ -1342,21 +1506,25 @@ layers { } } } -layers { +layer { + name: "inception_4e/relu_3x3_reduce" + type: "ReLU" bottom: "inception_4e/3x3_reduce" top: "inception_4e/3x3_reduce" - name: "inception_4e/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "inception_4e/3x3" + type: "Convolution" bottom: "inception_4e/3x3_reduce" top: "inception_4e/3x3" - name: "inception_4e/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 320 pad: 1 @@ -1371,21 +1539,25 @@ layers { } } } -layers { +layer { + name: "inception_4e/relu_3x3" + type: "ReLU" bottom: "inception_4e/3x3" top: "inception_4e/3x3" - name: "inception_4e/relu_3x3" - type: RELU } -layers { +layer { + name: "inception_4e/5x5_reduce" + type: "Convolution" bottom: "inception_4d/output" top: "inception_4e/5x5_reduce" - name: "inception_4e/5x5_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 32 kernel_size: 1 @@ -1399,21 +1571,25 @@ layers { } } } -layers { +layer { + name: "inception_4e/relu_5x5_reduce" + type: "ReLU" bottom: "inception_4e/5x5_reduce" top: "inception_4e/5x5_reduce" - name: "inception_4e/relu_5x5_reduce" - type: RELU } -layers { +layer { + name: "inception_4e/5x5" + type: "Convolution" bottom: "inception_4e/5x5_reduce" top: "inception_4e/5x5" - name: "inception_4e/5x5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 pad: 2 @@ -1428,17 +1604,17 @@ layers { } } } -layers { +layer { + name: "inception_4e/relu_5x5" + type: "ReLU" bottom: "inception_4e/5x5" top: "inception_4e/5x5" - name: "inception_4e/relu_5x5" - type: RELU } -layers { +layer { + name: "inception_4e/pool" + type: "Pooling" bottom: "inception_4d/output" top: "inception_4e/pool" - name: "inception_4e/pool" - type: POOLING pooling_param { pool: MAX kernel_size: 3 @@ -1446,15 +1622,19 @@ layers { pad: 1 } } -layers { +layer { + name: "inception_4e/pool_proj" + type: "Convolution" bottom: "inception_4e/pool" top: "inception_4e/pool_proj" - name: "inception_4e/pool_proj" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 kernel_size: 1 @@ -1468,41 +1648,45 @@ layers { } } } -layers { +layer { + name: "inception_4e/relu_pool_proj" + type: "ReLU" bottom: "inception_4e/pool_proj" top: "inception_4e/pool_proj" - name: "inception_4e/relu_pool_proj" - type: RELU } -layers { +layer { + name: "inception_4e/output" + type: "Concat" bottom: "inception_4e/1x1" bottom: "inception_4e/3x3" bottom: "inception_4e/5x5" bottom: "inception_4e/pool_proj" top: "inception_4e/output" - name: "inception_4e/output" - type: CONCAT } -layers { +layer { + name: "pool4/3x3_s2" + type: "Pooling" bottom: "inception_4e/output" top: "pool4/3x3_s2" - name: "pool4/3x3_s2" - type: POOLING pooling_param { pool: MAX kernel_size: 3 stride: 2 } } -layers { +layer { + name: "inception_5a/1x1" + type: "Convolution" bottom: "pool4/3x3_s2" top: "inception_5a/1x1" - name: "inception_5a/1x1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 256 kernel_size: 1 @@ -1516,21 +1700,25 @@ layers { } } } -layers { +layer { + name: "inception_5a/relu_1x1" + type: "ReLU" bottom: "inception_5a/1x1" top: "inception_5a/1x1" - name: "inception_5a/relu_1x1" - type: RELU } -layers { +layer { + name: "inception_5a/3x3_reduce" + type: "Convolution" bottom: "pool4/3x3_s2" top: "inception_5a/3x3_reduce" - name: "inception_5a/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 160 kernel_size: 1 @@ -1544,21 +1732,25 @@ layers { } } } -layers { +layer { + name: "inception_5a/relu_3x3_reduce" + type: "ReLU" bottom: "inception_5a/3x3_reduce" top: "inception_5a/3x3_reduce" - name: "inception_5a/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "inception_5a/3x3" + type: "Convolution" bottom: "inception_5a/3x3_reduce" top: "inception_5a/3x3" - name: "inception_5a/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 320 pad: 1 @@ -1573,21 +1765,25 @@ layers { } } } -layers { +layer { + name: "inception_5a/relu_3x3" + type: "ReLU" bottom: "inception_5a/3x3" top: "inception_5a/3x3" - name: "inception_5a/relu_3x3" - type: RELU } -layers { +layer { + name: "inception_5a/5x5_reduce" + type: "Convolution" bottom: "pool4/3x3_s2" top: "inception_5a/5x5_reduce" - name: "inception_5a/5x5_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 32 kernel_size: 1 @@ -1601,21 +1797,25 @@ layers { } } } -layers { +layer { + name: "inception_5a/relu_5x5_reduce" + type: "ReLU" bottom: "inception_5a/5x5_reduce" top: "inception_5a/5x5_reduce" - name: "inception_5a/relu_5x5_reduce" - type: RELU } -layers { +layer { + name: "inception_5a/5x5" + type: "Convolution" bottom: "inception_5a/5x5_reduce" top: "inception_5a/5x5" - name: "inception_5a/5x5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 pad: 2 @@ -1630,17 +1830,17 @@ layers { } } } -layers { +layer { + name: "inception_5a/relu_5x5" + type: "ReLU" bottom: "inception_5a/5x5" top: "inception_5a/5x5" - name: "inception_5a/relu_5x5" - type: RELU } -layers { +layer { + name: "inception_5a/pool" + type: "Pooling" bottom: "pool4/3x3_s2" top: "inception_5a/pool" - name: "inception_5a/pool" - type: POOLING pooling_param { pool: MAX kernel_size: 3 @@ -1648,15 +1848,19 @@ layers { pad: 1 } } -layers { +layer { + name: "inception_5a/pool_proj" + type: "Convolution" bottom: "inception_5a/pool" top: "inception_5a/pool_proj" - name: "inception_5a/pool_proj" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 kernel_size: 1 @@ -1670,30 +1874,34 @@ layers { } } } -layers { +layer { + name: "inception_5a/relu_pool_proj" + type: "ReLU" bottom: "inception_5a/pool_proj" top: "inception_5a/pool_proj" - name: "inception_5a/relu_pool_proj" - type: RELU } -layers { +layer { + name: "inception_5a/output" + type: "Concat" bottom: "inception_5a/1x1" bottom: "inception_5a/3x3" bottom: "inception_5a/5x5" bottom: "inception_5a/pool_proj" top: "inception_5a/output" - name: "inception_5a/output" - type: CONCAT } -layers { +layer { + name: "inception_5b/1x1" + type: "Convolution" bottom: "inception_5a/output" top: "inception_5b/1x1" - name: "inception_5b/1x1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 384 kernel_size: 1 @@ -1707,21 +1915,25 @@ layers { } } } -layers { +layer { + name: "inception_5b/relu_1x1" + type: "ReLU" bottom: "inception_5b/1x1" top: "inception_5b/1x1" - name: "inception_5b/relu_1x1" - type: RELU } -layers { +layer { + name: "inception_5b/3x3_reduce" + type: "Convolution" bottom: "inception_5a/output" top: "inception_5b/3x3_reduce" - name: "inception_5b/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 192 kernel_size: 1 @@ -1735,21 +1947,25 @@ layers { } } } -layers { +layer { + name: "inception_5b/relu_3x3_reduce" + type: "ReLU" bottom: "inception_5b/3x3_reduce" top: "inception_5b/3x3_reduce" - name: "inception_5b/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "inception_5b/3x3" + type: "Convolution" bottom: "inception_5b/3x3_reduce" top: "inception_5b/3x3" - name: "inception_5b/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 384 pad: 1 @@ -1764,21 +1980,25 @@ layers { } } } -layers { +layer { + name: "inception_5b/relu_3x3" + type: "ReLU" bottom: "inception_5b/3x3" top: "inception_5b/3x3" - name: "inception_5b/relu_3x3" - type: RELU } -layers { +layer { + name: "inception_5b/5x5_reduce" + type: "Convolution" bottom: "inception_5a/output" top: "inception_5b/5x5_reduce" - name: "inception_5b/5x5_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 48 kernel_size: 1 @@ -1792,21 +2012,25 @@ layers { } } } -layers { +layer { + name: "inception_5b/relu_5x5_reduce" + type: "ReLU" bottom: "inception_5b/5x5_reduce" top: "inception_5b/5x5_reduce" - name: "inception_5b/relu_5x5_reduce" - type: RELU } -layers { +layer { + name: "inception_5b/5x5" + type: "Convolution" bottom: "inception_5b/5x5_reduce" top: "inception_5b/5x5" - name: "inception_5b/5x5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 pad: 2 @@ -1821,17 +2045,17 @@ layers { } } } -layers { +layer { + name: "inception_5b/relu_5x5" + type: "ReLU" bottom: "inception_5b/5x5" top: "inception_5b/5x5" - name: "inception_5b/relu_5x5" - type: RELU } -layers { +layer { + name: "inception_5b/pool" + type: "Pooling" bottom: "inception_5a/output" top: "inception_5b/pool" - name: "inception_5b/pool" - type: POOLING pooling_param { pool: MAX kernel_size: 3 @@ -1839,15 +2063,19 @@ layers { pad: 1 } } -layers { +layer { + name: "inception_5b/pool_proj" + type: "Convolution" bottom: "inception_5b/pool" top: "inception_5b/pool_proj" - name: "inception_5b/pool_proj" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 kernel_size: 1 @@ -1861,50 +2089,54 @@ layers { } } } -layers { +layer { + name: "inception_5b/relu_pool_proj" + type: "ReLU" bottom: "inception_5b/pool_proj" top: "inception_5b/pool_proj" - name: "inception_5b/relu_pool_proj" - type: RELU } -layers { +layer { + name: "inception_5b/output" + type: "Concat" bottom: "inception_5b/1x1" bottom: "inception_5b/3x3" bottom: "inception_5b/5x5" bottom: "inception_5b/pool_proj" top: "inception_5b/output" - name: "inception_5b/output" - type: CONCAT } -layers { +layer { + name: "pool5/7x7_s1" + type: "Pooling" bottom: "inception_5b/output" top: "pool5/7x7_s1" - name: "pool5/7x7_s1" - type: POOLING pooling_param { pool: AVE kernel_size: 7 stride: 1 } } -layers { +layer { + name: "pool5/drop_7x7_s1" + type: "Dropout" bottom: "pool5/7x7_s1" top: "pool5/7x7_s1" - name: "pool5/drop_7x7_s1" - type: DROPOUT dropout_param { dropout_ratio: 0.4 } } -layers { +layer { + name: "loss3/classifier" + type: "InnerProduct" bottom: "pool5/7x7_s1" top: "loss3/classifier" - name: "loss3/classifier" - type: INNER_PRODUCT - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 1000 weight_filler { @@ -1916,9 +2148,9 @@ layers { } } } -layers { +layer { name: "prob" - type: SOFTMAX + type: "Softmax" bottom: "loss3/classifier" top: "prob" -}
\ No newline at end of file +} diff --git a/models/bvlc_googlenet/train_val.prototxt b/models/bvlc_googlenet/train_val.prototxt index cd8f38ab..79ede2b9 100644 --- a/models/bvlc_googlenet/train_val.prototxt +++ b/models/bvlc_googlenet/train_val.prototxt @@ -1,14 +1,9 @@ name: "GoogleNet" -layers { +layer { + name: "data" + type: "Data" top: "data" top: "label" - name: "data" - type: DATA - data_param { - source: "examples/imagenet/ilsvrc12_train_lmdb" - batch_size: 32 - backend: LMDB - } include { phase: TRAIN } @@ -19,17 +14,17 @@ layers { mean_value: 117 mean_value: 123 } -} -layers { - top: "data" - top: "label" - name: "data" - type: DATA data_param { - source: "examples/imagenet/ilsvrc12_val_lmdb" - batch_size: 50 + source: "examples/imagenet/ilsvrc12_train_lmdb" + batch_size: 32 backend: LMDB } +} +layer { + name: "data" + type: "Data" + top: "data" + top: "label" include { phase: TEST } @@ -40,16 +35,25 @@ layers { mean_value: 117 mean_value: 123 } + data_param { + source: "examples/imagenet/ilsvrc12_val_lmdb" + batch_size: 50 + backend: LMDB + } } -layers { +layer { + name: "conv1/7x7_s2" + type: "Convolution" bottom: "data" top: "conv1/7x7_s2" - name: "conv1/7x7_s2" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 pad: 3 @@ -65,43 +69,47 @@ layers { } } } -layers { +layer { + name: "conv1/relu_7x7" + type: "ReLU" bottom: "conv1/7x7_s2" top: "conv1/7x7_s2" - name: "conv1/relu_7x7" - type: RELU } -layers { +layer { + name: "pool1/3x3_s2" + type: "Pooling" bottom: "conv1/7x7_s2" top: "pool1/3x3_s2" - name: "pool1/3x3_s2" - type: POOLING pooling_param { pool: MAX kernel_size: 3 stride: 2 } } -layers { +layer { + name: "pool1/norm1" + type: "LRN" bottom: "pool1/3x3_s2" top: "pool1/norm1" - name: "pool1/norm1" - type: LRN lrn_param { local_size: 5 alpha: 0.0001 beta: 0.75 } } -layers { +layer { + name: "conv2/3x3_reduce" + type: "Convolution" bottom: "pool1/norm1" top: "conv2/3x3_reduce" - name: "conv2/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 kernel_size: 1 @@ -115,21 +123,25 @@ layers { } } } -layers { +layer { + name: "conv2/relu_3x3_reduce" + type: "ReLU" bottom: "conv2/3x3_reduce" top: "conv2/3x3_reduce" - name: "conv2/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "conv2/3x3" + type: "Convolution" bottom: "conv2/3x3_reduce" top: "conv2/3x3" - name: "conv2/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 192 pad: 1 @@ -144,43 +156,47 @@ layers { } } } -layers { +layer { + name: "conv2/relu_3x3" + type: "ReLU" bottom: "conv2/3x3" top: "conv2/3x3" - name: "conv2/relu_3x3" - type: RELU } -layers { +layer { + name: "conv2/norm2" + type: "LRN" bottom: "conv2/3x3" top: "conv2/norm2" - name: "conv2/norm2" - type: LRN lrn_param { local_size: 5 alpha: 0.0001 beta: 0.75 } } -layers { +layer { + name: "pool2/3x3_s2" + type: "Pooling" bottom: "conv2/norm2" top: "pool2/3x3_s2" - name: "pool2/3x3_s2" - type: POOLING pooling_param { pool: MAX kernel_size: 3 stride: 2 } } -layers { +layer { + name: "inception_3a/1x1" + type: "Convolution" bottom: "pool2/3x3_s2" top: "inception_3a/1x1" - name: "inception_3a/1x1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 kernel_size: 1 @@ -194,21 +210,25 @@ layers { } } } -layers { +layer { + name: "inception_3a/relu_1x1" + type: "ReLU" bottom: "inception_3a/1x1" top: "inception_3a/1x1" - name: "inception_3a/relu_1x1" - type: RELU } -layers { +layer { + name: "inception_3a/3x3_reduce" + type: "Convolution" bottom: "pool2/3x3_s2" top: "inception_3a/3x3_reduce" - name: "inception_3a/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 96 kernel_size: 1 @@ -222,21 +242,25 @@ layers { } } } -layers { +layer { + name: "inception_3a/relu_3x3_reduce" + type: "ReLU" bottom: "inception_3a/3x3_reduce" top: "inception_3a/3x3_reduce" - name: "inception_3a/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "inception_3a/3x3" + type: "Convolution" bottom: "inception_3a/3x3_reduce" top: "inception_3a/3x3" - name: "inception_3a/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 pad: 1 @@ -251,21 +275,25 @@ layers { } } } -layers { +layer { + name: "inception_3a/relu_3x3" + type: "ReLU" bottom: "inception_3a/3x3" top: "inception_3a/3x3" - name: "inception_3a/relu_3x3" - type: RELU } -layers { +layer { + name: "inception_3a/5x5_reduce" + type: "Convolution" bottom: "pool2/3x3_s2" top: "inception_3a/5x5_reduce" - name: "inception_3a/5x5_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 16 kernel_size: 1 @@ -279,21 +307,25 @@ layers { } } } -layers { +layer { + name: "inception_3a/relu_5x5_reduce" + type: "ReLU" bottom: "inception_3a/5x5_reduce" top: "inception_3a/5x5_reduce" - name: "inception_3a/relu_5x5_reduce" - type: RELU } -layers { +layer { + name: "inception_3a/5x5" + type: "Convolution" bottom: "inception_3a/5x5_reduce" top: "inception_3a/5x5" - name: "inception_3a/5x5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 32 pad: 2 @@ -308,17 +340,17 @@ layers { } } } -layers { +layer { + name: "inception_3a/relu_5x5" + type: "ReLU" bottom: "inception_3a/5x5" top: "inception_3a/5x5" - name: "inception_3a/relu_5x5" - type: RELU } -layers { +layer { + name: "inception_3a/pool" + type: "Pooling" bottom: "pool2/3x3_s2" top: "inception_3a/pool" - name: "inception_3a/pool" - type: POOLING pooling_param { pool: MAX kernel_size: 3 @@ -326,15 +358,19 @@ layers { pad: 1 } } -layers { +layer { + name: "inception_3a/pool_proj" + type: "Convolution" bottom: "inception_3a/pool" top: "inception_3a/pool_proj" - name: "inception_3a/pool_proj" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 32 kernel_size: 1 @@ -348,30 +384,34 @@ layers { } } } -layers { +layer { + name: "inception_3a/relu_pool_proj" + type: "ReLU" bottom: "inception_3a/pool_proj" top: "inception_3a/pool_proj" - name: "inception_3a/relu_pool_proj" - type: RELU } -layers { +layer { + name: "inception_3a/output" + type: "Concat" bottom: "inception_3a/1x1" bottom: "inception_3a/3x3" bottom: "inception_3a/5x5" bottom: "inception_3a/pool_proj" top: "inception_3a/output" - name: "inception_3a/output" - type: CONCAT } -layers { +layer { + name: "inception_3b/1x1" + type: "Convolution" bottom: "inception_3a/output" top: "inception_3b/1x1" - name: "inception_3b/1x1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 kernel_size: 1 @@ -385,21 +425,25 @@ layers { } } } -layers { +layer { + name: "inception_3b/relu_1x1" + type: "ReLU" bottom: "inception_3b/1x1" top: "inception_3b/1x1" - name: "inception_3b/relu_1x1" - type: RELU } -layers { +layer { + name: "inception_3b/3x3_reduce" + type: "Convolution" bottom: "inception_3a/output" top: "inception_3b/3x3_reduce" - name: "inception_3b/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 kernel_size: 1 @@ -413,21 +457,25 @@ layers { } } } -layers { +layer { + name: "inception_3b/relu_3x3_reduce" + type: "ReLU" bottom: "inception_3b/3x3_reduce" top: "inception_3b/3x3_reduce" - name: "inception_3b/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "inception_3b/3x3" + type: "Convolution" bottom: "inception_3b/3x3_reduce" top: "inception_3b/3x3" - name: "inception_3b/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 192 pad: 1 @@ -442,21 +490,25 @@ layers { } } } -layers { +layer { + name: "inception_3b/relu_3x3" + type: "ReLU" bottom: "inception_3b/3x3" top: "inception_3b/3x3" - name: "inception_3b/relu_3x3" - type: RELU } -layers { +layer { + name: "inception_3b/5x5_reduce" + type: "Convolution" bottom: "inception_3a/output" top: "inception_3b/5x5_reduce" - name: "inception_3b/5x5_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 32 kernel_size: 1 @@ -470,21 +522,25 @@ layers { } } } -layers { +layer { + name: "inception_3b/relu_5x5_reduce" + type: "ReLU" bottom: "inception_3b/5x5_reduce" top: "inception_3b/5x5_reduce" - name: "inception_3b/relu_5x5_reduce" - type: RELU } -layers { +layer { + name: "inception_3b/5x5" + type: "Convolution" bottom: "inception_3b/5x5_reduce" top: "inception_3b/5x5" - name: "inception_3b/5x5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 96 pad: 2 @@ -499,17 +555,17 @@ layers { } } } -layers { +layer { + name: "inception_3b/relu_5x5" + type: "ReLU" bottom: "inception_3b/5x5" top: "inception_3b/5x5" - name: "inception_3b/relu_5x5" - type: RELU } -layers { +layer { + name: "inception_3b/pool" + type: "Pooling" bottom: "inception_3a/output" top: "inception_3b/pool" - name: "inception_3b/pool" - type: POOLING pooling_param { pool: MAX kernel_size: 3 @@ -517,15 +573,19 @@ layers { pad: 1 } } -layers { +layer { + name: "inception_3b/pool_proj" + type: "Convolution" bottom: "inception_3b/pool" top: "inception_3b/pool_proj" - name: "inception_3b/pool_proj" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 kernel_size: 1 @@ -539,41 +599,45 @@ layers { } } } -layers { +layer { + name: "inception_3b/relu_pool_proj" + type: "ReLU" bottom: "inception_3b/pool_proj" top: "inception_3b/pool_proj" - name: "inception_3b/relu_pool_proj" - type: RELU } -layers { +layer { + name: "inception_3b/output" + type: "Concat" bottom: "inception_3b/1x1" bottom: "inception_3b/3x3" bottom: "inception_3b/5x5" bottom: "inception_3b/pool_proj" top: "inception_3b/output" - name: "inception_3b/output" - type: CONCAT } -layers { +layer { + name: "pool3/3x3_s2" + type: "Pooling" bottom: "inception_3b/output" top: "pool3/3x3_s2" - name: "pool3/3x3_s2" - type: POOLING pooling_param { pool: MAX kernel_size: 3 stride: 2 } } -layers { +layer { + name: "inception_4a/1x1" + type: "Convolution" bottom: "pool3/3x3_s2" top: "inception_4a/1x1" - name: "inception_4a/1x1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 192 kernel_size: 1 @@ -587,21 +651,25 @@ layers { } } } -layers { +layer { + name: "inception_4a/relu_1x1" + type: "ReLU" bottom: "inception_4a/1x1" top: "inception_4a/1x1" - name: "inception_4a/relu_1x1" - type: RELU } -layers { +layer { + name: "inception_4a/3x3_reduce" + type: "Convolution" bottom: "pool3/3x3_s2" top: "inception_4a/3x3_reduce" - name: "inception_4a/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 96 kernel_size: 1 @@ -615,21 +683,25 @@ layers { } } } -layers { +layer { + name: "inception_4a/relu_3x3_reduce" + type: "ReLU" bottom: "inception_4a/3x3_reduce" top: "inception_4a/3x3_reduce" - name: "inception_4a/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "inception_4a/3x3" + type: "Convolution" bottom: "inception_4a/3x3_reduce" top: "inception_4a/3x3" - name: "inception_4a/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 208 pad: 1 @@ -644,21 +716,25 @@ layers { } } } -layers { +layer { + name: "inception_4a/relu_3x3" + type: "ReLU" bottom: "inception_4a/3x3" top: "inception_4a/3x3" - name: "inception_4a/relu_3x3" - type: RELU } -layers { +layer { + name: "inception_4a/5x5_reduce" + type: "Convolution" bottom: "pool3/3x3_s2" top: "inception_4a/5x5_reduce" - name: "inception_4a/5x5_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 16 kernel_size: 1 @@ -672,21 +748,25 @@ layers { } } } -layers { +layer { + name: "inception_4a/relu_5x5_reduce" + type: "ReLU" bottom: "inception_4a/5x5_reduce" top: "inception_4a/5x5_reduce" - name: "inception_4a/relu_5x5_reduce" - type: RELU } -layers { +layer { + name: "inception_4a/5x5" + type: "Convolution" bottom: "inception_4a/5x5_reduce" top: "inception_4a/5x5" - name: "inception_4a/5x5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 48 pad: 2 @@ -701,17 +781,17 @@ layers { } } } -layers { +layer { + name: "inception_4a/relu_5x5" + type: "ReLU" bottom: "inception_4a/5x5" top: "inception_4a/5x5" - name: "inception_4a/relu_5x5" - type: RELU } -layers { +layer { + name: "inception_4a/pool" + type: "Pooling" bottom: "pool3/3x3_s2" top: "inception_4a/pool" - name: "inception_4a/pool" - type: POOLING pooling_param { pool: MAX kernel_size: 3 @@ -719,15 +799,19 @@ layers { pad: 1 } } -layers { +layer { + name: "inception_4a/pool_proj" + type: "Convolution" bottom: "inception_4a/pool" top: "inception_4a/pool_proj" - name: "inception_4a/pool_proj" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 kernel_size: 1 @@ -741,41 +825,45 @@ layers { } } } -layers { +layer { + name: "inception_4a/relu_pool_proj" + type: "ReLU" bottom: "inception_4a/pool_proj" top: "inception_4a/pool_proj" - name: "inception_4a/relu_pool_proj" - type: RELU } -layers { +layer { + name: "inception_4a/output" + type: "Concat" bottom: "inception_4a/1x1" bottom: "inception_4a/3x3" bottom: "inception_4a/5x5" bottom: "inception_4a/pool_proj" top: "inception_4a/output" - name: "inception_4a/output" - type: CONCAT } -layers { +layer { + name: "loss1/ave_pool" + type: "Pooling" bottom: "inception_4a/output" top: "loss1/ave_pool" - name: "loss1/ave_pool" - type: POOLING pooling_param { pool: AVE kernel_size: 5 stride: 3 } } -layers { +layer { + name: "loss1/conv" + type: "Convolution" bottom: "loss1/ave_pool" top: "loss1/conv" - name: "loss1/conv" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 kernel_size: 1 @@ -789,21 +877,25 @@ layers { } } } -layers { +layer { + name: "loss1/relu_conv" + type: "ReLU" bottom: "loss1/conv" top: "loss1/conv" - name: "loss1/relu_conv" - type: RELU } -layers { +layer { + name: "loss1/fc" + type: "InnerProduct" bottom: "loss1/conv" top: "loss1/fc" - name: "loss1/fc" - type: INNER_PRODUCT - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 1024 weight_filler { @@ -816,30 +908,34 @@ layers { } } } -layers { +layer { + name: "loss1/relu_fc" + type: "ReLU" bottom: "loss1/fc" top: "loss1/fc" - name: "loss1/relu_fc" - type: RELU } -layers { +layer { + name: "loss1/drop_fc" + type: "Dropout" bottom: "loss1/fc" top: "loss1/fc" - name: "loss1/drop_fc" - type: DROPOUT dropout_param { dropout_ratio: 0.7 } } -layers { +layer { + name: "loss1/classifier" + type: "InnerProduct" bottom: "loss1/fc" top: "loss1/classifier" - name: "loss1/classifier" - type: INNER_PRODUCT - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 1000 weight_filler { @@ -852,46 +948,50 @@ layers { } } } -layers { +layer { + name: "loss1/loss" + type: "SoftmaxWithLoss" bottom: "loss1/classifier" bottom: "label" top: "loss1/loss1" - name: "loss1/loss" - type: SOFTMAX_LOSS loss_weight: 0.3 } -layers { +layer { + name: "loss1/top-1" + type: "Accuracy" bottom: "loss1/classifier" bottom: "label" top: "loss1/top-1" - name: "loss1/top-1" - type: ACCURACY include { phase: TEST } } -layers { +layer { + name: "loss1/top-5" + type: "Accuracy" bottom: "loss1/classifier" bottom: "label" top: "loss1/top-5" - name: "loss1/top-5" - type: ACCURACY - accuracy_param { - top_k: 5 - } include { phase: TEST } + accuracy_param { + top_k: 5 + } } -layers { +layer { + name: "inception_4b/1x1" + type: "Convolution" bottom: "inception_4a/output" top: "inception_4b/1x1" - name: "inception_4b/1x1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 160 kernel_size: 1 @@ -905,21 +1005,25 @@ layers { } } } -layers { +layer { + name: "inception_4b/relu_1x1" + type: "ReLU" bottom: "inception_4b/1x1" top: "inception_4b/1x1" - name: "inception_4b/relu_1x1" - type: RELU } -layers { +layer { + name: "inception_4b/3x3_reduce" + type: "Convolution" bottom: "inception_4a/output" top: "inception_4b/3x3_reduce" - name: "inception_4b/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 112 kernel_size: 1 @@ -933,21 +1037,25 @@ layers { } } } -layers { +layer { + name: "inception_4b/relu_3x3_reduce" + type: "ReLU" bottom: "inception_4b/3x3_reduce" top: "inception_4b/3x3_reduce" - name: "inception_4b/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "inception_4b/3x3" + type: "Convolution" bottom: "inception_4b/3x3_reduce" top: "inception_4b/3x3" - name: "inception_4b/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 224 pad: 1 @@ -962,21 +1070,25 @@ layers { } } } -layers { +layer { + name: "inception_4b/relu_3x3" + type: "ReLU" bottom: "inception_4b/3x3" top: "inception_4b/3x3" - name: "inception_4b/relu_3x3" - type: RELU } -layers { +layer { + name: "inception_4b/5x5_reduce" + type: "Convolution" bottom: "inception_4a/output" top: "inception_4b/5x5_reduce" - name: "inception_4b/5x5_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 24 kernel_size: 1 @@ -990,21 +1102,25 @@ layers { } } } -layers { +layer { + name: "inception_4b/relu_5x5_reduce" + type: "ReLU" bottom: "inception_4b/5x5_reduce" top: "inception_4b/5x5_reduce" - name: "inception_4b/relu_5x5_reduce" - type: RELU } -layers { +layer { + name: "inception_4b/5x5" + type: "Convolution" bottom: "inception_4b/5x5_reduce" top: "inception_4b/5x5" - name: "inception_4b/5x5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 pad: 2 @@ -1019,17 +1135,17 @@ layers { } } } -layers { +layer { + name: "inception_4b/relu_5x5" + type: "ReLU" bottom: "inception_4b/5x5" top: "inception_4b/5x5" - name: "inception_4b/relu_5x5" - type: RELU } -layers { +layer { + name: "inception_4b/pool" + type: "Pooling" bottom: "inception_4a/output" top: "inception_4b/pool" - name: "inception_4b/pool" - type: POOLING pooling_param { pool: MAX kernel_size: 3 @@ -1037,15 +1153,19 @@ layers { pad: 1 } } -layers { +layer { + name: "inception_4b/pool_proj" + type: "Convolution" bottom: "inception_4b/pool" top: "inception_4b/pool_proj" - name: "inception_4b/pool_proj" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 kernel_size: 1 @@ -1059,30 +1179,34 @@ layers { } } } -layers { +layer { + name: "inception_4b/relu_pool_proj" + type: "ReLU" bottom: "inception_4b/pool_proj" top: "inception_4b/pool_proj" - name: "inception_4b/relu_pool_proj" - type: RELU } -layers { +layer { + name: "inception_4b/output" + type: "Concat" bottom: "inception_4b/1x1" bottom: "inception_4b/3x3" bottom: "inception_4b/5x5" bottom: "inception_4b/pool_proj" top: "inception_4b/output" - name: "inception_4b/output" - type: CONCAT } -layers { +layer { + name: "inception_4c/1x1" + type: "Convolution" bottom: "inception_4b/output" top: "inception_4c/1x1" - name: "inception_4c/1x1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 kernel_size: 1 @@ -1096,21 +1220,25 @@ layers { } } } -layers { +layer { + name: "inception_4c/relu_1x1" + type: "ReLU" bottom: "inception_4c/1x1" top: "inception_4c/1x1" - name: "inception_4c/relu_1x1" - type: RELU } -layers { +layer { + name: "inception_4c/3x3_reduce" + type: "Convolution" bottom: "inception_4b/output" top: "inception_4c/3x3_reduce" - name: "inception_4c/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 kernel_size: 1 @@ -1124,21 +1252,25 @@ layers { } } } -layers { +layer { + name: "inception_4c/relu_3x3_reduce" + type: "ReLU" bottom: "inception_4c/3x3_reduce" top: "inception_4c/3x3_reduce" - name: "inception_4c/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "inception_4c/3x3" + type: "Convolution" bottom: "inception_4c/3x3_reduce" top: "inception_4c/3x3" - name: "inception_4c/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 256 pad: 1 @@ -1153,21 +1285,25 @@ layers { } } } -layers { +layer { + name: "inception_4c/relu_3x3" + type: "ReLU" bottom: "inception_4c/3x3" top: "inception_4c/3x3" - name: "inception_4c/relu_3x3" - type: RELU } -layers { +layer { + name: "inception_4c/5x5_reduce" + type: "Convolution" bottom: "inception_4b/output" top: "inception_4c/5x5_reduce" - name: "inception_4c/5x5_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 24 kernel_size: 1 @@ -1181,21 +1317,25 @@ layers { } } } -layers { +layer { + name: "inception_4c/relu_5x5_reduce" + type: "ReLU" bottom: "inception_4c/5x5_reduce" top: "inception_4c/5x5_reduce" - name: "inception_4c/relu_5x5_reduce" - type: RELU } -layers { +layer { + name: "inception_4c/5x5" + type: "Convolution" bottom: "inception_4c/5x5_reduce" top: "inception_4c/5x5" - name: "inception_4c/5x5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 pad: 2 @@ -1210,17 +1350,17 @@ layers { } } } -layers { +layer { + name: "inception_4c/relu_5x5" + type: "ReLU" bottom: "inception_4c/5x5" top: "inception_4c/5x5" - name: "inception_4c/relu_5x5" - type: RELU } -layers { +layer { + name: "inception_4c/pool" + type: "Pooling" bottom: "inception_4b/output" top: "inception_4c/pool" - name: "inception_4c/pool" - type: POOLING pooling_param { pool: MAX kernel_size: 3 @@ -1228,15 +1368,19 @@ layers { pad: 1 } } -layers { +layer { + name: "inception_4c/pool_proj" + type: "Convolution" bottom: "inception_4c/pool" top: "inception_4c/pool_proj" - name: "inception_4c/pool_proj" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 kernel_size: 1 @@ -1250,30 +1394,34 @@ layers { } } } -layers { +layer { + name: "inception_4c/relu_pool_proj" + type: "ReLU" bottom: "inception_4c/pool_proj" top: "inception_4c/pool_proj" - name: "inception_4c/relu_pool_proj" - type: RELU } -layers { +layer { + name: "inception_4c/output" + type: "Concat" bottom: "inception_4c/1x1" bottom: "inception_4c/3x3" bottom: "inception_4c/5x5" bottom: "inception_4c/pool_proj" top: "inception_4c/output" - name: "inception_4c/output" - type: CONCAT } -layers { +layer { + name: "inception_4d/1x1" + type: "Convolution" bottom: "inception_4c/output" top: "inception_4d/1x1" - name: "inception_4d/1x1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 112 kernel_size: 1 @@ -1287,21 +1435,25 @@ layers { } } } -layers { +layer { + name: "inception_4d/relu_1x1" + type: "ReLU" bottom: "inception_4d/1x1" top: "inception_4d/1x1" - name: "inception_4d/relu_1x1" - type: RELU } -layers { +layer { + name: "inception_4d/3x3_reduce" + type: "Convolution" bottom: "inception_4c/output" top: "inception_4d/3x3_reduce" - name: "inception_4d/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 144 kernel_size: 1 @@ -1315,21 +1467,25 @@ layers { } } } -layers { +layer { + name: "inception_4d/relu_3x3_reduce" + type: "ReLU" bottom: "inception_4d/3x3_reduce" top: "inception_4d/3x3_reduce" - name: "inception_4d/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "inception_4d/3x3" + type: "Convolution" bottom: "inception_4d/3x3_reduce" top: "inception_4d/3x3" - name: "inception_4d/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 288 pad: 1 @@ -1344,21 +1500,25 @@ layers { } } } -layers { +layer { + name: "inception_4d/relu_3x3" + type: "ReLU" bottom: "inception_4d/3x3" top: "inception_4d/3x3" - name: "inception_4d/relu_3x3" - type: RELU } -layers { +layer { + name: "inception_4d/5x5_reduce" + type: "Convolution" bottom: "inception_4c/output" top: "inception_4d/5x5_reduce" - name: "inception_4d/5x5_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 32 kernel_size: 1 @@ -1372,21 +1532,25 @@ layers { } } } -layers { +layer { + name: "inception_4d/relu_5x5_reduce" + type: "ReLU" bottom: "inception_4d/5x5_reduce" top: "inception_4d/5x5_reduce" - name: "inception_4d/relu_5x5_reduce" - type: RELU } -layers { +layer { + name: "inception_4d/5x5" + type: "Convolution" bottom: "inception_4d/5x5_reduce" top: "inception_4d/5x5" - name: "inception_4d/5x5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 pad: 2 @@ -1401,17 +1565,17 @@ layers { } } } -layers { +layer { + name: "inception_4d/relu_5x5" + type: "ReLU" bottom: "inception_4d/5x5" top: "inception_4d/5x5" - name: "inception_4d/relu_5x5" - type: RELU } -layers { +layer { + name: "inception_4d/pool" + type: "Pooling" bottom: "inception_4c/output" top: "inception_4d/pool" - name: "inception_4d/pool" - type: POOLING pooling_param { pool: MAX kernel_size: 3 @@ -1419,15 +1583,19 @@ layers { pad: 1 } } -layers { +layer { + name: "inception_4d/pool_proj" + type: "Convolution" bottom: "inception_4d/pool" top: "inception_4d/pool_proj" - name: "inception_4d/pool_proj" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 64 kernel_size: 1 @@ -1441,41 +1609,45 @@ layers { } } } -layers { +layer { + name: "inception_4d/relu_pool_proj" + type: "ReLU" bottom: "inception_4d/pool_proj" top: "inception_4d/pool_proj" - name: "inception_4d/relu_pool_proj" - type: RELU } -layers { +layer { + name: "inception_4d/output" + type: "Concat" bottom: "inception_4d/1x1" bottom: "inception_4d/3x3" bottom: "inception_4d/5x5" bottom: "inception_4d/pool_proj" top: "inception_4d/output" - name: "inception_4d/output" - type: CONCAT } -layers { +layer { + name: "loss2/ave_pool" + type: "Pooling" bottom: "inception_4d/output" top: "loss2/ave_pool" - name: "loss2/ave_pool" - type: POOLING pooling_param { pool: AVE kernel_size: 5 stride: 3 } } -layers { +layer { + name: "loss2/conv" + type: "Convolution" bottom: "loss2/ave_pool" top: "loss2/conv" - name: "loss2/conv" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 kernel_size: 1 @@ -1489,21 +1661,25 @@ layers { } } } -layers { +layer { + name: "loss2/relu_conv" + type: "ReLU" bottom: "loss2/conv" top: "loss2/conv" - name: "loss2/relu_conv" - type: RELU } -layers { +layer { + name: "loss2/fc" + type: "InnerProduct" bottom: "loss2/conv" top: "loss2/fc" - name: "loss2/fc" - type: INNER_PRODUCT - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 1024 weight_filler { @@ -1516,30 +1692,34 @@ layers { } } } -layers { +layer { + name: "loss2/relu_fc" + type: "ReLU" bottom: "loss2/fc" top: "loss2/fc" - name: "loss2/relu_fc" - type: RELU } -layers { +layer { + name: "loss2/drop_fc" + type: "Dropout" bottom: "loss2/fc" top: "loss2/fc" - name: "loss2/drop_fc" - type: DROPOUT dropout_param { dropout_ratio: 0.7 } } -layers { +layer { + name: "loss2/classifier" + type: "InnerProduct" bottom: "loss2/fc" top: "loss2/classifier" - name: "loss2/classifier" - type: INNER_PRODUCT - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 1000 weight_filler { @@ -1552,46 +1732,50 @@ layers { } } } -layers { +layer { + name: "loss2/loss" + type: "SoftmaxWithLoss" bottom: "loss2/classifier" bottom: "label" top: "loss2/loss1" - name: "loss2/loss" - type: SOFTMAX_LOSS loss_weight: 0.3 } -layers { +layer { + name: "loss2/top-1" + type: "Accuracy" bottom: "loss2/classifier" bottom: "label" top: "loss2/top-1" - name: "loss2/top-1" - type: ACCURACY include { phase: TEST } } -layers { +layer { + name: "loss2/top-5" + type: "Accuracy" bottom: "loss2/classifier" bottom: "label" top: "loss2/top-5" - name: "loss2/top-5" - type: ACCURACY - accuracy_param { - top_k: 5 - } include { phase: TEST } + accuracy_param { + top_k: 5 + } } -layers { +layer { + name: "inception_4e/1x1" + type: "Convolution" bottom: "inception_4d/output" top: "inception_4e/1x1" - name: "inception_4e/1x1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 256 kernel_size: 1 @@ -1605,21 +1789,25 @@ layers { } } } -layers { +layer { + name: "inception_4e/relu_1x1" + type: "ReLU" bottom: "inception_4e/1x1" top: "inception_4e/1x1" - name: "inception_4e/relu_1x1" - type: RELU } -layers { +layer { + name: "inception_4e/3x3_reduce" + type: "Convolution" bottom: "inception_4d/output" top: "inception_4e/3x3_reduce" - name: "inception_4e/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 160 kernel_size: 1 @@ -1633,21 +1821,25 @@ layers { } } } -layers { +layer { + name: "inception_4e/relu_3x3_reduce" + type: "ReLU" bottom: "inception_4e/3x3_reduce" top: "inception_4e/3x3_reduce" - name: "inception_4e/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "inception_4e/3x3" + type: "Convolution" bottom: "inception_4e/3x3_reduce" top: "inception_4e/3x3" - name: "inception_4e/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 320 pad: 1 @@ -1662,21 +1854,25 @@ layers { } } } -layers { +layer { + name: "inception_4e/relu_3x3" + type: "ReLU" bottom: "inception_4e/3x3" top: "inception_4e/3x3" - name: "inception_4e/relu_3x3" - type: RELU } -layers { +layer { + name: "inception_4e/5x5_reduce" + type: "Convolution" bottom: "inception_4d/output" top: "inception_4e/5x5_reduce" - name: "inception_4e/5x5_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 32 kernel_size: 1 @@ -1690,21 +1886,25 @@ layers { } } } -layers { +layer { + name: "inception_4e/relu_5x5_reduce" + type: "ReLU" bottom: "inception_4e/5x5_reduce" top: "inception_4e/5x5_reduce" - name: "inception_4e/relu_5x5_reduce" - type: RELU } -layers { +layer { + name: "inception_4e/5x5" + type: "Convolution" bottom: "inception_4e/5x5_reduce" top: "inception_4e/5x5" - name: "inception_4e/5x5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 pad: 2 @@ -1719,17 +1919,17 @@ layers { } } } -layers { +layer { + name: "inception_4e/relu_5x5" + type: "ReLU" bottom: "inception_4e/5x5" top: "inception_4e/5x5" - name: "inception_4e/relu_5x5" - type: RELU } -layers { +layer { + name: "inception_4e/pool" + type: "Pooling" bottom: "inception_4d/output" top: "inception_4e/pool" - name: "inception_4e/pool" - type: POOLING pooling_param { pool: MAX kernel_size: 3 @@ -1737,15 +1937,19 @@ layers { pad: 1 } } -layers { +layer { + name: "inception_4e/pool_proj" + type: "Convolution" bottom: "inception_4e/pool" top: "inception_4e/pool_proj" - name: "inception_4e/pool_proj" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 kernel_size: 1 @@ -1759,41 +1963,45 @@ layers { } } } -layers { +layer { + name: "inception_4e/relu_pool_proj" + type: "ReLU" bottom: "inception_4e/pool_proj" top: "inception_4e/pool_proj" - name: "inception_4e/relu_pool_proj" - type: RELU } -layers { +layer { + name: "inception_4e/output" + type: "Concat" bottom: "inception_4e/1x1" bottom: "inception_4e/3x3" bottom: "inception_4e/5x5" bottom: "inception_4e/pool_proj" top: "inception_4e/output" - name: "inception_4e/output" - type: CONCAT } -layers { +layer { + name: "pool4/3x3_s2" + type: "Pooling" bottom: "inception_4e/output" top: "pool4/3x3_s2" - name: "pool4/3x3_s2" - type: POOLING pooling_param { pool: MAX kernel_size: 3 stride: 2 } } -layers { +layer { + name: "inception_5a/1x1" + type: "Convolution" bottom: "pool4/3x3_s2" top: "inception_5a/1x1" - name: "inception_5a/1x1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 256 kernel_size: 1 @@ -1807,21 +2015,25 @@ layers { } } } -layers { +layer { + name: "inception_5a/relu_1x1" + type: "ReLU" bottom: "inception_5a/1x1" top: "inception_5a/1x1" - name: "inception_5a/relu_1x1" - type: RELU } -layers { +layer { + name: "inception_5a/3x3_reduce" + type: "Convolution" bottom: "pool4/3x3_s2" top: "inception_5a/3x3_reduce" - name: "inception_5a/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 160 kernel_size: 1 @@ -1835,21 +2047,25 @@ layers { } } } -layers { +layer { + name: "inception_5a/relu_3x3_reduce" + type: "ReLU" bottom: "inception_5a/3x3_reduce" top: "inception_5a/3x3_reduce" - name: "inception_5a/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "inception_5a/3x3" + type: "Convolution" bottom: "inception_5a/3x3_reduce" top: "inception_5a/3x3" - name: "inception_5a/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 320 pad: 1 @@ -1864,21 +2080,25 @@ layers { } } } -layers { +layer { + name: "inception_5a/relu_3x3" + type: "ReLU" bottom: "inception_5a/3x3" top: "inception_5a/3x3" - name: "inception_5a/relu_3x3" - type: RELU } -layers { +layer { + name: "inception_5a/5x5_reduce" + type: "Convolution" bottom: "pool4/3x3_s2" top: "inception_5a/5x5_reduce" - name: "inception_5a/5x5_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 32 kernel_size: 1 @@ -1892,21 +2112,25 @@ layers { } } } -layers { +layer { + name: "inception_5a/relu_5x5_reduce" + type: "ReLU" bottom: "inception_5a/5x5_reduce" top: "inception_5a/5x5_reduce" - name: "inception_5a/relu_5x5_reduce" - type: RELU } -layers { +layer { + name: "inception_5a/5x5" + type: "Convolution" bottom: "inception_5a/5x5_reduce" top: "inception_5a/5x5" - name: "inception_5a/5x5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 pad: 2 @@ -1921,17 +2145,17 @@ layers { } } } -layers { +layer { + name: "inception_5a/relu_5x5" + type: "ReLU" bottom: "inception_5a/5x5" top: "inception_5a/5x5" - name: "inception_5a/relu_5x5" - type: RELU } -layers { +layer { + name: "inception_5a/pool" + type: "Pooling" bottom: "pool4/3x3_s2" top: "inception_5a/pool" - name: "inception_5a/pool" - type: POOLING pooling_param { pool: MAX kernel_size: 3 @@ -1939,15 +2163,19 @@ layers { pad: 1 } } -layers { +layer { + name: "inception_5a/pool_proj" + type: "Convolution" bottom: "inception_5a/pool" top: "inception_5a/pool_proj" - name: "inception_5a/pool_proj" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 kernel_size: 1 @@ -1961,30 +2189,34 @@ layers { } } } -layers { +layer { + name: "inception_5a/relu_pool_proj" + type: "ReLU" bottom: "inception_5a/pool_proj" top: "inception_5a/pool_proj" - name: "inception_5a/relu_pool_proj" - type: RELU } -layers { +layer { + name: "inception_5a/output" + type: "Concat" bottom: "inception_5a/1x1" bottom: "inception_5a/3x3" bottom: "inception_5a/5x5" bottom: "inception_5a/pool_proj" top: "inception_5a/output" - name: "inception_5a/output" - type: CONCAT } -layers { +layer { + name: "inception_5b/1x1" + type: "Convolution" bottom: "inception_5a/output" top: "inception_5b/1x1" - name: "inception_5b/1x1" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 384 kernel_size: 1 @@ -1998,21 +2230,25 @@ layers { } } } -layers { +layer { + name: "inception_5b/relu_1x1" + type: "ReLU" bottom: "inception_5b/1x1" top: "inception_5b/1x1" - name: "inception_5b/relu_1x1" - type: RELU } -layers { +layer { + name: "inception_5b/3x3_reduce" + type: "Convolution" bottom: "inception_5a/output" top: "inception_5b/3x3_reduce" - name: "inception_5b/3x3_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 192 kernel_size: 1 @@ -2026,21 +2262,25 @@ layers { } } } -layers { +layer { + name: "inception_5b/relu_3x3_reduce" + type: "ReLU" bottom: "inception_5b/3x3_reduce" top: "inception_5b/3x3_reduce" - name: "inception_5b/relu_3x3_reduce" - type: RELU } -layers { +layer { + name: "inception_5b/3x3" + type: "Convolution" bottom: "inception_5b/3x3_reduce" top: "inception_5b/3x3" - name: "inception_5b/3x3" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 384 pad: 1 @@ -2055,21 +2295,25 @@ layers { } } } -layers { +layer { + name: "inception_5b/relu_3x3" + type: "ReLU" bottom: "inception_5b/3x3" top: "inception_5b/3x3" - name: "inception_5b/relu_3x3" - type: RELU } -layers { +layer { + name: "inception_5b/5x5_reduce" + type: "Convolution" bottom: "inception_5a/output" top: "inception_5b/5x5_reduce" - name: "inception_5b/5x5_reduce" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 48 kernel_size: 1 @@ -2083,21 +2327,25 @@ layers { } } } -layers { +layer { + name: "inception_5b/relu_5x5_reduce" + type: "ReLU" bottom: "inception_5b/5x5_reduce" top: "inception_5b/5x5_reduce" - name: "inception_5b/relu_5x5_reduce" - type: RELU } -layers { +layer { + name: "inception_5b/5x5" + type: "Convolution" bottom: "inception_5b/5x5_reduce" top: "inception_5b/5x5" - name: "inception_5b/5x5" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 pad: 2 @@ -2112,17 +2360,17 @@ layers { } } } -layers { +layer { + name: "inception_5b/relu_5x5" + type: "ReLU" bottom: "inception_5b/5x5" top: "inception_5b/5x5" - name: "inception_5b/relu_5x5" - type: RELU } -layers { +layer { + name: "inception_5b/pool" + type: "Pooling" bottom: "inception_5a/output" top: "inception_5b/pool" - name: "inception_5b/pool" - type: POOLING pooling_param { pool: MAX kernel_size: 3 @@ -2130,15 +2378,19 @@ layers { pad: 1 } } -layers { +layer { + name: "inception_5b/pool_proj" + type: "Convolution" bottom: "inception_5b/pool" top: "inception_5b/pool_proj" - name: "inception_5b/pool_proj" - type: CONVOLUTION - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 128 kernel_size: 1 @@ -2152,50 +2404,54 @@ layers { } } } -layers { +layer { + name: "inception_5b/relu_pool_proj" + type: "ReLU" bottom: "inception_5b/pool_proj" top: "inception_5b/pool_proj" - name: "inception_5b/relu_pool_proj" - type: RELU } -layers { +layer { + name: "inception_5b/output" + type: "Concat" bottom: "inception_5b/1x1" bottom: "inception_5b/3x3" bottom: "inception_5b/5x5" bottom: "inception_5b/pool_proj" top: "inception_5b/output" - name: "inception_5b/output" - type: CONCAT } -layers { +layer { + name: "pool5/7x7_s1" + type: "Pooling" bottom: "inception_5b/output" top: "pool5/7x7_s1" - name: "pool5/7x7_s1" - type: POOLING pooling_param { pool: AVE kernel_size: 7 stride: 1 } } -layers { +layer { + name: "pool5/drop_7x7_s1" + type: "Dropout" bottom: "pool5/7x7_s1" top: "pool5/7x7_s1" - name: "pool5/drop_7x7_s1" - type: DROPOUT dropout_param { dropout_ratio: 0.4 } } -layers { +layer { + name: "loss3/classifier" + type: "InnerProduct" bottom: "pool5/7x7_s1" top: "loss3/classifier" - name: "loss3/classifier" - type: INNER_PRODUCT - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 1000 weight_filler { @@ -2207,34 +2463,34 @@ layers { } } } -layers { +layer { + name: "loss3/loss3" + type: "SoftmaxWithLoss" bottom: "loss3/classifier" bottom: "label" top: "loss3/loss3" - name: "loss3/loss3" - type: SOFTMAX_LOSS loss_weight: 1 } -layers { +layer { + name: "loss3/top-1" + type: "Accuracy" bottom: "loss3/classifier" bottom: "label" top: "loss3/top-1" - name: "loss3/top-1" - type: ACCURACY include { phase: TEST } } -layers { +layer { + name: "loss3/top-5" + type: "Accuracy" bottom: "loss3/classifier" bottom: "label" top: "loss3/top-5" - name: "loss3/top-5" - type: ACCURACY - accuracy_param { - top_k: 5 - } include { phase: TEST } + accuracy_param { + top_k: 5 + } } diff --git a/models/bvlc_reference_caffenet/deploy.prototxt b/models/bvlc_reference_caffenet/deploy.prototxt index 4e494f42..29ccf146 100644 --- a/models/bvlc_reference_caffenet/deploy.prototxt +++ b/models/bvlc_reference_caffenet/deploy.prototxt @@ -4,9 +4,9 @@ input_dim: 10 input_dim: 3 input_dim: 227 input_dim: 227 -layers { +layer { name: "conv1" - type: CONVOLUTION + type: "Convolution" bottom: "data" top: "conv1" convolution_param { @@ -15,15 +15,15 @@ layers { stride: 4 } } -layers { +layer { name: "relu1" - type: RELU + type: "ReLU" bottom: "conv1" top: "conv1" } -layers { +layer { name: "pool1" - type: POOLING + type: "Pooling" bottom: "conv1" top: "pool1" pooling_param { @@ -32,9 +32,9 @@ layers { stride: 2 } } -layers { +layer { name: "norm1" - type: LRN + type: "LRN" bottom: "pool1" top: "norm1" lrn_param { @@ -43,9 +43,9 @@ layers { beta: 0.75 } } -layers { +layer { name: "conv2" - type: CONVOLUTION + type: "Convolution" bottom: "norm1" top: "conv2" convolution_param { @@ -55,15 +55,15 @@ layers { group: 2 } } -layers { +layer { name: "relu2" - type: RELU + type: "ReLU" bottom: "conv2" top: "conv2" } -layers { +layer { name: "pool2" - type: POOLING + type: "Pooling" bottom: "conv2" top: "pool2" pooling_param { @@ -72,9 +72,9 @@ layers { stride: 2 } } -layers { +layer { name: "norm2" - type: LRN + type: "LRN" bottom: "pool2" top: "norm2" lrn_param { @@ -83,9 +83,9 @@ layers { beta: 0.75 } } -layers { +layer { name: "conv3" - type: CONVOLUTION + type: "Convolution" bottom: "norm2" top: "conv3" convolution_param { @@ -94,15 +94,15 @@ layers { kernel_size: 3 } } -layers { +layer { name: "relu3" - type: RELU + type: "ReLU" bottom: "conv3" top: "conv3" } -layers { +layer { name: "conv4" - type: CONVOLUTION + type: "Convolution" bottom: "conv3" top: "conv4" convolution_param { @@ -112,15 +112,15 @@ layers { group: 2 } } -layers { +layer { name: "relu4" - type: RELU + type: "ReLU" bottom: "conv4" top: "conv4" } -layers { +layer { name: "conv5" - type: CONVOLUTION + type: "Convolution" bottom: "conv4" top: "conv5" convolution_param { @@ -130,15 +130,15 @@ layers { group: 2 } } -layers { +layer { name: "relu5" - type: RELU + type: "ReLU" bottom: "conv5" top: "conv5" } -layers { +layer { name: "pool5" - type: POOLING + type: "Pooling" bottom: "conv5" top: "pool5" pooling_param { @@ -147,66 +147,66 @@ layers { stride: 2 } } -layers { +layer { name: "fc6" - type: INNER_PRODUCT + type: "InnerProduct" bottom: "pool5" top: "fc6" inner_product_param { num_output: 4096 } } -layers { +layer { name: "relu6" - type: RELU + type: "ReLU" bottom: "fc6" top: "fc6" } -layers { +layer { name: "drop6" - type: DROPOUT + type: "Dropout" bottom: "fc6" top: "fc6" dropout_param { dropout_ratio: 0.5 } } -layers { +layer { name: "fc7" - type: INNER_PRODUCT + type: "InnerProduct" bottom: "fc6" top: "fc7" inner_product_param { num_output: 4096 } } -layers { +layer { name: "relu7" - type: RELU + type: "ReLU" bottom: "fc7" top: "fc7" } -layers { +layer { name: "drop7" - type: DROPOUT + type: "Dropout" bottom: "fc7" top: "fc7" dropout_param { dropout_ratio: 0.5 } } -layers { +layer { name: "fc8" - type: INNER_PRODUCT + type: "InnerProduct" bottom: "fc7" top: "fc8" inner_product_param { num_output: 1000 } } -layers { +layer { name: "prob" - type: SOFTMAX + type: "Softmax" bottom: "fc8" top: "prob" } diff --git a/models/bvlc_reference_caffenet/train_val.prototxt b/models/bvlc_reference_caffenet/train_val.prototxt index 00fcc080..c79472e0 100644 --- a/models/bvlc_reference_caffenet/train_val.prototxt +++ b/models/bvlc_reference_caffenet/train_val.prototxt @@ -1,18 +1,16 @@ name: "CaffeNet" -layers { +layer { name: "data" - type: DATA + type: "Data" top: "data" top: "label" - data_param { - source: "examples/imagenet/ilsvrc12_train_lmdb" - backend: LMDB - batch_size: 256 + include { + phase: TRAIN } transform_param { + mirror: true crop_size: 227 mean_file: "data/ilsvrc12/imagenet_mean.binaryproto" - mirror: true } # mean pixel / channel-wise mean instead of mean image # transform_param { @@ -22,22 +20,24 @@ layers { # mean_value: 123 # mirror: true # } - include: { phase: TRAIN } + data_param { + source: "examples/imagenet/ilsvrc12_train_lmdb" + batch_size: 256 + backend: LMDB + } } -layers { +layer { name: "data" - type: DATA + type: "Data" top: "data" top: "label" - data_param { - source: "examples/imagenet/ilsvrc12_val_lmdb" - backend: LMDB - batch_size: 50 + include { + phase: TEST } transform_param { + mirror: false crop_size: 227 mean_file: "data/ilsvrc12/imagenet_mean.binaryproto" - mirror: false } # mean pixel / channel-wise mean instead of mean image # transform_param { @@ -47,17 +47,25 @@ layers { # mean_value: 123 # mirror: true # } - include: { phase: TEST } + data_param { + source: "examples/imagenet/ilsvrc12_val_lmdb" + batch_size: 50 + backend: LMDB + } } -layers { +layer { name: "conv1" - type: CONVOLUTION + type: "Convolution" bottom: "data" top: "conv1" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 96 kernel_size: 11 @@ -72,15 +80,15 @@ layers { } } } -layers { +layer { name: "relu1" - type: RELU + type: "ReLU" bottom: "conv1" top: "conv1" } -layers { +layer { name: "pool1" - type: POOLING + type: "Pooling" bottom: "conv1" top: "pool1" pooling_param { @@ -89,9 +97,9 @@ layers { stride: 2 } } -layers { +layer { name: "norm1" - type: LRN + type: "LRN" bottom: "pool1" top: "norm1" lrn_param { @@ -100,15 +108,19 @@ layers { beta: 0.75 } } -layers { +layer { name: "conv2" - type: CONVOLUTION + type: "Convolution" bottom: "norm1" top: "conv2" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 256 pad: 2 @@ -124,15 +136,15 @@ layers { } } } -layers { +layer { name: "relu2" - type: RELU + type: "ReLU" bottom: "conv2" top: "conv2" } -layers { +layer { name: "pool2" - type: POOLING + type: "Pooling" bottom: "conv2" top: "pool2" pooling_param { @@ -141,9 +153,9 @@ layers { stride: 2 } } -layers { +layer { name: "norm2" - type: LRN + type: "LRN" bottom: "pool2" top: "norm2" lrn_param { @@ -152,15 +164,19 @@ layers { beta: 0.75 } } -layers { +layer { name: "conv3" - type: CONVOLUTION + type: "Convolution" bottom: "norm2" top: "conv3" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 384 pad: 1 @@ -175,21 +191,25 @@ layers { } } } -layers { +layer { name: "relu3" - type: RELU + type: "ReLU" bottom: "conv3" top: "conv3" } -layers { +layer { name: "conv4" - type: CONVOLUTION + type: "Convolution" bottom: "conv3" top: "conv4" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 384 pad: 1 @@ -205,21 +225,25 @@ layers { } } } -layers { +layer { name: "relu4" - type: RELU + type: "ReLU" bottom: "conv4" top: "conv4" } -layers { +layer { name: "conv5" - type: CONVOLUTION + type: "Convolution" bottom: "conv4" top: "conv5" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 256 pad: 1 @@ -235,15 +259,15 @@ layers { } } } -layers { +layer { name: "relu5" - type: RELU + type: "ReLU" bottom: "conv5" top: "conv5" } -layers { +layer { name: "pool5" - type: POOLING + type: "Pooling" bottom: "conv5" top: "pool5" pooling_param { @@ -252,15 +276,19 @@ layers { stride: 2 } } -layers { +layer { name: "fc6" - type: INNER_PRODUCT + type: "InnerProduct" bottom: "pool5" top: "fc6" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 4096 weight_filler { @@ -273,30 +301,34 @@ layers { } } } -layers { +layer { name: "relu6" - type: RELU + type: "ReLU" bottom: "fc6" top: "fc6" } -layers { +layer { name: "drop6" - type: DROPOUT + type: "Dropout" bottom: "fc6" top: "fc6" dropout_param { dropout_ratio: 0.5 } } -layers { +layer { name: "fc7" - type: INNER_PRODUCT + type: "InnerProduct" bottom: "fc6" top: "fc7" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 4096 weight_filler { @@ -309,30 +341,34 @@ layers { } } } -layers { +layer { name: "relu7" - type: RELU + type: "ReLU" bottom: "fc7" top: "fc7" } -layers { +layer { name: "drop7" - type: DROPOUT + type: "Dropout" bottom: "fc7" top: "fc7" dropout_param { dropout_ratio: 0.5 } } -layers { +layer { name: "fc8" - type: INNER_PRODUCT + type: "InnerProduct" bottom: "fc7" top: "fc8" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 1000 weight_filler { @@ -345,17 +381,19 @@ layers { } } } -layers { +layer { name: "accuracy" - type: ACCURACY + type: "Accuracy" bottom: "fc8" bottom: "label" top: "accuracy" - include: { phase: TEST } + include { + phase: TEST + } } -layers { +layer { name: "loss" - type: SOFTMAX_LOSS + type: "SoftmaxWithLoss" bottom: "fc8" bottom: "label" top: "loss" diff --git a/models/bvlc_reference_rcnn_ilsvrc13/deploy.prototxt b/models/bvlc_reference_rcnn_ilsvrc13/deploy.prototxt index ef75a0a5..ea9cf98a 100644 --- a/models/bvlc_reference_rcnn_ilsvrc13/deploy.prototxt +++ b/models/bvlc_reference_rcnn_ilsvrc13/deploy.prototxt @@ -4,9 +4,9 @@ input_dim: 10 input_dim: 3 input_dim: 227 input_dim: 227 -layers { +layer { name: "conv1" - type: CONVOLUTION + type: "Convolution" bottom: "data" top: "conv1" convolution_param { @@ -15,15 +15,15 @@ layers { stride: 4 } } -layers { +layer { name: "relu1" - type: RELU + type: "ReLU" bottom: "conv1" top: "conv1" } -layers { +layer { name: "pool1" - type: POOLING + type: "Pooling" bottom: "conv1" top: "pool1" pooling_param { @@ -32,9 +32,9 @@ layers { stride: 2 } } -layers { +layer { name: "norm1" - type: LRN + type: "LRN" bottom: "pool1" top: "norm1" lrn_param { @@ -43,9 +43,9 @@ layers { beta: 0.75 } } -layers { +layer { name: "conv2" - type: CONVOLUTION + type: "Convolution" bottom: "norm1" top: "conv2" convolution_param { @@ -55,15 +55,15 @@ layers { group: 2 } } -layers { +layer { name: "relu2" - type: RELU + type: "ReLU" bottom: "conv2" top: "conv2" } -layers { +layer { name: "pool2" - type: POOLING + type: "Pooling" bottom: "conv2" top: "pool2" pooling_param { @@ -72,9 +72,9 @@ layers { stride: 2 } } -layers { +layer { name: "norm2" - type: LRN + type: "LRN" bottom: "pool2" top: "norm2" lrn_param { @@ -83,9 +83,9 @@ layers { beta: 0.75 } } -layers { +layer { name: "conv3" - type: CONVOLUTION + type: "Convolution" bottom: "norm2" top: "conv3" convolution_param { @@ -94,15 +94,15 @@ layers { kernel_size: 3 } } -layers { +layer { name: "relu3" - type: RELU + type: "ReLU" bottom: "conv3" top: "conv3" } -layers { +layer { name: "conv4" - type: CONVOLUTION + type: "Convolution" bottom: "conv3" top: "conv4" convolution_param { @@ -112,15 +112,15 @@ layers { group: 2 } } -layers { +layer { name: "relu4" - type: RELU + type: "ReLU" bottom: "conv4" top: "conv4" } -layers { +layer { name: "conv5" - type: CONVOLUTION + type: "Convolution" bottom: "conv4" top: "conv5" convolution_param { @@ -130,15 +130,15 @@ layers { group: 2 } } -layers { +layer { name: "relu5" - type: RELU + type: "ReLU" bottom: "conv5" top: "conv5" } -layers { +layer { name: "pool5" - type: POOLING + type: "Pooling" bottom: "conv5" top: "pool5" pooling_param { @@ -147,48 +147,48 @@ layers { stride: 2 } } -layers { +layer { name: "fc6" - type: INNER_PRODUCT + type: "InnerProduct" bottom: "pool5" top: "fc6" inner_product_param { num_output: 4096 } } -layers { +layer { name: "relu6" - type: RELU + type: "ReLU" bottom: "fc6" top: "fc6" } -layers { +layer { name: "drop6" - type: DROPOUT + type: "Dropout" bottom: "fc6" top: "fc6" dropout_param { dropout_ratio: 0.5 } } -layers { +layer { name: "fc7" - type: INNER_PRODUCT + type: "InnerProduct" bottom: "fc6" top: "fc7" inner_product_param { num_output: 4096 } } -layers { +layer { name: "relu7" - type: RELU + type: "ReLU" bottom: "fc7" top: "fc7" } -layers { +layer { name: "drop7" - type: DROPOUT + type: "Dropout" bottom: "fc7" top: "fc7" dropout_param { @@ -196,9 +196,9 @@ layers { } } # R-CNN classification layer made from R-CNN ILSVRC13 SVMs. -layers { +layer { name: "fc-rcnn" - type: INNER_PRODUCT + type: "InnerProduct" bottom: "fc7" top: "fc-rcnn" inner_product_param { diff --git a/models/finetune_flickr_style/deploy.prototxt b/models/finetune_flickr_style/deploy.prototxt index aa2ad961..4a924f74 100644 --- a/models/finetune_flickr_style/deploy.prototxt +++ b/models/finetune_flickr_style/deploy.prototxt @@ -4,15 +4,19 @@ input_dim: 10 input_dim: 3 input_dim: 227 input_dim: 227 -layers { +layer { name: "conv1" - type: CONVOLUTION + type: "Convolution" bottom: "data" top: "conv1" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 96 kernel_size: 11 @@ -27,15 +31,15 @@ layers { } } } -layers { +layer { name: "relu1" - type: RELU + type: "ReLU" bottom: "conv1" top: "conv1" } -layers { +layer { name: "pool1" - type: POOLING + type: "Pooling" bottom: "conv1" top: "pool1" pooling_param { @@ -44,9 +48,9 @@ layers { stride: 2 } } -layers { +layer { name: "norm1" - type: LRN + type: "LRN" bottom: "pool1" top: "norm1" lrn_param { @@ -55,15 +59,19 @@ layers { beta: 0.75 } } -layers { +layer { name: "conv2" - type: CONVOLUTION + type: "Convolution" bottom: "norm1" top: "conv2" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 256 pad: 2 @@ -79,15 +87,15 @@ layers { } } } -layers { +layer { name: "relu2" - type: RELU + type: "ReLU" bottom: "conv2" top: "conv2" } -layers { +layer { name: "pool2" - type: POOLING + type: "Pooling" bottom: "conv2" top: "pool2" pooling_param { @@ -96,9 +104,9 @@ layers { stride: 2 } } -layers { +layer { name: "norm2" - type: LRN + type: "LRN" bottom: "pool2" top: "norm2" lrn_param { @@ -107,15 +115,19 @@ layers { beta: 0.75 } } -layers { +layer { name: "conv3" - type: CONVOLUTION + type: "Convolution" bottom: "norm2" top: "conv3" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 384 pad: 1 @@ -130,21 +142,25 @@ layers { } } } -layers { +layer { name: "relu3" - type: RELU + type: "ReLU" bottom: "conv3" top: "conv3" } -layers { +layer { name: "conv4" - type: CONVOLUTION + type: "Convolution" bottom: "conv3" top: "conv4" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 384 pad: 1 @@ -160,21 +176,25 @@ layers { } } } -layers { +layer { name: "relu4" - type: RELU + type: "ReLU" bottom: "conv4" top: "conv4" } -layers { +layer { name: "conv5" - type: CONVOLUTION + type: "Convolution" bottom: "conv4" top: "conv5" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 256 pad: 1 @@ -190,15 +210,15 @@ layers { } } } -layers { +layer { name: "relu5" - type: RELU + type: "ReLU" bottom: "conv5" top: "conv5" } -layers { +layer { name: "pool5" - type: POOLING + type: "Pooling" bottom: "conv5" top: "pool5" pooling_param { @@ -207,15 +227,19 @@ layers { stride: 2 } } -layers { +layer { name: "fc6" - type: INNER_PRODUCT + type: "InnerProduct" bottom: "pool5" top: "fc6" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 4096 weight_filler { @@ -228,31 +252,35 @@ layers { } } } -layers { +layer { name: "relu6" - type: RELU + type: "ReLU" bottom: "fc6" top: "fc6" } -layers { +layer { name: "drop6" - type: DROPOUT + type: "Dropout" bottom: "fc6" top: "fc6" dropout_param { dropout_ratio: 0.5 } } -layers { +layer { name: "fc7" - type: INNER_PRODUCT + type: "InnerProduct" bottom: "fc6" top: "fc7" - # Note that blobs_lr can be set to 0 to disable any fine-tuning of this, and any other, layer - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + # Note that lr_mult can be set to 0 to disable any fine-tuning of this, and any other, layer + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 4096 weight_filler { @@ -265,31 +293,35 @@ layers { } } } -layers { +layer { name: "relu7" - type: RELU + type: "ReLU" bottom: "fc7" top: "fc7" } -layers { +layer { name: "drop7" - type: DROPOUT + type: "Dropout" bottom: "fc7" top: "fc7" dropout_param { dropout_ratio: 0.5 } } -layers { +layer { name: "fc8_flickr" - type: INNER_PRODUCT + type: "InnerProduct" bottom: "fc7" top: "fc8_flickr" - # blobs_lr is set to higher than for other layers, because this layer is starting from random while the others are already trained - blobs_lr: 10 - blobs_lr: 20 - weight_decay: 1 - weight_decay: 0 + # lr_mult is set to higher than for other layers, because this layer is starting from random while the others are already trained + param { + lr_mult: 10 + decay_mult: 1 + } + param { + lr_mult: 20 + decay_mult: 0 + } inner_product_param { num_output: 20 weight_filler { @@ -302,9 +334,9 @@ layers { } } } -layers { +layer { name: "prob" - type: SOFTMAX + type: "Softmax" bottom: "fc8_flickr" top: "prob" } diff --git a/models/finetune_flickr_style/train_val.prototxt b/models/finetune_flickr_style/train_val.prototxt index 7155c492..aa9c73e1 100644 --- a/models/finetune_flickr_style/train_val.prototxt +++ b/models/finetune_flickr_style/train_val.prototxt @@ -1,49 +1,57 @@ name: "FlickrStyleCaffeNet" -layers { +layer { name: "data" - type: IMAGE_DATA + type: "ImageData" top: "data" top: "label" + include { + phase: TRAIN + } + transform_param { + mirror: true + crop_size: 227 + mean_file: "data/ilsvrc12/imagenet_mean.binaryproto" + } image_data_param { source: "data/flickr_style/train.txt" batch_size: 50 new_height: 256 new_width: 256 } - transform_param { - crop_size: 227 - mean_file: "data/ilsvrc12/imagenet_mean.binaryproto" - mirror: true - } - include: { phase: TRAIN } } -layers { +layer { name: "data" - type: IMAGE_DATA + type: "ImageData" top: "data" top: "label" + include { + phase: TEST + } + transform_param { + mirror: false + crop_size: 227 + mean_file: "data/ilsvrc12/imagenet_mean.binaryproto" + } image_data_param { source: "data/flickr_style/test.txt" batch_size: 50 new_height: 256 new_width: 256 } - transform_param { - crop_size: 227 - mean_file: "data/ilsvrc12/imagenet_mean.binaryproto" - mirror: false - } - include: { phase: TEST } } -layers { +layer { name: "conv1" - type: CONVOLUTION + type: "Convolution" bottom: "data" top: "conv1" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 96 kernel_size: 11 @@ -58,15 +66,15 @@ layers { } } } -layers { +layer { name: "relu1" - type: RELU + type: "ReLU" bottom: "conv1" top: "conv1" } -layers { +layer { name: "pool1" - type: POOLING + type: "Pooling" bottom: "conv1" top: "pool1" pooling_param { @@ -75,9 +83,9 @@ layers { stride: 2 } } -layers { +layer { name: "norm1" - type: LRN + type: "LRN" bottom: "pool1" top: "norm1" lrn_param { @@ -86,15 +94,19 @@ layers { beta: 0.75 } } -layers { +layer { name: "conv2" - type: CONVOLUTION + type: "Convolution" bottom: "norm1" top: "conv2" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 256 pad: 2 @@ -110,15 +122,15 @@ layers { } } } -layers { +layer { name: "relu2" - type: RELU + type: "ReLU" bottom: "conv2" top: "conv2" } -layers { +layer { name: "pool2" - type: POOLING + type: "Pooling" bottom: "conv2" top: "pool2" pooling_param { @@ -127,9 +139,9 @@ layers { stride: 2 } } -layers { +layer { name: "norm2" - type: LRN + type: "LRN" bottom: "pool2" top: "norm2" lrn_param { @@ -138,15 +150,19 @@ layers { beta: 0.75 } } -layers { +layer { name: "conv3" - type: CONVOLUTION + type: "Convolution" bottom: "norm2" top: "conv3" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 384 pad: 1 @@ -161,21 +177,25 @@ layers { } } } -layers { +layer { name: "relu3" - type: RELU + type: "ReLU" bottom: "conv3" top: "conv3" } -layers { +layer { name: "conv4" - type: CONVOLUTION + type: "Convolution" bottom: "conv3" top: "conv4" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 384 pad: 1 @@ -191,21 +211,25 @@ layers { } } } -layers { +layer { name: "relu4" - type: RELU + type: "ReLU" bottom: "conv4" top: "conv4" } -layers { +layer { name: "conv5" - type: CONVOLUTION + type: "Convolution" bottom: "conv4" top: "conv5" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } convolution_param { num_output: 256 pad: 1 @@ -221,15 +245,15 @@ layers { } } } -layers { +layer { name: "relu5" - type: RELU + type: "ReLU" bottom: "conv5" top: "conv5" } -layers { +layer { name: "pool5" - type: POOLING + type: "Pooling" bottom: "conv5" top: "pool5" pooling_param { @@ -238,15 +262,19 @@ layers { stride: 2 } } -layers { +layer { name: "fc6" - type: INNER_PRODUCT + type: "InnerProduct" bottom: "pool5" top: "fc6" - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 4096 weight_filler { @@ -259,31 +287,35 @@ layers { } } } -layers { +layer { name: "relu6" - type: RELU + type: "ReLU" bottom: "fc6" top: "fc6" } -layers { +layer { name: "drop6" - type: DROPOUT + type: "Dropout" bottom: "fc6" top: "fc6" dropout_param { dropout_ratio: 0.5 } } -layers { +layer { name: "fc7" - type: INNER_PRODUCT + type: "InnerProduct" bottom: "fc6" top: "fc7" - # Note that blobs_lr can be set to 0 to disable any fine-tuning of this, and any other, layer - blobs_lr: 1 - blobs_lr: 2 - weight_decay: 1 - weight_decay: 0 + # Note that lr_mult can be set to 0 to disable any fine-tuning of this, and any other, layer + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } inner_product_param { num_output: 4096 weight_filler { @@ -296,31 +328,35 @@ layers { } } } -layers { +layer { name: "relu7" - type: RELU + type: "ReLU" bottom: "fc7" top: "fc7" } -layers { +layer { name: "drop7" - type: DROPOUT + type: "Dropout" bottom: "fc7" top: "fc7" dropout_param { dropout_ratio: 0.5 } } -layers { +layer { name: "fc8_flickr" - type: INNER_PRODUCT + type: "InnerProduct" bottom: "fc7" top: "fc8_flickr" - # blobs_lr is set to higher than for other layers, because this layer is starting from random while the others are already trained - blobs_lr: 10 - blobs_lr: 20 - weight_decay: 1 - weight_decay: 0 + # lr_mult is set to higher than for other layers, because this layer is starting from random while the others are already trained + param { + lr_mult: 10 + decay_mult: 1 + } + param { + lr_mult: 20 + decay_mult: 0 + } inner_product_param { num_output: 20 weight_filler { @@ -333,17 +369,19 @@ layers { } } } -layers { +layer { name: "loss" - type: SOFTMAX_LOSS + type: "SoftmaxWithLoss" bottom: "fc8_flickr" bottom: "label" } -layers { +layer { name: "accuracy" - type: ACCURACY + type: "Accuracy" bottom: "fc8_flickr" bottom: "label" top: "accuracy" - include: { phase: TEST } + include { + phase: TEST + } } |