+++ /dev/null
-name: "CaffeNet"
-layers {
- layer {
- name: "data"
- type: "data"
- source: "/home/jiayq/Data/ILSVRC12/train-leveldb"
- meanfile: "/home/jiayq/Data/ILSVRC12/image_mean.binaryproto"
- batchsize: 256
- cropsize: 227
- mirror: true
- }
- top: "data"
- top: "label"
-}
-layers {
- layer {
- name: "conv1"
- type: "conv"
- num_output: 96
- kernelsize: 11
- stride: 4
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0.
- }
- blobs_lr: 1.
- blobs_lr: 2.
- weight_decay: 1.
- weight_decay: 0.
- }
- bottom: "data"
- top: "conv1"
-}
-layers {
- layer {
- name: "relu1"
- type: "relu"
- }
- bottom: "conv1"
- top: "conv1"
-}
-layers {
- layer {
- name: "pool1"
- type: "pool"
- pool: MAX
- kernelsize: 3
- stride: 2
- }
- bottom: "conv1"
- top: "pool1"
-}
-layers {
- layer {
- name: "norm1"
- type: "lrn"
- local_size: 5
- alpha: 0.0001
- beta: 0.75
- }
- bottom: "pool1"
- top: "norm1"
-}
-layers {
- layer {
- name: "pad2"
- type: "padding"
- pad: 2
- }
- bottom: "norm1"
- top: "pad2"
-}
-layers {
- layer {
- name: "conv2"
- type: "conv"
- num_output: 256
- group: 2
- kernelsize: 5
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 1.
- }
- blobs_lr: 1.
- blobs_lr: 2.
- weight_decay: 1.
- weight_decay: 0.
- }
- bottom: "pad2"
- top: "conv2"
-}
-layers {
- layer {
- name: "relu2"
- type: "relu"
- }
- bottom: "conv2"
- top: "conv2"
-}
-layers {
- layer {
- name: "pool2"
- type: "pool"
- pool: MAX
- kernelsize: 3
- stride: 2
- }
- bottom: "conv2"
- top: "pool2"
-}
-layers {
- layer {
- name: "norm2"
- type: "lrn"
- local_size: 5
- alpha: 0.0001
- beta: 0.75
- }
- bottom: "pool2"
- top: "norm2"
-}
-layers {
- layer {
- name: "pad3"
- type: "padding"
- pad: 1
- }
- bottom: "norm2"
- top: "pad3"
-}
-layers {
- layer {
- name: "conv3"
- type: "conv"
- num_output: 384
- kernelsize: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0.
- }
- blobs_lr: 1.
- blobs_lr: 2.
- weight_decay: 1.
- weight_decay: 0.
- }
- bottom: "pad3"
- top: "conv3"
-}
-layers {
- layer {
- name: "relu3"
- type: "relu"
- }
- bottom: "conv3"
- top: "conv3"
-}
-layers {
- layer {
- name: "pad4"
- type: "padding"
- pad: 1
- }
- bottom: "conv3"
- top: "pad4"
-}
-layers {
- layer {
- name: "conv4"
- type: "conv"
- num_output: 384
- group: 2
- kernelsize: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 1.
- }
- blobs_lr: 1.
- blobs_lr: 2.
- weight_decay: 1.
- weight_decay: 0.
- }
- bottom: "pad4"
- top: "conv4"
-}
-layers {
- layer {
- name: "relu4"
- type: "relu"
- }
- bottom: "conv4"
- top: "conv4"
-}
-layers {
- layer {
- name: "pad5"
- type: "padding"
- pad: 1
- }
- bottom: "conv4"
- top: "pad5"
-}
-layers {
- layer {
- name: "conv5"
- type: "conv"
- num_output: 256
- group: 2
- kernelsize: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 1.
- }
- blobs_lr: 1.
- blobs_lr: 2.
- weight_decay: 1.
- weight_decay: 0.
- }
- bottom: "pad5"
- top: "conv5"
-}
-layers {
- layer {
- name: "relu5"
- type: "relu"
- }
- bottom: "conv5"
- top: "conv5"
-}
-layers {
- layer {
- name: "pool5"
- type: "pool"
- kernelsize: 3
- pool: MAX
- stride: 2
- }
- bottom: "conv5"
- top: "pool5"
-}
-layers {
- layer {
- name: "fc6"
- type: "innerproduct"
- num_output: 4096
- weight_filler {
- type: "gaussian"
- std: 0.005
- }
- bias_filler {
- type: "constant"
- value: 1.
- }
- blobs_lr: 1.
- blobs_lr: 2.
- weight_decay: 1.
- weight_decay: 0.
- }
- bottom: "pool5"
- top: "fc6"
-}
-layers {
- layer {
- name: "relu6"
- type: "relu"
- }
- bottom: "fc6"
- top: "fc6"
-}
-layers {
- layer {
- name: "drop6"
- type: "dropout"
- dropout_ratio: 0.5
- }
- bottom: "fc6"
- top: "fc6"
-}
-layers {
- layer {
- name: "fc7"
- type: "innerproduct"
- num_output: 4096
- weight_filler {
- type: "gaussian"
- std: 0.005
- }
- bias_filler {
- type: "constant"
- value: 1.
- }
- blobs_lr: 1.
- blobs_lr: 2.
- weight_decay: 1.
- weight_decay: 0.
- }
- bottom: "fc6"
- top: "fc7"
-}
-layers {
- layer {
- name: "relu7"
- type: "relu"
- }
- bottom: "fc7"
- top: "fc7"
-}
-layers {
- layer {
- name: "drop7"
- type: "dropout"
- dropout_ratio: 0.5
- }
- bottom: "fc7"
- top: "fc7"
-}
-layers {
- layer {
- name: "fc8"
- type: "innerproduct"
- num_output: 1000
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0
- }
- blobs_lr: 1.
- blobs_lr: 2.
- weight_decay: 1.
- weight_decay: 0.
- }
- bottom: "fc7"
- top: "fc8"
-}
-layers {
- layer {
- name: "loss"
- type: "softmax_loss"
- }
- bottom: "fc8"
- bottom: "label"
-}
+++ /dev/null
-input: "data"
-input_dim: 10
-input_dim: 3
-input_dim: 227
-input_dim: 227
-layers {
- layer {
- name: "conv1"
- type: "conv"
- num_output: 96
- kernelsize: 11
- stride: 4
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0.
- }
- blobs_lr: 1.
- blobs_lr: 2.
- weight_decay: 1.
- weight_decay: 0.
- }
- bottom: "data"
- top: "conv1"
-}
-layers {
- layer {
- name: "relu1"
- type: "relu"
- }
- bottom: "conv1"
- top: "conv1"
-}
-layers {
- layer {
- name: "pool1"
- type: "pool"
- pool: MAX
- kernelsize: 3
- stride: 2
- }
- bottom: "conv1"
- top: "pool1"
-}
-layers {
- layer {
- name: "norm1"
- type: "lrn"
- local_size: 5
- alpha: 0.0001
- beta: 0.75
- }
- bottom: "pool1"
- top: "norm1"
-}
-layers {
- layer {
- name: "pad2"
- type: "padding"
- pad: 2
- }
- bottom: "norm1"
- top: "pad2"
-}
-layers {
- layer {
- name: "conv2"
- type: "conv"
- num_output: 256
- group: 2
- kernelsize: 5
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 1.
- }
- blobs_lr: 1.
- blobs_lr: 2.
- weight_decay: 1.
- weight_decay: 0.
- }
- bottom: "pad2"
- top: "conv2"
-}
-layers {
- layer {
- name: "relu2"
- type: "relu"
- }
- bottom: "conv2"
- top: "conv2"
-}
-layers {
- layer {
- name: "pool2"
- type: "pool"
- pool: MAX
- kernelsize: 3
- stride: 2
- }
- bottom: "conv2"
- top: "pool2"
-}
-layers {
- layer {
- name: "norm2"
- type: "lrn"
- local_size: 5
- alpha: 0.0001
- beta: 0.75
- }
- bottom: "pool2"
- top: "norm2"
-}
-layers {
- layer {
- name: "pad3"
- type: "padding"
- pad: 1
- }
- bottom: "norm2"
- top: "pad3"
-}
-layers {
- layer {
- name: "conv3"
- type: "conv"
- num_output: 384
- kernelsize: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0.
- }
- blobs_lr: 1.
- blobs_lr: 2.
- weight_decay: 1.
- weight_decay: 0.
- }
- bottom: "pad3"
- top: "conv3"
-}
-layers {
- layer {
- name: "relu3"
- type: "relu"
- }
- bottom: "conv3"
- top: "conv3"
-}
-layers {
- layer {
- name: "pad4"
- type: "padding"
- pad: 1
- }
- bottom: "conv3"
- top: "pad4"
-}
-layers {
- layer {
- name: "conv4"
- type: "conv"
- num_output: 384
- group: 2
- kernelsize: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 1.
- }
- blobs_lr: 1.
- blobs_lr: 2.
- weight_decay: 1.
- weight_decay: 0.
- }
- bottom: "pad4"
- top: "conv4"
-}
-layers {
- layer {
- name: "relu4"
- type: "relu"
- }
- bottom: "conv4"
- top: "conv4"
-}
-layers {
- layer {
- name: "pad5"
- type: "padding"
- pad: 1
- }
- bottom: "conv4"
- top: "pad5"
-}
-layers {
- layer {
- name: "conv5"
- type: "conv"
- num_output: 256
- group: 2
- kernelsize: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 1.
- }
- blobs_lr: 1.
- blobs_lr: 2.
- weight_decay: 1.
- weight_decay: 0.
- }
- bottom: "pad5"
- top: "conv5"
-}
-layers {
- layer {
- name: "relu5"
- type: "relu"
- }
- bottom: "conv5"
- top: "conv5"
-}
-layers {
- layer {
- name: "pool5"
- type: "pool"
- kernelsize: 3
- pool: MAX
- stride: 2
- }
- bottom: "conv5"
- top: "pool5"
-}
-layers {
- layer {
- name: "fc6"
- type: "innerproduct"
- num_output: 4096
- weight_filler {
- type: "gaussian"
- std: 0.005
- }
- bias_filler {
- type: "constant"
- value: 1.
- }
- blobs_lr: 1.
- blobs_lr: 2.
- weight_decay: 1.
- weight_decay: 0.
- }
- bottom: "pool5"
- top: "fc6"
-}
-layers {
- layer {
- name: "relu6"
- type: "relu"
- }
- bottom: "fc6"
- top: "fc6"
-}
-layers {
- layer {
- name: "drop6"
- type: "dropout"
- dropout_ratio: 0.5
- }
- bottom: "fc6"
- top: "fc6"
-}
-layers {
- layer {
- name: "fc7"
- type: "innerproduct"
- num_output: 4096
- weight_filler {
- type: "gaussian"
- std: 0.005
- }
- bias_filler {
- type: "constant"
- value: 1.
- }
- blobs_lr: 1.
- blobs_lr: 2.
- weight_decay: 1.
- weight_decay: 0.
- }
- bottom: "fc6"
- top: "fc7"
-}
-layers {
- layer {
- name: "relu7"
- type: "relu"
- }
- bottom: "fc7"
- top: "fc7"
-}
-layers {
- layer {
- name: "drop7"
- type: "dropout"
- dropout_ratio: 0.5
- }
- bottom: "fc7"
- top: "fc7"
-}
-layers {
- layer {
- name: "fc8"
- type: "innerproduct"
- num_output: 1000
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0
- }
- blobs_lr: 1.
- blobs_lr: 2.
- weight_decay: 1.
- weight_decay: 0.
- }
- bottom: "fc7"
- top: "fc8"
-}
-layers {
- layer {
- name: "prob"
- type: "softmax"
- }
- bottom: "fc8"
- top: "prob"
-}
+++ /dev/null
-train_net: "examples/imagenet.prototxt"
-test_net: "examples/imagenet_val.prototxt"
-test_iter: 1000
-test_interval: 1000
-base_lr: 0.01
-lr_policy: "step"
-gamma: 0.1
-stepsize: 100000
-display: 20
-max_iter: 450000
-momentum: 0.9
-weight_decay: 0.0005
-snapshot: 10000
-snapshot_prefix: "caffe_imagenet_train"
+++ /dev/null
-name: "CaffeNet"
-layers {
- layer {
- name: "data"
- type: "data"
- source: "/home/jiayq/Data/ILSVRC12/val-leveldb"
- meanfile: "/home/jiayq/Data/ILSVRC12/image_mean.binaryproto"
- batchsize: 50
- cropsize: 227
- mirror: false
- }
- top: "data"
- top: "label"
-}
-layers {
- layer {
- name: "conv1"
- type: "conv"
- num_output: 96
- kernelsize: 11
- stride: 4
- }
- bottom: "data"
- top: "conv1"
-}
-layers {
- layer {
- name: "relu1"
- type: "relu"
- }
- bottom: "conv1"
- top: "conv1"
-}
-layers {
- layer {
- name: "pool1"
- type: "pool"
- pool: MAX
- kernelsize: 3
- stride: 2
- }
- bottom: "conv1"
- top: "pool1"
-}
-layers {
- layer {
- name: "norm1"
- type: "lrn"
- local_size: 5
- alpha: 0.0001
- beta: 0.75
- }
- bottom: "pool1"
- top: "norm1"
-}
-layers {
- layer {
- name: "pad2"
- type: "padding"
- pad: 2
- }
- bottom: "norm1"
- top: "pad2"
-}
-layers {
- layer {
- name: "conv2"
- type: "conv"
- num_output: 256
- group: 2
- kernelsize: 5
- }
- bottom: "pad2"
- top: "conv2"
-}
-layers {
- layer {
- name: "relu2"
- type: "relu"
- }
- bottom: "conv2"
- top: "conv2"
-}
-layers {
- layer {
- name: "pool2"
- type: "pool"
- pool: MAX
- kernelsize: 3
- stride: 2
- }
- bottom: "conv2"
- top: "pool2"
-}
-layers {
- layer {
- name: "norm2"
- type: "lrn"
- local_size: 5
- alpha: 0.0001
- beta: 0.75
- }
- bottom: "pool2"
- top: "norm2"
-}
-layers {
- layer {
- name: "pad3"
- type: "padding"
- pad: 1
- }
- bottom: "norm2"
- top: "pad3"
-}
-layers {
- layer {
- name: "conv3"
- type: "conv"
- num_output: 384
- kernelsize: 3
- }
- bottom: "pad3"
- top: "conv3"
-}
-layers {
- layer {
- name: "relu3"
- type: "relu"
- }
- bottom: "conv3"
- top: "conv3"
-}
-layers {
- layer {
- name: "pad4"
- type: "padding"
- pad: 1
- }
- bottom: "conv3"
- top: "pad4"
-}
-layers {
- layer {
- name: "conv4"
- type: "conv"
- num_output: 384
- group: 2
- kernelsize: 3
- }
- bottom: "pad4"
- top: "conv4"
-}
-layers {
- layer {
- name: "relu4"
- type: "relu"
- }
- bottom: "conv4"
- top: "conv4"
-}
-layers {
- layer {
- name: "pad5"
- type: "padding"
- pad: 1
- }
- bottom: "conv4"
- top: "pad5"
-}
-layers {
- layer {
- name: "conv5"
- type: "conv"
- num_output: 256
- group: 2
- kernelsize: 3
- }
- bottom: "pad5"
- top: "conv5"
-}
-layers {
- layer {
- name: "relu5"
- type: "relu"
- }
- bottom: "conv5"
- top: "conv5"
-}
-layers {
- layer {
- name: "pool5"
- type: "pool"
- kernelsize: 3
- pool: MAX
- stride: 2
- }
- bottom: "conv5"
- top: "pool5"
-}
-layers {
- layer {
- name: "fc6"
- type: "innerproduct"
- num_output: 4096
- }
- bottom: "pool5"
- top: "fc6"
-}
-layers {
- layer {
- name: "relu6"
- type: "relu"
- }
- bottom: "fc6"
- top: "fc6"
-}
-layers {
- layer {
- name: "drop6"
- type: "dropout"
- dropout_ratio: 0.5
- }
- bottom: "fc6"
- top: "fc6"
-}
-layers {
- layer {
- name: "fc7"
- type: "innerproduct"
- num_output: 4096
- }
- bottom: "fc6"
- top: "fc7"
-}
-layers {
- layer {
- name: "relu7"
- type: "relu"
- }
- bottom: "fc7"
- top: "fc7"
-}
-layers {
- layer {
- name: "drop7"
- type: "dropout"
- dropout_ratio: 0.5
- }
- bottom: "fc7"
- top: "fc7"
-}
-layers {
- layer {
- name: "fc8"
- type: "innerproduct"
- num_output: 1000
- }
- bottom: "fc7"
- top: "fc8"
-}
-layers {
- layer {
- name: "prob"
- type: "softmax"
- }
- bottom: "fc8"
- top: "prob"
-}
-layers {
- layer {
- name: "accuracy"
- type: "accuracy"
- }
- bottom: "prob"
- bottom: "label"
- top: "accuracy"
-}
+++ /dev/null
-name: "LeNet"
-layers {
- layer {
- name: "mnist"
- type: "data"
- source: "../data/mnist-train-leveldb"
- batchsize: 64
- scale: 0.00390625
- }
- top: "data"
- top: "label"
-}
-layers {
- layer {
- name: "conv1"
- type: "conv"
- num_output: 20
- kernelsize: 5
- stride: 1
- weight_filler {
- type: "xavier"
- }
- bias_filler {
- type: "constant"
- }
- blobs_lr: 1.
- blobs_lr: 2.
- }
- bottom: "data"
- top: "conv1"
-}
-layers {
- layer {
- name: "pool1"
- type: "pool"
- kernelsize: 2
- stride: 2
- pool: MAX
- }
- bottom: "conv1"
- top: "pool1"
-}
-layers {
- layer {
- name: "conv2"
- type: "conv"
- num_output: 50
- kernelsize: 5
- stride: 1
- weight_filler {
- type: "xavier"
- }
- bias_filler {
- type: "constant"
- }
- blobs_lr: 1.
- blobs_lr: 2.
- }
- bottom: "pool1"
- top: "conv2"
-}
-layers {
- layer {
- name: "pool2"
- type: "pool"
- kernelsize: 2
- stride: 2
- pool: MAX
- }
- bottom: "conv2"
- top: "pool2"
-}
-layers {
- layer {
- name: "ip1"
- type: "innerproduct"
- num_output: 500
- weight_filler {
- type: "xavier"
- }
- bias_filler {
- type: "constant"
- }
- blobs_lr: 1.
- blobs_lr: 2.
- }
- bottom: "pool2"
- top: "ip1"
-}
-layers {
- layer {
- name: "relu1"
- type: "relu"
- }
- bottom: "ip1"
- top: "ip1"
-}
-layers {
- layer {
- name: "ip2"
- type: "innerproduct"
- num_output: 10
- weight_filler {
- type: "xavier"
- }
- bias_filler {
- type: "constant"
- }
- blobs_lr: 1.
- blobs_lr: 2.
- }
- bottom: "ip1"
- top: "ip2"
-}
-layers {
- layer {
- name: "loss"
- type: "softmax_loss"
- }
- bottom: "ip2"
- bottom: "label"
-}
+++ /dev/null
-# The training protocol buffer definition
-train_net: "lenet.prototxt"
-# The testing protocol buffer definition
-test_net: "lenet_test.prototxt"
-# test_iter specifies how many forward passes the test should carry out.
-# In the case of MNIST, we have test batch size 100 and 100 test iterations,
-# covering the full 10,000 testing images.
-test_iter: 100
-# Carry out testing every 500 training iterations.
-test_interval: 500
-# The base learning rate, momentum and the weight decay of the network.
-base_lr: 0.01
-momentum: 0.9
-weight_decay: 0.0005
-# The learning rate policy
-lr_policy: "inv"
-gamma: 0.0001
-power: 0.75
-# Display every 100 iterations
-display: 100
-# The maximum number of iterations
-max_iter: 10000
-# snapshot intermediate results
-snapshot: 5000
-snapshot_prefix: "lenet"
-# solver mode: 0 for CPU and 1 for GPU
-solver_mode: 1
+++ /dev/null
-name: "LeNet-test"
-layers {
- layer {
- name: "mnist"
- type: "data"
- source: "../data/mnist-test-leveldb"
- batchsize: 100
- scale: 0.00390625
- }
- top: "data"
- top: "label"
-}
-layers {
- layer {
- name: "conv1"
- type: "conv"
- num_output: 20
- kernelsize: 5
- stride: 1
- weight_filler {
- type: "xavier"
- }
- bias_filler {
- type: "constant"
- }
- }
- bottom: "data"
- top: "conv1"
-}
-layers {
- layer {
- name: "pool1"
- type: "pool"
- kernelsize: 2
- stride: 2
- pool: MAX
- }
- bottom: "conv1"
- top: "pool1"
-}
-layers {
- layer {
- name: "conv2"
- type: "conv"
- num_output: 50
- kernelsize: 5
- stride: 1
- weight_filler {
- type: "xavier"
- }
- bias_filler {
- type: "constant"
- }
- }
- bottom: "pool1"
- top: "conv2"
-}
-layers {
- layer {
- name: "pool2"
- type: "pool"
- kernelsize: 2
- stride: 2
- pool: MAX
- }
- bottom: "conv2"
- top: "pool2"
-}
-layers {
- layer {
- name: "ip1"
- type: "innerproduct"
- num_output: 500
- weight_filler {
- type: "xavier"
- }
- bias_filler {
- type: "constant"
- }
- }
- bottom: "pool2"
- top: "ip1"
-}
-layers {
- layer {
- name: "relu1"
- type: "relu"
- }
- bottom: "ip1"
- top: "ip1"
-}
-layers {
- layer {
- name: "ip2"
- type: "innerproduct"
- num_output: 10
- weight_filler {
- type: "xavier"
- }
- bias_filler {
- type: "constant"
- }
- }
- bottom: "ip1"
- top: "ip2"
-}
-layers {
- layer {
- name: "prob"
- type: "softmax"
- }
- bottom: "ip2"
- top: "prob"
-}
-layers {
- layer {
- name: "accuracy"
- type: "accuracy"
- }
- bottom: "prob"
- bottom: "label"
- top: "accuracy"
-}
--- /dev/null
+name: "CaffeNet"
+layers {
+ layer {
+ name: "data"
+ type: "data"
+ source: "/home/jiayq/Data/ILSVRC12/train-leveldb"
+ meanfile: "/home/jiayq/Data/ILSVRC12/image_mean.binaryproto"
+ batchsize: 256
+ cropsize: 227
+ mirror: true
+ }
+ top: "data"
+ top: "label"
+}
+layers {
+ layer {
+ name: "conv1"
+ type: "conv"
+ num_output: 96
+ kernelsize: 11
+ stride: 4
+ weight_filler {
+ type: "gaussian"
+ std: 0.01
+ }
+ bias_filler {
+ type: "constant"
+ value: 0.
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ weight_decay: 1.
+ weight_decay: 0.
+ }
+ bottom: "data"
+ top: "conv1"
+}
+layers {
+ layer {
+ name: "relu1"
+ type: "relu"
+ }
+ bottom: "conv1"
+ top: "conv1"
+}
+layers {
+ layer {
+ name: "pool1"
+ type: "pool"
+ pool: MAX
+ kernelsize: 3
+ stride: 2
+ }
+ bottom: "conv1"
+ top: "pool1"
+}
+layers {
+ layer {
+ name: "norm1"
+ type: "lrn"
+ local_size: 5
+ alpha: 0.0001
+ beta: 0.75
+ }
+ bottom: "pool1"
+ top: "norm1"
+}
+layers {
+ layer {
+ name: "pad2"
+ type: "padding"
+ pad: 2
+ }
+ bottom: "norm1"
+ top: "pad2"
+}
+layers {
+ layer {
+ name: "conv2"
+ type: "conv"
+ num_output: 256
+ group: 2
+ kernelsize: 5
+ weight_filler {
+ type: "gaussian"
+ std: 0.01
+ }
+ bias_filler {
+ type: "constant"
+ value: 1.
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ weight_decay: 1.
+ weight_decay: 0.
+ }
+ bottom: "pad2"
+ top: "conv2"
+}
+layers {
+ layer {
+ name: "relu2"
+ type: "relu"
+ }
+ bottom: "conv2"
+ top: "conv2"
+}
+layers {
+ layer {
+ name: "pool2"
+ type: "pool"
+ pool: MAX
+ kernelsize: 3
+ stride: 2
+ }
+ bottom: "conv2"
+ top: "pool2"
+}
+layers {
+ layer {
+ name: "norm2"
+ type: "lrn"
+ local_size: 5
+ alpha: 0.0001
+ beta: 0.75
+ }
+ bottom: "pool2"
+ top: "norm2"
+}
+layers {
+ layer {
+ name: "pad3"
+ type: "padding"
+ pad: 1
+ }
+ bottom: "norm2"
+ top: "pad3"
+}
+layers {
+ layer {
+ name: "conv3"
+ type: "conv"
+ num_output: 384
+ kernelsize: 3
+ weight_filler {
+ type: "gaussian"
+ std: 0.01
+ }
+ bias_filler {
+ type: "constant"
+ value: 0.
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ weight_decay: 1.
+ weight_decay: 0.
+ }
+ bottom: "pad3"
+ top: "conv3"
+}
+layers {
+ layer {
+ name: "relu3"
+ type: "relu"
+ }
+ bottom: "conv3"
+ top: "conv3"
+}
+layers {
+ layer {
+ name: "pad4"
+ type: "padding"
+ pad: 1
+ }
+ bottom: "conv3"
+ top: "pad4"
+}
+layers {
+ layer {
+ name: "conv4"
+ type: "conv"
+ num_output: 384
+ group: 2
+ kernelsize: 3
+ weight_filler {
+ type: "gaussian"
+ std: 0.01
+ }
+ bias_filler {
+ type: "constant"
+ value: 1.
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ weight_decay: 1.
+ weight_decay: 0.
+ }
+ bottom: "pad4"
+ top: "conv4"
+}
+layers {
+ layer {
+ name: "relu4"
+ type: "relu"
+ }
+ bottom: "conv4"
+ top: "conv4"
+}
+layers {
+ layer {
+ name: "pad5"
+ type: "padding"
+ pad: 1
+ }
+ bottom: "conv4"
+ top: "pad5"
+}
+layers {
+ layer {
+ name: "conv5"
+ type: "conv"
+ num_output: 256
+ group: 2
+ kernelsize: 3
+ weight_filler {
+ type: "gaussian"
+ std: 0.01
+ }
+ bias_filler {
+ type: "constant"
+ value: 1.
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ weight_decay: 1.
+ weight_decay: 0.
+ }
+ bottom: "pad5"
+ top: "conv5"
+}
+layers {
+ layer {
+ name: "relu5"
+ type: "relu"
+ }
+ bottom: "conv5"
+ top: "conv5"
+}
+layers {
+ layer {
+ name: "pool5"
+ type: "pool"
+ kernelsize: 3
+ pool: MAX
+ stride: 2
+ }
+ bottom: "conv5"
+ top: "pool5"
+}
+layers {
+ layer {
+ name: "fc6"
+ type: "innerproduct"
+ num_output: 4096
+ weight_filler {
+ type: "gaussian"
+ std: 0.005
+ }
+ bias_filler {
+ type: "constant"
+ value: 1.
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ weight_decay: 1.
+ weight_decay: 0.
+ }
+ bottom: "pool5"
+ top: "fc6"
+}
+layers {
+ layer {
+ name: "relu6"
+ type: "relu"
+ }
+ bottom: "fc6"
+ top: "fc6"
+}
+layers {
+ layer {
+ name: "drop6"
+ type: "dropout"
+ dropout_ratio: 0.5
+ }
+ bottom: "fc6"
+ top: "fc6"
+}
+layers {
+ layer {
+ name: "fc7"
+ type: "innerproduct"
+ num_output: 4096
+ weight_filler {
+ type: "gaussian"
+ std: 0.005
+ }
+ bias_filler {
+ type: "constant"
+ value: 1.
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ weight_decay: 1.
+ weight_decay: 0.
+ }
+ bottom: "fc6"
+ top: "fc7"
+}
+layers {
+ layer {
+ name: "relu7"
+ type: "relu"
+ }
+ bottom: "fc7"
+ top: "fc7"
+}
+layers {
+ layer {
+ name: "drop7"
+ type: "dropout"
+ dropout_ratio: 0.5
+ }
+ bottom: "fc7"
+ top: "fc7"
+}
+layers {
+ layer {
+ name: "fc8"
+ type: "innerproduct"
+ num_output: 1000
+ weight_filler {
+ type: "gaussian"
+ std: 0.01
+ }
+ bias_filler {
+ type: "constant"
+ value: 0
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ weight_decay: 1.
+ weight_decay: 0.
+ }
+ bottom: "fc7"
+ top: "fc8"
+}
+layers {
+ layer {
+ name: "loss"
+ type: "softmax_loss"
+ }
+ bottom: "fc8"
+ bottom: "label"
+}
--- /dev/null
+input: "data"
+input_dim: 10
+input_dim: 3
+input_dim: 227
+input_dim: 227
+layers {
+ layer {
+ name: "conv1"
+ type: "conv"
+ num_output: 96
+ kernelsize: 11
+ stride: 4
+ weight_filler {
+ type: "gaussian"
+ std: 0.01
+ }
+ bias_filler {
+ type: "constant"
+ value: 0.
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ weight_decay: 1.
+ weight_decay: 0.
+ }
+ bottom: "data"
+ top: "conv1"
+}
+layers {
+ layer {
+ name: "relu1"
+ type: "relu"
+ }
+ bottom: "conv1"
+ top: "conv1"
+}
+layers {
+ layer {
+ name: "pool1"
+ type: "pool"
+ pool: MAX
+ kernelsize: 3
+ stride: 2
+ }
+ bottom: "conv1"
+ top: "pool1"
+}
+layers {
+ layer {
+ name: "norm1"
+ type: "lrn"
+ local_size: 5
+ alpha: 0.0001
+ beta: 0.75
+ }
+ bottom: "pool1"
+ top: "norm1"
+}
+layers {
+ layer {
+ name: "pad2"
+ type: "padding"
+ pad: 2
+ }
+ bottom: "norm1"
+ top: "pad2"
+}
+layers {
+ layer {
+ name: "conv2"
+ type: "conv"
+ num_output: 256
+ group: 2
+ kernelsize: 5
+ weight_filler {
+ type: "gaussian"
+ std: 0.01
+ }
+ bias_filler {
+ type: "constant"
+ value: 1.
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ weight_decay: 1.
+ weight_decay: 0.
+ }
+ bottom: "pad2"
+ top: "conv2"
+}
+layers {
+ layer {
+ name: "relu2"
+ type: "relu"
+ }
+ bottom: "conv2"
+ top: "conv2"
+}
+layers {
+ layer {
+ name: "pool2"
+ type: "pool"
+ pool: MAX
+ kernelsize: 3
+ stride: 2
+ }
+ bottom: "conv2"
+ top: "pool2"
+}
+layers {
+ layer {
+ name: "norm2"
+ type: "lrn"
+ local_size: 5
+ alpha: 0.0001
+ beta: 0.75
+ }
+ bottom: "pool2"
+ top: "norm2"
+}
+layers {
+ layer {
+ name: "pad3"
+ type: "padding"
+ pad: 1
+ }
+ bottom: "norm2"
+ top: "pad3"
+}
+layers {
+ layer {
+ name: "conv3"
+ type: "conv"
+ num_output: 384
+ kernelsize: 3
+ weight_filler {
+ type: "gaussian"
+ std: 0.01
+ }
+ bias_filler {
+ type: "constant"
+ value: 0.
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ weight_decay: 1.
+ weight_decay: 0.
+ }
+ bottom: "pad3"
+ top: "conv3"
+}
+layers {
+ layer {
+ name: "relu3"
+ type: "relu"
+ }
+ bottom: "conv3"
+ top: "conv3"
+}
+layers {
+ layer {
+ name: "pad4"
+ type: "padding"
+ pad: 1
+ }
+ bottom: "conv3"
+ top: "pad4"
+}
+layers {
+ layer {
+ name: "conv4"
+ type: "conv"
+ num_output: 384
+ group: 2
+ kernelsize: 3
+ weight_filler {
+ type: "gaussian"
+ std: 0.01
+ }
+ bias_filler {
+ type: "constant"
+ value: 1.
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ weight_decay: 1.
+ weight_decay: 0.
+ }
+ bottom: "pad4"
+ top: "conv4"
+}
+layers {
+ layer {
+ name: "relu4"
+ type: "relu"
+ }
+ bottom: "conv4"
+ top: "conv4"
+}
+layers {
+ layer {
+ name: "pad5"
+ type: "padding"
+ pad: 1
+ }
+ bottom: "conv4"
+ top: "pad5"
+}
+layers {
+ layer {
+ name: "conv5"
+ type: "conv"
+ num_output: 256
+ group: 2
+ kernelsize: 3
+ weight_filler {
+ type: "gaussian"
+ std: 0.01
+ }
+ bias_filler {
+ type: "constant"
+ value: 1.
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ weight_decay: 1.
+ weight_decay: 0.
+ }
+ bottom: "pad5"
+ top: "conv5"
+}
+layers {
+ layer {
+ name: "relu5"
+ type: "relu"
+ }
+ bottom: "conv5"
+ top: "conv5"
+}
+layers {
+ layer {
+ name: "pool5"
+ type: "pool"
+ kernelsize: 3
+ pool: MAX
+ stride: 2
+ }
+ bottom: "conv5"
+ top: "pool5"
+}
+layers {
+ layer {
+ name: "fc6"
+ type: "innerproduct"
+ num_output: 4096
+ weight_filler {
+ type: "gaussian"
+ std: 0.005
+ }
+ bias_filler {
+ type: "constant"
+ value: 1.
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ weight_decay: 1.
+ weight_decay: 0.
+ }
+ bottom: "pool5"
+ top: "fc6"
+}
+layers {
+ layer {
+ name: "relu6"
+ type: "relu"
+ }
+ bottom: "fc6"
+ top: "fc6"
+}
+layers {
+ layer {
+ name: "drop6"
+ type: "dropout"
+ dropout_ratio: 0.5
+ }
+ bottom: "fc6"
+ top: "fc6"
+}
+layers {
+ layer {
+ name: "fc7"
+ type: "innerproduct"
+ num_output: 4096
+ weight_filler {
+ type: "gaussian"
+ std: 0.005
+ }
+ bias_filler {
+ type: "constant"
+ value: 1.
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ weight_decay: 1.
+ weight_decay: 0.
+ }
+ bottom: "fc6"
+ top: "fc7"
+}
+layers {
+ layer {
+ name: "relu7"
+ type: "relu"
+ }
+ bottom: "fc7"
+ top: "fc7"
+}
+layers {
+ layer {
+ name: "drop7"
+ type: "dropout"
+ dropout_ratio: 0.5
+ }
+ bottom: "fc7"
+ top: "fc7"
+}
+layers {
+ layer {
+ name: "fc8"
+ type: "innerproduct"
+ num_output: 1000
+ weight_filler {
+ type: "gaussian"
+ std: 0.01
+ }
+ bias_filler {
+ type: "constant"
+ value: 0
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ weight_decay: 1.
+ weight_decay: 0.
+ }
+ bottom: "fc7"
+ top: "fc8"
+}
+layers {
+ layer {
+ name: "prob"
+ type: "softmax"
+ }
+ bottom: "fc8"
+ top: "prob"
+}
--- /dev/null
+train_net: "examples/imagenet.prototxt"
+test_net: "examples/imagenet_val.prototxt"
+test_iter: 1000
+test_interval: 1000
+base_lr: 0.01
+lr_policy: "step"
+gamma: 0.1
+stepsize: 100000
+display: 20
+max_iter: 450000
+momentum: 0.9
+weight_decay: 0.0005
+snapshot: 10000
+snapshot_prefix: "caffe_imagenet_train"
--- /dev/null
+name: "CaffeNet"
+layers {
+ layer {
+ name: "data"
+ type: "data"
+ source: "/home/jiayq/Data/ILSVRC12/val-leveldb"
+ meanfile: "/home/jiayq/Data/ILSVRC12/image_mean.binaryproto"
+ batchsize: 50
+ cropsize: 227
+ mirror: false
+ }
+ top: "data"
+ top: "label"
+}
+layers {
+ layer {
+ name: "conv1"
+ type: "conv"
+ num_output: 96
+ kernelsize: 11
+ stride: 4
+ }
+ bottom: "data"
+ top: "conv1"
+}
+layers {
+ layer {
+ name: "relu1"
+ type: "relu"
+ }
+ bottom: "conv1"
+ top: "conv1"
+}
+layers {
+ layer {
+ name: "pool1"
+ type: "pool"
+ pool: MAX
+ kernelsize: 3
+ stride: 2
+ }
+ bottom: "conv1"
+ top: "pool1"
+}
+layers {
+ layer {
+ name: "norm1"
+ type: "lrn"
+ local_size: 5
+ alpha: 0.0001
+ beta: 0.75
+ }
+ bottom: "pool1"
+ top: "norm1"
+}
+layers {
+ layer {
+ name: "pad2"
+ type: "padding"
+ pad: 2
+ }
+ bottom: "norm1"
+ top: "pad2"
+}
+layers {
+ layer {
+ name: "conv2"
+ type: "conv"
+ num_output: 256
+ group: 2
+ kernelsize: 5
+ }
+ bottom: "pad2"
+ top: "conv2"
+}
+layers {
+ layer {
+ name: "relu2"
+ type: "relu"
+ }
+ bottom: "conv2"
+ top: "conv2"
+}
+layers {
+ layer {
+ name: "pool2"
+ type: "pool"
+ pool: MAX
+ kernelsize: 3
+ stride: 2
+ }
+ bottom: "conv2"
+ top: "pool2"
+}
+layers {
+ layer {
+ name: "norm2"
+ type: "lrn"
+ local_size: 5
+ alpha: 0.0001
+ beta: 0.75
+ }
+ bottom: "pool2"
+ top: "norm2"
+}
+layers {
+ layer {
+ name: "pad3"
+ type: "padding"
+ pad: 1
+ }
+ bottom: "norm2"
+ top: "pad3"
+}
+layers {
+ layer {
+ name: "conv3"
+ type: "conv"
+ num_output: 384
+ kernelsize: 3
+ }
+ bottom: "pad3"
+ top: "conv3"
+}
+layers {
+ layer {
+ name: "relu3"
+ type: "relu"
+ }
+ bottom: "conv3"
+ top: "conv3"
+}
+layers {
+ layer {
+ name: "pad4"
+ type: "padding"
+ pad: 1
+ }
+ bottom: "conv3"
+ top: "pad4"
+}
+layers {
+ layer {
+ name: "conv4"
+ type: "conv"
+ num_output: 384
+ group: 2
+ kernelsize: 3
+ }
+ bottom: "pad4"
+ top: "conv4"
+}
+layers {
+ layer {
+ name: "relu4"
+ type: "relu"
+ }
+ bottom: "conv4"
+ top: "conv4"
+}
+layers {
+ layer {
+ name: "pad5"
+ type: "padding"
+ pad: 1
+ }
+ bottom: "conv4"
+ top: "pad5"
+}
+layers {
+ layer {
+ name: "conv5"
+ type: "conv"
+ num_output: 256
+ group: 2
+ kernelsize: 3
+ }
+ bottom: "pad5"
+ top: "conv5"
+}
+layers {
+ layer {
+ name: "relu5"
+ type: "relu"
+ }
+ bottom: "conv5"
+ top: "conv5"
+}
+layers {
+ layer {
+ name: "pool5"
+ type: "pool"
+ kernelsize: 3
+ pool: MAX
+ stride: 2
+ }
+ bottom: "conv5"
+ top: "pool5"
+}
+layers {
+ layer {
+ name: "fc6"
+ type: "innerproduct"
+ num_output: 4096
+ }
+ bottom: "pool5"
+ top: "fc6"
+}
+layers {
+ layer {
+ name: "relu6"
+ type: "relu"
+ }
+ bottom: "fc6"
+ top: "fc6"
+}
+layers {
+ layer {
+ name: "drop6"
+ type: "dropout"
+ dropout_ratio: 0.5
+ }
+ bottom: "fc6"
+ top: "fc6"
+}
+layers {
+ layer {
+ name: "fc7"
+ type: "innerproduct"
+ num_output: 4096
+ }
+ bottom: "fc6"
+ top: "fc7"
+}
+layers {
+ layer {
+ name: "relu7"
+ type: "relu"
+ }
+ bottom: "fc7"
+ top: "fc7"
+}
+layers {
+ layer {
+ name: "drop7"
+ type: "dropout"
+ dropout_ratio: 0.5
+ }
+ bottom: "fc7"
+ top: "fc7"
+}
+layers {
+ layer {
+ name: "fc8"
+ type: "innerproduct"
+ num_output: 1000
+ }
+ bottom: "fc7"
+ top: "fc8"
+}
+layers {
+ layer {
+ name: "prob"
+ type: "softmax"
+ }
+ bottom: "fc8"
+ top: "prob"
+}
+layers {
+ layer {
+ name: "accuracy"
+ type: "accuracy"
+ }
+ bottom: "prob"
+ bottom: "label"
+ top: "accuracy"
+}
--- /dev/null
+name: "LeNet"
+layers {
+ layer {
+ name: "mnist"
+ type: "data"
+ source: "../data/mnist-train-leveldb"
+ batchsize: 64
+ scale: 0.00390625
+ }
+ top: "data"
+ top: "label"
+}
+layers {
+ layer {
+ name: "conv1"
+ type: "conv"
+ num_output: 20
+ kernelsize: 5
+ stride: 1
+ weight_filler {
+ type: "xavier"
+ }
+ bias_filler {
+ type: "constant"
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ }
+ bottom: "data"
+ top: "conv1"
+}
+layers {
+ layer {
+ name: "pool1"
+ type: "pool"
+ kernelsize: 2
+ stride: 2
+ pool: MAX
+ }
+ bottom: "conv1"
+ top: "pool1"
+}
+layers {
+ layer {
+ name: "conv2"
+ type: "conv"
+ num_output: 50
+ kernelsize: 5
+ stride: 1
+ weight_filler {
+ type: "xavier"
+ }
+ bias_filler {
+ type: "constant"
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ }
+ bottom: "pool1"
+ top: "conv2"
+}
+layers {
+ layer {
+ name: "pool2"
+ type: "pool"
+ kernelsize: 2
+ stride: 2
+ pool: MAX
+ }
+ bottom: "conv2"
+ top: "pool2"
+}
+layers {
+ layer {
+ name: "ip1"
+ type: "innerproduct"
+ num_output: 500
+ weight_filler {
+ type: "xavier"
+ }
+ bias_filler {
+ type: "constant"
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ }
+ bottom: "pool2"
+ top: "ip1"
+}
+layers {
+ layer {
+ name: "relu1"
+ type: "relu"
+ }
+ bottom: "ip1"
+ top: "ip1"
+}
+layers {
+ layer {
+ name: "ip2"
+ type: "innerproduct"
+ num_output: 10
+ weight_filler {
+ type: "xavier"
+ }
+ bias_filler {
+ type: "constant"
+ }
+ blobs_lr: 1.
+ blobs_lr: 2.
+ }
+ bottom: "ip1"
+ top: "ip2"
+}
+layers {
+ layer {
+ name: "loss"
+ type: "softmax_loss"
+ }
+ bottom: "ip2"
+ bottom: "label"
+}
--- /dev/null
+# The training protocol buffer definition
+train_net: "lenet.prototxt"
+# The testing protocol buffer definition
+test_net: "lenet_test.prototxt"
+# test_iter specifies how many forward passes the test should carry out.
+# In the case of MNIST, we have test batch size 100 and 100 test iterations,
+# covering the full 10,000 testing images.
+test_iter: 100
+# Carry out testing every 500 training iterations.
+test_interval: 500
+# The base learning rate, momentum and the weight decay of the network.
+base_lr: 0.01
+momentum: 0.9
+weight_decay: 0.0005
+# The learning rate policy
+lr_policy: "inv"
+gamma: 0.0001
+power: 0.75
+# Display every 100 iterations
+display: 100
+# The maximum number of iterations
+max_iter: 10000
+# snapshot intermediate results
+snapshot: 5000
+snapshot_prefix: "lenet"
+# solver mode: 0 for CPU and 1 for GPU
+solver_mode: 1
--- /dev/null
+name: "LeNet-test"
+layers {
+ layer {
+ name: "mnist"
+ type: "data"
+ source: "../data/mnist-test-leveldb"
+ batchsize: 100
+ scale: 0.00390625
+ }
+ top: "data"
+ top: "label"
+}
+layers {
+ layer {
+ name: "conv1"
+ type: "conv"
+ num_output: 20
+ kernelsize: 5
+ stride: 1
+ weight_filler {
+ type: "xavier"
+ }
+ bias_filler {
+ type: "constant"
+ }
+ }
+ bottom: "data"
+ top: "conv1"
+}
+layers {
+ layer {
+ name: "pool1"
+ type: "pool"
+ kernelsize: 2
+ stride: 2
+ pool: MAX
+ }
+ bottom: "conv1"
+ top: "pool1"
+}
+layers {
+ layer {
+ name: "conv2"
+ type: "conv"
+ num_output: 50
+ kernelsize: 5
+ stride: 1
+ weight_filler {
+ type: "xavier"
+ }
+ bias_filler {
+ type: "constant"
+ }
+ }
+ bottom: "pool1"
+ top: "conv2"
+}
+layers {
+ layer {
+ name: "pool2"
+ type: "pool"
+ kernelsize: 2
+ stride: 2
+ pool: MAX
+ }
+ bottom: "conv2"
+ top: "pool2"
+}
+layers {
+ layer {
+ name: "ip1"
+ type: "innerproduct"
+ num_output: 500
+ weight_filler {
+ type: "xavier"
+ }
+ bias_filler {
+ type: "constant"
+ }
+ }
+ bottom: "pool2"
+ top: "ip1"
+}
+layers {
+ layer {
+ name: "relu1"
+ type: "relu"
+ }
+ bottom: "ip1"
+ top: "ip1"
+}
+layers {
+ layer {
+ name: "ip2"
+ type: "innerproduct"
+ num_output: 10
+ weight_filler {
+ type: "xavier"
+ }
+ bias_filler {
+ type: "constant"
+ }
+ }
+ bottom: "ip1"
+ top: "ip2"
+}
+layers {
+ layer {
+ name: "prob"
+ type: "softmax"
+ }
+ bottom: "ip2"
+ top: "prob"
+}
+layers {
+ layer {
+ name: "accuracy"
+ type: "accuracy"
+ }
+ bottom: "prob"
+ bottom: "label"
+ top: "accuracy"
+}