Add VGG networks.
This commit is contained in:
53
data/models/README.md
Normal file
53
data/models/README.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# FMRI example models
|
||||
|
||||
The following sections describe the models included in this repository,
|
||||
with attribution. The repository also includes deinplaced versions of
|
||||
the models, where relevant.
|
||||
|
||||
## alexnet
|
||||
|
||||
AlexNet trained on ILSVRC 2012, almost exactly as described in ImageNet
|
||||
classification with deep convolutional neural networks by Krizhevsky et
|
||||
al. in NIPS 2012. (Trained by Evan Shelhamer @shelhamer)
|
||||
|
||||
## caffenet
|
||||
|
||||
AlexNet trained on ILSVRC 2012, with a minor variation from the version
|
||||
as described in ImageNet classification with deep convolutional neural
|
||||
networks by Krizhevsky et al. in NIPS 2012. (Trained by Jeff Donahue
|
||||
@jeffdonahue)
|
||||
|
||||
## vgg-16
|
||||
|
||||
The model is an improved version of the 16-layer model used by the VGG
|
||||
team in the ILSVRC-2014 competition. The details can be found in the
|
||||
following [arXiv paper](http://arxiv.org/pdf/1409.1556):
|
||||
|
||||
Very Deep Convolutional Networks for Large-Scale Image Recognition
|
||||
K. Simonyan, A. Zisserman
|
||||
arXiv:1409.1556
|
||||
|
||||
Please cite the paper if you use the model.
|
||||
|
||||
In the paper, the model is denoted as the configuration `D` trained with
|
||||
scale jittering. The input images should be zero-centered by mean pixel
|
||||
(rather than mean image) subtraction. Namely, the following BGR values
|
||||
should be subtracted: `[103.939, 116.779, 123.68]`.
|
||||
|
||||
|
||||
## vgg-19
|
||||
|
||||
The model is an improved version of the 19-layer model used by the VGG
|
||||
team in the ILSVRC-2014 competition. The details can be found in the
|
||||
following [arXiv paper](http://arxiv.org/pdf/1409.1556):
|
||||
|
||||
Very Deep Convolutional Networks for Large-Scale Image Recognition
|
||||
K. Simonyan, A. Zisserman
|
||||
arXiv:1409.1556
|
||||
|
||||
Please cite the paper if you use the model.
|
||||
|
||||
In the paper, the model is denoted as the configuration `E` trained with
|
||||
scale jittering. The input images should be zero-centered by mean pixel
|
||||
(rather than mean image) subtraction. Namely, the following BGR values
|
||||
should be subtracted: `[103.939, 116.779, 123.68]`.
|
||||
345
data/models/vgg-16/model-dedup.prototxt
Normal file
345
data/models/vgg-16/model-dedup.prototxt
Normal file
@@ -0,0 +1,345 @@
|
||||
name: "VGG_ILSVRC_16_layers"
|
||||
layers {
|
||||
bottom: "data"
|
||||
top: "conv1_1"
|
||||
name: "conv1_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 64
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv1_1"
|
||||
top: "relu1_1"
|
||||
name: "relu1_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu1_1"
|
||||
top: "conv1_2"
|
||||
name: "conv1_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 64
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv1_2"
|
||||
top: "relu1_2"
|
||||
name: "relu1_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu1_2"
|
||||
top: "pool1"
|
||||
name: "pool1"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool1"
|
||||
top: "conv2_1"
|
||||
name: "conv2_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 128
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv2_1"
|
||||
top: "relu2_1"
|
||||
name: "relu2_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu2_1"
|
||||
top: "conv2_2"
|
||||
name: "conv2_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 128
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv2_2"
|
||||
top: "relu2_2"
|
||||
name: "relu2_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu2_2"
|
||||
top: "pool2"
|
||||
name: "pool2"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool2"
|
||||
top: "conv3_1"
|
||||
name: "conv3_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 256
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_1"
|
||||
top: "relu3_1"
|
||||
name: "relu3_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu3_1"
|
||||
top: "conv3_2"
|
||||
name: "conv3_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 256
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_2"
|
||||
top: "relu3_2"
|
||||
name: "relu3_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu3_2"
|
||||
top: "conv3_3"
|
||||
name: "conv3_3"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 256
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_3"
|
||||
top: "relu3_3"
|
||||
name: "relu3_3"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu3_3"
|
||||
top: "pool3"
|
||||
name: "pool3"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool3"
|
||||
top: "conv4_1"
|
||||
name: "conv4_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_1"
|
||||
top: "relu4_1"
|
||||
name: "relu4_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu4_1"
|
||||
top: "conv4_2"
|
||||
name: "conv4_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_2"
|
||||
top: "relu4_2"
|
||||
name: "relu4_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu4_2"
|
||||
top: "conv4_3"
|
||||
name: "conv4_3"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_3"
|
||||
top: "relu4_3"
|
||||
name: "relu4_3"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu4_3"
|
||||
top: "pool4"
|
||||
name: "pool4"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool4"
|
||||
top: "conv5_1"
|
||||
name: "conv5_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_1"
|
||||
top: "relu5_1"
|
||||
name: "relu5_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu5_1"
|
||||
top: "conv5_2"
|
||||
name: "conv5_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_2"
|
||||
top: "relu5_2"
|
||||
name: "relu5_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu5_2"
|
||||
top: "conv5_3"
|
||||
name: "conv5_3"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_3"
|
||||
top: "relu5_3"
|
||||
name: "relu5_3"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu5_3"
|
||||
top: "pool5"
|
||||
name: "pool5"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool5"
|
||||
top: "fc6"
|
||||
name: "fc6"
|
||||
type: INNER_PRODUCT
|
||||
inner_product_param {
|
||||
num_output: 4096
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "fc6"
|
||||
top: "relu6"
|
||||
name: "relu6"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu6"
|
||||
top: "drop6"
|
||||
name: "drop6"
|
||||
type: DROPOUT
|
||||
dropout_param {
|
||||
dropout_ratio: 0.5
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "drop6"
|
||||
top: "fc7"
|
||||
name: "fc7"
|
||||
type: INNER_PRODUCT
|
||||
inner_product_param {
|
||||
num_output: 4096
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "fc7"
|
||||
top: "relu7"
|
||||
name: "relu7"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu7"
|
||||
top: "drop7"
|
||||
name: "drop7"
|
||||
type: DROPOUT
|
||||
dropout_param {
|
||||
dropout_ratio: 0.5
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "drop7"
|
||||
top: "fc8"
|
||||
name: "fc8"
|
||||
type: INNER_PRODUCT
|
||||
inner_product_param {
|
||||
num_output: 1000
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "fc8"
|
||||
top: "prob"
|
||||
name: "prob"
|
||||
type: SOFTMAX
|
||||
}
|
||||
input: "data"
|
||||
input_dim: 10
|
||||
input_dim: 3
|
||||
input_dim: 224
|
||||
input_dim: 224
|
||||
345
data/models/vgg-16/model.prototxt
Normal file
345
data/models/vgg-16/model.prototxt
Normal file
@@ -0,0 +1,345 @@
|
||||
name: "VGG_ILSVRC_16_layers"
|
||||
input: "data"
|
||||
input_dim: 10
|
||||
input_dim: 3
|
||||
input_dim: 224
|
||||
input_dim: 224
|
||||
layers {
|
||||
bottom: "data"
|
||||
top: "conv1_1"
|
||||
name: "conv1_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 64
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv1_1"
|
||||
top: "conv1_1"
|
||||
name: "relu1_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv1_1"
|
||||
top: "conv1_2"
|
||||
name: "conv1_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 64
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv1_2"
|
||||
top: "conv1_2"
|
||||
name: "relu1_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv1_2"
|
||||
top: "pool1"
|
||||
name: "pool1"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool1"
|
||||
top: "conv2_1"
|
||||
name: "conv2_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 128
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv2_1"
|
||||
top: "conv2_1"
|
||||
name: "relu2_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv2_1"
|
||||
top: "conv2_2"
|
||||
name: "conv2_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 128
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv2_2"
|
||||
top: "conv2_2"
|
||||
name: "relu2_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv2_2"
|
||||
top: "pool2"
|
||||
name: "pool2"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool2"
|
||||
top: "conv3_1"
|
||||
name: "conv3_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 256
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_1"
|
||||
top: "conv3_1"
|
||||
name: "relu3_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_1"
|
||||
top: "conv3_2"
|
||||
name: "conv3_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 256
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_2"
|
||||
top: "conv3_2"
|
||||
name: "relu3_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_2"
|
||||
top: "conv3_3"
|
||||
name: "conv3_3"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 256
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_3"
|
||||
top: "conv3_3"
|
||||
name: "relu3_3"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_3"
|
||||
top: "pool3"
|
||||
name: "pool3"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool3"
|
||||
top: "conv4_1"
|
||||
name: "conv4_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_1"
|
||||
top: "conv4_1"
|
||||
name: "relu4_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_1"
|
||||
top: "conv4_2"
|
||||
name: "conv4_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_2"
|
||||
top: "conv4_2"
|
||||
name: "relu4_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_2"
|
||||
top: "conv4_3"
|
||||
name: "conv4_3"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_3"
|
||||
top: "conv4_3"
|
||||
name: "relu4_3"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_3"
|
||||
top: "pool4"
|
||||
name: "pool4"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool4"
|
||||
top: "conv5_1"
|
||||
name: "conv5_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_1"
|
||||
top: "conv5_1"
|
||||
name: "relu5_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_1"
|
||||
top: "conv5_2"
|
||||
name: "conv5_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_2"
|
||||
top: "conv5_2"
|
||||
name: "relu5_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_2"
|
||||
top: "conv5_3"
|
||||
name: "conv5_3"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_3"
|
||||
top: "conv5_3"
|
||||
name: "relu5_3"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_3"
|
||||
top: "pool5"
|
||||
name: "pool5"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool5"
|
||||
top: "fc6"
|
||||
name: "fc6"
|
||||
type: INNER_PRODUCT
|
||||
inner_product_param {
|
||||
num_output: 4096
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "fc6"
|
||||
top: "fc6"
|
||||
name: "relu6"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "fc6"
|
||||
top: "fc6"
|
||||
name: "drop6"
|
||||
type: DROPOUT
|
||||
dropout_param {
|
||||
dropout_ratio: 0.5
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "fc6"
|
||||
top: "fc7"
|
||||
name: "fc7"
|
||||
type: INNER_PRODUCT
|
||||
inner_product_param {
|
||||
num_output: 4096
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "fc7"
|
||||
top: "fc7"
|
||||
name: "relu7"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "fc7"
|
||||
top: "fc7"
|
||||
name: "drop7"
|
||||
type: DROPOUT
|
||||
dropout_param {
|
||||
dropout_ratio: 0.5
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "fc7"
|
||||
top: "fc8"
|
||||
name: "fc8"
|
||||
type: INNER_PRODUCT
|
||||
inner_product_param {
|
||||
num_output: 1000
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "fc8"
|
||||
top: "prob"
|
||||
name: "prob"
|
||||
type: SOFTMAX
|
||||
}
|
||||
1
data/models/vgg-16/weights_url
Normal file
1
data/models/vgg-16/weights_url
Normal file
@@ -0,0 +1 @@
|
||||
http://www.robots.ox.ac.uk/~vgg/software/very_deep/caffe/VGG_ILSVRC_16_layers.caffemodel
|
||||
396
data/models/vgg-19/model-dedup.prototxt
Normal file
396
data/models/vgg-19/model-dedup.prototxt
Normal file
@@ -0,0 +1,396 @@
|
||||
name: "VGG_ILSVRC_19_layers"
|
||||
layers {
|
||||
bottom: "data"
|
||||
top: "conv1_1"
|
||||
name: "conv1_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 64
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv1_1"
|
||||
top: "relu1_1"
|
||||
name: "relu1_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu1_1"
|
||||
top: "conv1_2"
|
||||
name: "conv1_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 64
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv1_2"
|
||||
top: "relu1_2"
|
||||
name: "relu1_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu1_2"
|
||||
top: "pool1"
|
||||
name: "pool1"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool1"
|
||||
top: "conv2_1"
|
||||
name: "conv2_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 128
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv2_1"
|
||||
top: "relu2_1"
|
||||
name: "relu2_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu2_1"
|
||||
top: "conv2_2"
|
||||
name: "conv2_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 128
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv2_2"
|
||||
top: "relu2_2"
|
||||
name: "relu2_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu2_2"
|
||||
top: "pool2"
|
||||
name: "pool2"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool2"
|
||||
top: "conv3_1"
|
||||
name: "conv3_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 256
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_1"
|
||||
top: "relu3_1"
|
||||
name: "relu3_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu3_1"
|
||||
top: "conv3_2"
|
||||
name: "conv3_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 256
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_2"
|
||||
top: "relu3_2"
|
||||
name: "relu3_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu3_2"
|
||||
top: "conv3_3"
|
||||
name: "conv3_3"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 256
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_3"
|
||||
top: "relu3_3"
|
||||
name: "relu3_3"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu3_3"
|
||||
top: "conv3_4"
|
||||
name: "conv3_4"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 256
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_4"
|
||||
top: "relu3_4"
|
||||
name: "relu3_4"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu3_4"
|
||||
top: "pool3"
|
||||
name: "pool3"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool3"
|
||||
top: "conv4_1"
|
||||
name: "conv4_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_1"
|
||||
top: "relu4_1"
|
||||
name: "relu4_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu4_1"
|
||||
top: "conv4_2"
|
||||
name: "conv4_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_2"
|
||||
top: "relu4_2"
|
||||
name: "relu4_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu4_2"
|
||||
top: "conv4_3"
|
||||
name: "conv4_3"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_3"
|
||||
top: "relu4_3"
|
||||
name: "relu4_3"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu4_3"
|
||||
top: "conv4_4"
|
||||
name: "conv4_4"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_4"
|
||||
top: "relu4_4"
|
||||
name: "relu4_4"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu4_4"
|
||||
top: "pool4"
|
||||
name: "pool4"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool4"
|
||||
top: "conv5_1"
|
||||
name: "conv5_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_1"
|
||||
top: "relu5_1"
|
||||
name: "relu5_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu5_1"
|
||||
top: "conv5_2"
|
||||
name: "conv5_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_2"
|
||||
top: "relu5_2"
|
||||
name: "relu5_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu5_2"
|
||||
top: "conv5_3"
|
||||
name: "conv5_3"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_3"
|
||||
top: "relu5_3"
|
||||
name: "relu5_3"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu5_3"
|
||||
top: "conv5_4"
|
||||
name: "conv5_4"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_4"
|
||||
top: "relu5_4"
|
||||
name: "relu5_4"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu5_4"
|
||||
top: "pool5"
|
||||
name: "pool5"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool5"
|
||||
top: "fc6"
|
||||
name: "fc6"
|
||||
type: INNER_PRODUCT
|
||||
inner_product_param {
|
||||
num_output: 4096
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "fc6"
|
||||
top: "relu6"
|
||||
name: "relu6"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu6"
|
||||
top: "drop6"
|
||||
name: "drop6"
|
||||
type: DROPOUT
|
||||
dropout_param {
|
||||
dropout_ratio: 0.5
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "drop6"
|
||||
top: "fc7"
|
||||
name: "fc7"
|
||||
type: INNER_PRODUCT
|
||||
inner_product_param {
|
||||
num_output: 4096
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "fc7"
|
||||
top: "relu7"
|
||||
name: "relu7"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "relu7"
|
||||
top: "drop7"
|
||||
name: "drop7"
|
||||
type: DROPOUT
|
||||
dropout_param {
|
||||
dropout_ratio: 0.5
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "drop7"
|
||||
top: "fc8"
|
||||
name: "fc8"
|
||||
type: INNER_PRODUCT
|
||||
inner_product_param {
|
||||
num_output: 1000
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "fc8"
|
||||
top: "prob"
|
||||
name: "prob"
|
||||
type: SOFTMAX
|
||||
}
|
||||
input: "data"
|
||||
input_dim: 10
|
||||
input_dim: 3
|
||||
input_dim: 224
|
||||
input_dim: 224
|
||||
396
data/models/vgg-19/model.prototxt
Normal file
396
data/models/vgg-19/model.prototxt
Normal file
@@ -0,0 +1,396 @@
|
||||
name: "VGG_ILSVRC_19_layers"
|
||||
input: "data"
|
||||
input_dim: 10
|
||||
input_dim: 3
|
||||
input_dim: 224
|
||||
input_dim: 224
|
||||
layers {
|
||||
bottom: "data"
|
||||
top: "conv1_1"
|
||||
name: "conv1_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 64
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv1_1"
|
||||
top: "conv1_1"
|
||||
name: "relu1_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv1_1"
|
||||
top: "conv1_2"
|
||||
name: "conv1_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 64
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv1_2"
|
||||
top: "conv1_2"
|
||||
name: "relu1_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv1_2"
|
||||
top: "pool1"
|
||||
name: "pool1"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool1"
|
||||
top: "conv2_1"
|
||||
name: "conv2_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 128
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv2_1"
|
||||
top: "conv2_1"
|
||||
name: "relu2_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv2_1"
|
||||
top: "conv2_2"
|
||||
name: "conv2_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 128
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv2_2"
|
||||
top: "conv2_2"
|
||||
name: "relu2_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv2_2"
|
||||
top: "pool2"
|
||||
name: "pool2"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool2"
|
||||
top: "conv3_1"
|
||||
name: "conv3_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 256
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_1"
|
||||
top: "conv3_1"
|
||||
name: "relu3_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_1"
|
||||
top: "conv3_2"
|
||||
name: "conv3_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 256
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_2"
|
||||
top: "conv3_2"
|
||||
name: "relu3_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_2"
|
||||
top: "conv3_3"
|
||||
name: "conv3_3"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 256
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_3"
|
||||
top: "conv3_3"
|
||||
name: "relu3_3"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_3"
|
||||
top: "conv3_4"
|
||||
name: "conv3_4"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 256
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_4"
|
||||
top: "conv3_4"
|
||||
name: "relu3_4"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv3_4"
|
||||
top: "pool3"
|
||||
name: "pool3"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool3"
|
||||
top: "conv4_1"
|
||||
name: "conv4_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_1"
|
||||
top: "conv4_1"
|
||||
name: "relu4_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_1"
|
||||
top: "conv4_2"
|
||||
name: "conv4_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_2"
|
||||
top: "conv4_2"
|
||||
name: "relu4_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_2"
|
||||
top: "conv4_3"
|
||||
name: "conv4_3"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_3"
|
||||
top: "conv4_3"
|
||||
name: "relu4_3"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_3"
|
||||
top: "conv4_4"
|
||||
name: "conv4_4"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_4"
|
||||
top: "conv4_4"
|
||||
name: "relu4_4"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv4_4"
|
||||
top: "pool4"
|
||||
name: "pool4"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool4"
|
||||
top: "conv5_1"
|
||||
name: "conv5_1"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_1"
|
||||
top: "conv5_1"
|
||||
name: "relu5_1"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_1"
|
||||
top: "conv5_2"
|
||||
name: "conv5_2"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_2"
|
||||
top: "conv5_2"
|
||||
name: "relu5_2"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_2"
|
||||
top: "conv5_3"
|
||||
name: "conv5_3"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_3"
|
||||
top: "conv5_3"
|
||||
name: "relu5_3"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_3"
|
||||
top: "conv5_4"
|
||||
name: "conv5_4"
|
||||
type: CONVOLUTION
|
||||
convolution_param {
|
||||
num_output: 512
|
||||
pad: 1
|
||||
kernel_size: 3
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_4"
|
||||
top: "conv5_4"
|
||||
name: "relu5_4"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "conv5_4"
|
||||
top: "pool5"
|
||||
name: "pool5"
|
||||
type: POOLING
|
||||
pooling_param {
|
||||
pool: MAX
|
||||
kernel_size: 2
|
||||
stride: 2
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "pool5"
|
||||
top: "fc6"
|
||||
name: "fc6"
|
||||
type: INNER_PRODUCT
|
||||
inner_product_param {
|
||||
num_output: 4096
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "fc6"
|
||||
top: "fc6"
|
||||
name: "relu6"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "fc6"
|
||||
top: "fc6"
|
||||
name: "drop6"
|
||||
type: DROPOUT
|
||||
dropout_param {
|
||||
dropout_ratio: 0.5
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "fc6"
|
||||
top: "fc7"
|
||||
name: "fc7"
|
||||
type: INNER_PRODUCT
|
||||
inner_product_param {
|
||||
num_output: 4096
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "fc7"
|
||||
top: "fc7"
|
||||
name: "relu7"
|
||||
type: RELU
|
||||
}
|
||||
layers {
|
||||
bottom: "fc7"
|
||||
top: "fc7"
|
||||
name: "drop7"
|
||||
type: DROPOUT
|
||||
dropout_param {
|
||||
dropout_ratio: 0.5
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "fc7"
|
||||
top: "fc8"
|
||||
name: "fc8"
|
||||
type: INNER_PRODUCT
|
||||
inner_product_param {
|
||||
num_output: 1000
|
||||
}
|
||||
}
|
||||
layers {
|
||||
bottom: "fc8"
|
||||
top: "prob"
|
||||
name: "prob"
|
||||
type: SOFTMAX
|
||||
}
|
||||
1
data/models/vgg-19/weights_url
Normal file
1
data/models/vgg-19/weights_url
Normal file
@@ -0,0 +1 @@
|
||||
http://www.robots.ox.ac.uk/~vgg/software/very_deep/caffe/VGG_ILSVRC_19_layers.caffemodel
|
||||
Reference in New Issue
Block a user