solver.prototxt:
- net: "models/vgg16/train_val.prototxt"
- test_iter: 1000
- test_interval: 2500
- base_lr: 0.001
- lr_policy: "step"
- gamma: 0.1
- stepsize: 50000
- display: 20
- max_iter: 200000
- momentum: 0.9
- weight_decay: 0.0005
- snapshot: 10000
- snapshot_prefix: "models/vgg16/caffe_vgg16_train"
- solver_mode: GPU
- name: "VGG16"
- layer {
- name: "data"
- type: "Data"
- top: "data"
- top: "label"
- include {
- phase: TRAIN
- }
- # transform_param {
- # mirror: true
- # crop_size: 224
- # mean_file: "data/ilsvrc12_shrt_256/imagenet_mean.binaryproto"
- # }
- transform_param {
- mirror: true
- crop_size: 224
- mean_value: 103.939
- mean_value: 116.779
- mean_value: 123.68
- }
- data_param {
- source: "data/ilsvrc12_shrt_256/ilsvrc12_train_leveldb"
- batch_size: 64
- backend: LEVELDB
- }
- }
- layer {
- name: "data"
- type: "Data"
- top: "data"
- top: "label"
- include {
- phase: TEST
- }
- # transform_param {
- # mirror: false
- # crop_size: 224
- # mean_file: "data/ilsvrc12_shrt_256/imagenet_mean.binaryproto"
- # }
- transform_param {
- mirror: false
- crop_size: 224
- mean_value: 103.939
- mean_value: 116.779
- mean_value: 123.68
- }
- data_param {
- source: "data/ilsvrc12_shrt_256/ilsvrc12_val_leveldb"
- batch_size: 50
- backend: LEVELDB
- }
- }
- layer {
- bottom: "data"
- top: "conv1_1"
- name: "conv1_1"
- type: "Convolution"
- param {
- lr_mult: 1
- decay_mult: 1
- }
- param {
- lr_mult: 2
- decay_mult: 0
- }
- convolution_param {
- num_output: 64
- pad: 1
- kernel_size: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0
- }
- }
- }
- layer {
- bottom: "conv1_1"
- top: "conv1_1"
- name: "relu1_1"
- type: "ReLU"
- }
- layer {
- bottom: "conv1_1"
- top: "conv1_2"
- name: "conv1_2"
- type: "Convolution"
- param {
- lr_mult: 1
- decay_mult: 1
- }
- param {
- lr_mult: 2
- decay_mult: 0
- }
- convolution_param {
- num_output: 64
- pad: 1
- kernel_size: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0
- }
- }
- }
- layer {
- bottom: "conv1_2"
- top: "conv1_2"
- name: "relu1_2"
- type: "ReLU"
- }
- layer {
- bottom: "conv1_2"
- top: "pool1"
- name: "pool1"
- type: "Pooling"
- pooling_param {
- pool: MAX
- kernel_size: 2
- stride: 2
- }
- }
- layer {
- bottom: "pool1"
- top: "conv2_1"
- name: "conv2_1"
- type: "Convolution"
- param {
- lr_mult: 1
- decay_mult: 1
- }
- param {
- lr_mult: 2
- decay_mult: 0
- }
- convolution_param {
- num_output: 128
- pad: 1
- kernel_size: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0
- }
- }
- }
- layer {
- bottom: "conv2_1"
- top: "conv2_1"
- name: "relu2_1"
- type: "ReLU"
- }
- layer {
- bottom: "conv2_1"
- top: "conv2_2"
- name: "conv2_2"
- type: "Convolution"
- param {
- lr_mult: 1
- decay_mult: 1
- }
- param {
- lr_mult: 2
- decay_mult: 0
- }
- convolution_param {
- num_output: 128
- pad: 1
- kernel_size: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0
- }
- }
- }
- layer {
- bottom: "conv2_2"
- top: "conv2_2"
- name: "relu2_2"
- type: "ReLU"
- }
- layer {
- bottom: "conv2_2"
- top: "pool2"
- name: "pool2"
- type: "Pooling"
- pooling_param {
- pool: MAX
- kernel_size: 2
- stride: 2
- }
- }
- layer {
- bottom: "pool2"
- top: "conv3_1"
- name: "conv3_1"
- type: "Convolution"
- param {
- lr_mult: 1
- decay_mult: 1
- }
- param {
- lr_mult: 2
- decay_mult: 0
- }
- convolution_param {
- num_output: 256
- pad: 1
- kernel_size: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0
- }
- }
- }
- layer {
- bottom: "conv3_1"
- top: "conv3_1"
- name: "relu3_1"
- type: "ReLU"
- }
- layer {
- bottom: "conv3_1"
- top: "conv3_2"
- name: "conv3_2"
- type: "Convolution"
- param {
- lr_mult: 1
- decay_mult: 1
- }
- param {
- lr_mult: 2
- decay_mult: 0
- }
- convolution_param {
- num_output: 256
- pad: 1
- kernel_size: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0
- }
- }
- }
- layer {
- bottom: "conv3_2"
- top: "conv3_2"
- name: "relu3_2"
- type: "ReLU"
- }
- layer {
- bottom: "conv3_2"
- top: "conv3_3"
- name: "conv3_3"
- type: "Convolution"
- param {
- lr_mult: 1
- decay_mult: 1
- }
- param {
- lr_mult: 2
- decay_mult: 0
- }
- convolution_param {
- num_output: 256
- pad: 1
- kernel_size: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0
- }
- }
- }
- layer {
- bottom: "conv3_3"
- top: "conv3_3"
- name: "relu3_3"
- type: "ReLU"
- }
- layer {
- bottom: "conv3_3"
- top: "pool3"
- name: "pool3"
- type: "Pooling"
- pooling_param {
- pool: MAX
- kernel_size: 2
- stride: 2
- }
- }
- layer {
- bottom: "pool3"
- top: "conv4_1"
- name: "conv4_1"
- type: "Convolution"
- param {
- lr_mult: 1
- decay_mult: 1
- }
- param {
- lr_mult: 2
- decay_mult: 0
- }
- convolution_param {
- num_output: 512
- pad: 1
- kernel_size: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0
- }
- }
- }
- layer {
- bottom: "conv4_1"
- top: "conv4_1"
- name: "relu4_1"
- type: "ReLU"
- }
- layer {
- bottom: "conv4_1"
- top: "conv4_2"
- name: "conv4_2"
- type: "Convolution"
- param {
- lr_mult: 1
- decay_mult: 1
- }
- param {
- lr_mult: 2
- decay_mult: 0
- }
- convolution_param {
- num_output: 512
- pad: 1
- kernel_size: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0
- }
- }
- }
- layer {
- bottom: "conv4_2"
- top: "conv4_2"
- name: "relu4_2"
- type: "ReLU"
- }
- layer {
- bottom: "conv4_2"
- top: "conv4_3"
- name: "conv4_3"
- type: "Convolution"
- param {
- lr_mult: 1
- decay_mult: 1
- }
- param {
- lr_mult: 2
- decay_mult: 0
- }
- convolution_param {
- num_output: 512
- pad: 1
- kernel_size: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0
- }
- }
- }
- layer {
- bottom: "conv4_3"
- top: "conv4_3"
- name: "relu4_3"
- type: "ReLU"
- }
- layer {
- bottom: "conv4_3"
- top: "pool4"
- name: "pool4"
- type: "Pooling"
- pooling_param {
- pool: MAX
- kernel_size: 2
- stride: 2
- }
- }
- layer {
- bottom: "pool4"
- top: "conv5_1"
- name: "conv5_1"
- type: "Convolution"
- param {
- lr_mult: 1
- decay_mult: 1
- }
- param {
- lr_mult: 2
- decay_mult: 0
- }
- convolution_param {
- num_output: 512
- pad: 1
- kernel_size: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0
- }
- }
- }
- layer {
- bottom: "conv5_1"
- top: "conv5_1"
- name: "relu5_1"
- type: "ReLU"
- }
- layer {
- bottom: "conv5_1"
- top: "conv5_2"
- name: "conv5_2"
- type: "Convolution"
- param {
- lr_mult: 1
- decay_mult: 1
- }
- param {
- lr_mult: 2
- decay_mult: 0
- }
- convolution_param {
- num_output: 512
- pad: 1
- kernel_size: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0
- }
- }
- }
- layer {
- bottom: "conv5_2"
- top: "conv5_2"
- name: "relu5_2"
- type: "ReLU"
- }
- layer {
- bottom: "conv5_2"
- top: "conv5_3"
- name: "conv5_3"
- type: "Convolution"
- param {
- lr_mult: 1
- decay_mult: 1
- }
- param {
- lr_mult: 2
- decay_mult: 0
- }
- convolution_param {
- num_output: 512
- pad: 1
- kernel_size: 3
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0
- }
- }
- }
- layer {
- bottom: "conv5_3"
- top: "conv5_3"
- name: "relu5_3"
- type: "ReLU"
- }
- layer {
- bottom: "conv5_3"
- top: "pool5"
- name: "pool5"
- type: "Pooling"
- pooling_param {
- pool: MAX
- kernel_size: 2
- stride: 2
- }
- }
- layer {
- bottom: "pool5"
- top: "fc6"
- name: "fc6"
- type: "InnerProduct"
- param {
- lr_mult: 1
- decay_mult: 1
- }
- param {
- lr_mult: 2
- decay_mult: 0
- }
- inner_product_param {
- num_output: 4096
- weight_filler {
- type: "gaussian"
- std: 0.005
- }
- bias_filler {
- type: "constant"
- value: 0.1
- }
- }
- }
- layer {
- bottom: "fc6"
- top: "fc6"
- name: "relu6"
- type: "ReLU"
- }
- layer {
- bottom: "fc6"
- top: "fc6"
- name: "drop6"
- type: "Dropout"
- dropout_param {
- dropout_ratio: 0.5
- }
- }
- layer {
- bottom: "fc6"
- top: "fc7"
- name: "fc7"
- type: "InnerProduct"
- param {
- lr_mult: 1
- decay_mult: 1
- }
- param {
- lr_mult: 2
- decay_mult: 0
- }
- inner_product_param {
- num_output: 4096
- weight_filler {
- type: "gaussian"
- std: 0.005
- }
- bias_filler {
- type: "constant"
- value: 0.1
- }
- }
- }
- layer {
- bottom: "fc7"
- top: "fc7"
- name: "relu7"
- type: "ReLU"
- }
- layer {
- bottom: "fc7"
- top: "fc7"
- name: "drop7"
- type: "Dropout"
- dropout_param {
- dropout_ratio: 0.5
- }
- }
- layer {
- bottom: "fc7"
- top: "fc8"
- name: "fc8"
- type: "InnerProduct"
- param {
- lr_mult: 1
- decay_mult: 1
- }
- param {
- lr_mult: 2
- decay_mult: 0
- }
- inner_product_param {
- num_output: 1000
- weight_filler {
- type: "gaussian"
- std: 0.005
- }
- bias_filler {
- type: "constant"
- value: 0.1
- }
- }
- }
- layer {
- name: "accuracy_at_1"
- type: "Accuracy"
- bottom: "fc8"
- bottom: "label"
- top: "accuracy_at_1"
- accuracy_param {
- top_k: 1
- }
- include {
- phase: TEST
- }
- }
- layer {
- name: "accuracy_at_5"
- type: "Accuracy"
- bottom: "fc8"
- bottom: "label"
- top: "accuracy_at_5"
- accuracy_param {
- top_k: 5
- }
- include {
- phase: TEST
- }
- }
- layer {
- bottom: "fc8"
- bottom: "label"
- top: "loss"
- name: "loss"
- type: "SoftmaxWithLoss"
- }