summaryrefslogtreecommitdiff
path: root/models/bvlc_alexnet
diff options
context:
space:
mode:
authorSergey Karayev <sergeykarayev@gmail.com>2014-08-13 00:29:25 (GMT)
committerSergey Karayev <sergeykarayev@gmail.com>2014-09-04 00:53:18 (GMT)
commite553573e2c4800e11050d6b83f0579766ebf4648 (patch)
treefeacf4a98bb26deafd06ff644c2d1ddeacd6b9eb /models/bvlc_alexnet
parent41751046f18499b84dbaf529f64c0e664e2a09fe (diff)
downloadcaffeonacl-e553573e2c4800e11050d6b83f0579766ebf4648.zip
caffeonacl-e553573e2c4800e11050d6b83f0579766ebf4648.tar.gz
caffeonacl-e553573e2c4800e11050d6b83f0579766ebf4648.tar.bz2
[models] adding zoo readme; caffenet, alexnet, and rcnn models in zoo format
Diffstat (limited to 'models/bvlc_alexnet')
-rw-r--r--models/bvlc_alexnet/alexnet_deploy.prototxt244
-rw-r--r--models/bvlc_alexnet/alexnet_solver.prototxt14
-rw-r--r--models/bvlc_alexnet/alexnet_train_val.prototxt344
-rw-r--r--models/bvlc_alexnet/readme.md25
4 files changed, 627 insertions, 0 deletions
diff --git a/models/bvlc_alexnet/alexnet_deploy.prototxt b/models/bvlc_alexnet/alexnet_deploy.prototxt
new file mode 100644
index 0000000..d010753
--- /dev/null
+++ b/models/bvlc_alexnet/alexnet_deploy.prototxt
@@ -0,0 +1,244 @@
+name: "AlexNet"
+input: "data"
+input_dim: 10
+input_dim: 3
+input_dim: 227
+input_dim: 227
+layers {
+ name: "conv1"
+ type: CONVOLUTION
+ blobs_lr: 1
+ blobs_lr: 2
+ weight_decay: 1
+ weight_decay: 0
+ convolution_param {
+ num_output: 96
+ kernel_size: 11
+ stride: 4
+ }
+ bottom: "data"
+ top: "conv1"
+}
+layers {
+ name: "relu1"
+ type: RELU
+ bottom: "conv1"
+ top: "conv1"
+}
+layers {
+ name: "norm1"
+ type: LRN
+ lrn_param {
+ local_size: 5
+ alpha: 0.0001
+ beta: 0.75
+ }
+ bottom: "conv1"
+ top: "norm1"
+}
+layers {
+ name: "pool1"
+ type: POOLING
+ pooling_param {
+ pool: MAX
+ kernel_size: 3
+ stride: 2
+ }
+ bottom: "norm1"
+ top: "pool1"
+}
+layers {
+ name: "conv2"
+ type: CONVOLUTION
+ blobs_lr: 1
+ blobs_lr: 2
+ weight_decay: 1
+ weight_decay: 0
+ convolution_param {
+ num_output: 256
+ pad: 2
+ kernel_size: 5
+ group: 2
+ }
+ bottom: "pool1"
+ top: "conv2"
+}
+layers {
+ name: "relu2"
+ type: RELU
+ bottom: "conv2"
+ top: "conv2"
+}
+layers {
+ name: "norm2"
+ type: LRN
+ lrn_param {
+ local_size: 5
+ alpha: 0.0001
+ beta: 0.75
+ }
+ bottom: "conv2"
+ top: "norm2"
+}
+layers {
+ name: "pool2"
+ type: POOLING
+ pooling_param {
+ pool: MAX
+ kernel_size: 3
+ stride: 2
+ }
+ bottom: "norm2"
+ top: "pool2"
+}
+layers {
+ name: "conv3"
+ type: CONVOLUTION
+ blobs_lr: 1
+ blobs_lr: 2
+ weight_decay: 1
+ weight_decay: 0
+ convolution_param {
+ num_output: 384
+ pad: 1
+ kernel_size: 3
+ }
+ bottom: "pool2"
+ top: "conv3"
+}
+layers {
+ name: "relu3"
+ type: RELU
+ bottom: "conv3"
+ top: "conv3"
+}
+layers {
+ name: "conv4"
+ type: CONVOLUTION
+ blobs_lr: 1
+ blobs_lr: 2
+ weight_decay: 1
+ weight_decay: 0
+ convolution_param {
+ num_output: 384
+ pad: 1
+ kernel_size: 3
+ group: 2
+ }
+ bottom: "conv3"
+ top: "conv4"
+}
+layers {
+ name: "relu4"
+ type: RELU
+ bottom: "conv4"
+ top: "conv4"
+}
+layers {
+ name: "conv5"
+ type: CONVOLUTION
+ blobs_lr: 1
+ blobs_lr: 2
+ weight_decay: 1
+ weight_decay: 0
+ convolution_param {
+ num_output: 256
+ pad: 1
+ kernel_size: 3
+ group: 2
+ }
+ bottom: "conv4"
+ top: "conv5"
+}
+layers {
+ name: "relu5"
+ type: RELU
+ bottom: "conv5"
+ top: "conv5"
+}
+layers {
+ name: "pool5"
+ type: POOLING
+ pooling_param {
+ pool: MAX
+ kernel_size: 3
+ stride: 2
+ }
+ bottom: "conv5"
+ top: "pool5"
+}
+layers {
+ name: "fc6"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 2
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 4096
+ }
+ bottom: "pool5"
+ top: "fc6"
+}
+layers {
+ name: "relu6"
+ type: RELU
+ bottom: "fc6"
+ top: "fc6"
+}
+layers {
+ name: "drop6"
+ type: DROPOUT
+ dropout_param {
+ dropout_ratio: 0.5
+ }
+ bottom: "fc6"
+ top: "fc6"
+}
+layers {
+ name: "fc7"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 2
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 4096
+ }
+ bottom: "fc6"
+ top: "fc7"
+}
+layers {
+ name: "relu7"
+ type: RELU
+ bottom: "fc7"
+ top: "fc7"
+}
+layers {
+ name: "drop7"
+ type: DROPOUT
+ dropout_param {
+ dropout_ratio: 0.5
+ }
+ bottom: "fc7"
+ top: "fc7"
+}
+layers {
+ name: "fc8"
+ type: INNER_PRODUCT
+ blobs_lr: 1
+ blobs_lr: 2
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 1000
+ }
+ bottom: "fc7"
+ top: "fc8"
+}
+layers {
+ name: "prob"
+ type: SOFTMAX
+ bottom: "fc8"
+ top: "prob"
+}
diff --git a/models/bvlc_alexnet/alexnet_solver.prototxt b/models/bvlc_alexnet/alexnet_solver.prototxt
new file mode 100644
index 0000000..0d61fed
--- /dev/null
+++ b/models/bvlc_alexnet/alexnet_solver.prototxt
@@ -0,0 +1,14 @@
+net: "models/bvlc_alexnet/alexnet_train_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: "models/bvlc_alexnet/caffe_alexnet_train"
+solver_mode: GPU
diff --git a/models/bvlc_alexnet/alexnet_train_val.prototxt b/models/bvlc_alexnet/alexnet_train_val.prototxt
new file mode 100644
index 0000000..69b8916
--- /dev/null
+++ b/models/bvlc_alexnet/alexnet_train_val.prototxt
@@ -0,0 +1,344 @@
+name: "AlexNet"
+layers {
+ name: "data"
+ type: DATA
+ top: "data"
+ top: "label"
+ data_param {
+ source: "examples/imagenet/ilsvrc12_train_leveldb"
+ batch_size: 256
+ }
+ transform_param {
+ crop_size: 227
+ mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"
+ mirror: true
+ }
+ include: { phase: TRAIN }
+}
+layers {
+ name: "data"
+ type: DATA
+ top: "data"
+ top: "label"
+ data_param {
+ source: "examples/imagenet/ilsvrc12_val_leveldb"
+ batch_size: 50
+ }
+ transform_param {
+ crop_size: 227
+ mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"
+ mirror: false
+ }
+ include: { phase: TEST }
+}
+layers {
+ name: "conv1"
+ type: CONVOLUTION
+ bottom: "data"
+ top: "conv1"
+ blobs_lr: 1
+ blobs_lr: 2
+ weight_decay: 1
+ weight_decay: 0
+ convolution_param {
+ num_output: 96
+ kernel_size: 11
+ stride: 4
+ weight_filler {
+ type: "gaussian"
+ std: 0.01
+ }
+ bias_filler {
+ type: "constant"
+ value: 0
+ }
+ }
+}
+layers {
+ name: "relu1"
+ type: RELU
+ bottom: "conv1"
+ top: "conv1"
+}
+layers {
+ name: "norm1"
+ type: LRN
+ bottom: "conv1"
+ top: "norm1"
+ lrn_param {
+ local_size: 5
+ alpha: 0.0001
+ beta: 0.75
+ }
+}
+layers {
+ name: "pool1"
+ type: POOLING
+ bottom: "norm1"
+ top: "pool1"
+ pooling_param {
+ pool: MAX
+ kernel_size: 3
+ stride: 2
+ }
+}
+layers {
+ name: "conv2"
+ type: CONVOLUTION
+ bottom: "pool1"
+ top: "conv2"
+ blobs_lr: 1
+ blobs_lr: 2
+ weight_decay: 1
+ weight_decay: 0
+ convolution_param {
+ num_output: 256
+ pad: 2
+ kernel_size: 5
+ group: 2
+ weight_filler {
+ type: "gaussian"
+ std: 0.01
+ }
+ bias_filler {
+ type: "constant"
+ value: 0.1
+ }
+ }
+}
+layers {
+ name: "relu2"
+ type: RELU
+ bottom: "conv2"
+ top: "conv2"
+}
+layers {
+ name: "norm2"
+ type: LRN
+ bottom: "conv2"
+ top: "norm2"
+ lrn_param {
+ local_size: 5
+ alpha: 0.0001
+ beta: 0.75
+ }
+}
+layers {
+ name: "pool2"
+ type: POOLING
+ bottom: "norm2"
+ top: "pool2"
+ pooling_param {
+ pool: MAX
+ kernel_size: 3
+ stride: 2
+ }
+}
+layers {
+ name: "conv3"
+ type: CONVOLUTION
+ bottom: "pool2"
+ top: "conv3"
+ blobs_lr: 1
+ blobs_lr: 2
+ weight_decay: 1
+ weight_decay: 0
+ convolution_param {
+ num_output: 384
+ pad: 1
+ kernel_size: 3
+ weight_filler {
+ type: "gaussian"
+ std: 0.01
+ }
+ bias_filler {
+ type: "constant"
+ value: 0
+ }
+ }
+}
+layers {
+ name: "relu3"
+ type: RELU
+ bottom: "conv3"
+ top: "conv3"
+}
+layers {
+ name: "conv4"
+ type: CONVOLUTION
+ bottom: "conv3"
+ top: "conv4"
+ blobs_lr: 1
+ blobs_lr: 2
+ weight_decay: 1
+ weight_decay: 0
+ convolution_param {
+ num_output: 384
+ pad: 1
+ kernel_size: 3
+ group: 2
+ weight_filler {
+ type: "gaussian"
+ std: 0.01
+ }
+ bias_filler {
+ type: "constant"
+ value: 0.1
+ }
+ }
+}
+layers {
+ name: "relu4"
+ type: RELU
+ bottom: "conv4"
+ top: "conv4"
+}
+layers {
+ name: "conv5"
+ type: CONVOLUTION
+ bottom: "conv4"
+ top: "conv5"
+ blobs_lr: 1
+ blobs_lr: 2
+ weight_decay: 1
+ weight_decay: 0
+ convolution_param {
+ num_output: 256
+ pad: 1
+ kernel_size: 3
+ group: 2
+ weight_filler {
+ type: "gaussian"
+ std: 0.01
+ }
+ bias_filler {
+ type: "constant"
+ value: 0.1
+ }
+ }
+}
+layers {
+ name: "relu5"
+ type: RELU
+ bottom: "conv5"
+ top: "conv5"
+}
+layers {
+ name: "pool5"
+ type: POOLING
+ bottom: "conv5"
+ top: "pool5"
+ pooling_param {
+ pool: MAX
+ kernel_size: 3
+ stride: 2
+ }
+}
+layers {
+ name: "fc6"
+ type: INNER_PRODUCT
+ bottom: "pool5"
+ top: "fc6"
+ blobs_lr: 1
+ blobs_lr: 2
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 4096
+ weight_filler {
+ type: "gaussian"
+ std: 0.005
+ }
+ bias_filler {
+ type: "constant"
+ value: 0.1
+ }
+ }
+}
+layers {
+ name: "relu6"
+ type: RELU
+ bottom: "fc6"
+ top: "fc6"
+}
+layers {
+ name: "drop6"
+ type: DROPOUT
+ bottom: "fc6"
+ top: "fc6"
+ dropout_param {
+ dropout_ratio: 0.5
+ }
+}
+layers {
+ name: "fc7"
+ type: INNER_PRODUCT
+ bottom: "fc6"
+ top: "fc7"
+ blobs_lr: 1
+ blobs_lr: 2
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 4096
+ weight_filler {
+ type: "gaussian"
+ std: 0.005
+ }
+ bias_filler {
+ type: "constant"
+ value: 0.1
+ }
+ }
+}
+layers {
+ name: "relu7"
+ type: RELU
+ bottom: "fc7"
+ top: "fc7"
+}
+layers {
+ name: "drop7"
+ type: DROPOUT
+ bottom: "fc7"
+ top: "fc7"
+ dropout_param {
+ dropout_ratio: 0.5
+ }
+}
+layers {
+ name: "fc8"
+ type: INNER_PRODUCT
+ bottom: "fc7"
+ top: "fc8"
+ blobs_lr: 1
+ blobs_lr: 2
+ weight_decay: 1
+ weight_decay: 0
+ inner_product_param {
+ num_output: 1000
+ weight_filler {
+ type: "gaussian"
+ std: 0.01
+ }
+ bias_filler {
+ type: "constant"
+ value: 0
+ }
+ }
+}
+layers {
+ name: "accuracy"
+ type: ACCURACY
+ bottom: "fc8"
+ bottom: "label"
+ top: "accuracy"
+ include: { phase: TEST }
+}
+layers {
+ name: "loss"
+ type: SOFTMAX_LOSS
+ bottom: "fc8"
+ bottom: "label"
+ top: "loss"
+}
diff --git a/models/bvlc_alexnet/readme.md b/models/bvlc_alexnet/readme.md
new file mode 100644
index 0000000..20c393f
--- /dev/null
+++ b/models/bvlc_alexnet/readme.md
@@ -0,0 +1,25 @@
+---
+name: BVLC AlexNet Model
+caffemodel: bvlc_alexnet.caffemodel
+caffemodel_url: http://dl.caffe.berkeleyvision.org/bvlc_alexnet.caffemodel
+license: non-commercial
+sha1: 9116a64c0fbe4459d18f4bb6b56d647b63920377
+caffe_commit: 709dc15af4a06bebda027c1eb2b3f3e3375d5077
+---
+
+This model is a replication of the model described in the [AlexNet](http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks) publication.
+
+Differences:
+- not training with the relighting data-augmentation;
+- initializing non-zero biases to 0.1 instead of 1 (found necessary for training, as initialization to 1 gave flat loss).
+
+The bundled model is the iteration 360,000 snapshot.
+The best validation performance during training was iteration 358,000 with validation accuracy 57.258% and loss 1.83948.
+This model obtains a top-1 accuracy 57.1% and a top-5 accuracy 80.2% on the validation set, using just the center crop.
+(Using the average of 10 crops, (4 + 1 center) * 2 mirror, should obtain a bit higher accuracy.)
+
+## License
+
+The data used to train this model comes from the ImageNet project, which distributes its database to researchers who agree to a following term of access:
+"Researcher shall use the Database only for non-commercial research and educational purposes."
+Accordingly, this model is distributed under a non-commercial license.