Add VGG networks.
This commit is contained in:
@@ -5,8 +5,11 @@ cd "$(dirname "${BASH_SOURCE[0]}")" || (echo "Could not change dir" && exit 1)
|
|||||||
pwd
|
pwd
|
||||||
|
|
||||||
for modeldir in models/*; do
|
for modeldir in models/*; do
|
||||||
pushd "$modeldir"
|
if ! pushd "$modeldir" &>/dev/null; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
wget --continue -i weights_url -N
|
wget --continue -i weights_url -N
|
||||||
popd
|
popd || exit 1
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|||||||
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
|
||||||
@@ -33,7 +33,8 @@ def load_net(args):
|
|||||||
|
|
||||||
def deinplace(args, net):
|
def deinplace(args, net):
|
||||||
outputs = {}
|
outputs = {}
|
||||||
for layer in net.layer:
|
layers = net.layer if net.layer else net.layers
|
||||||
|
for layer in layers:
|
||||||
for idx, bottom in enumerate(layer.bottom):
|
for idx, bottom in enumerate(layer.bottom):
|
||||||
if bottom in outputs and bottom != outputs[bottom]:
|
if bottom in outputs and bottom != outputs[bottom]:
|
||||||
if args.verbose:
|
if args.verbose:
|
||||||
|
|||||||
Reference in New Issue
Block a user