Skip to content

Instantly share code, notes, and snippets.

@Eric-mingjie
Created July 12, 2018 22:11
Show Gist options
  • Save Eric-mingjie/7f08a87ffb8c48d240d63e504fb81a38 to your computer and use it in GitHub Desktop.
Save Eric-mingjie/7f08a87ffb8c48d240d63e504fb81a38 to your computer and use it in GitHub Desktop.
# @article{ThiNet_ICCV17,
# Author = {Jian-Hao Luo, Jianxin Wu, and Weiyao Lin},
# Title = {ThiNet: A Filter Level Pruning Method for Deep Neural Network Compression},
# Journal = {arXiv:1707.06342},
# Year = {2017}
# }
# fixed size: center 224x224 crop from resized image with 256x256
# The accuracy should be: Top-1: 0.6734, Top-5: 0.8792
# If you have any problem, please feel free to contact Jian-Hao Luo (luojh@lamda.nju.edu.cn).
# 2017-07-29
layer {
name: "data"
type: "Data"
top: "data"
top: "label"
include {
phase: TRAIN
}
transform_param {
mirror: true
crop_size: 224
mean_value: 104
mean_value: 117
mean_value: 123
}
data_param {
source: "/opt/luojh/Dataset/ImageNet/lmdb/ilsvrc12_train_lmdb"
batch_size: 32
backend: LMDB
}
}
layer {
name: "data"
type: "Data"
top: "data"
top: "label"
include {
phase: TEST
}
transform_param {
mirror: false
crop_size: 224
mean_value: 104
mean_value: 117
mean_value: 123
}
data_param {
source: "/opt/luojh/Dataset/ImageNet/lmdb/ilsvrc12_val_lmdb"
batch_size: 50
backend: LMDB
}
}
layer {
name: "conv1_1"
type: "Convolution"
bottom: "data"
top: "conv1_1"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 1
kernel_size: 3
}
}
layer {
name: "relu1_1"
type: "ReLU"
bottom: "conv1_1"
top: "relu1_1"
}
layer {
name: "conv1_2"
type: "Convolution"
bottom: "relu1_1"
top: "conv1_2"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 1
kernel_size: 3
}
}
layer {
name: "relu1_2"
type: "ReLU"
bottom: "conv1_2"
top: "relu1_2"
}
layer {
name: "pool1"
type: "Pooling"
bottom: "relu1_2"
top: "pool1"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv2_1"
type: "Convolution"
bottom: "pool1"
top: "conv2_1"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
}
}
layer {
name: "relu2_1"
type: "ReLU"
bottom: "conv2_1"
top: "relu2_1"
}
layer {
name: "conv2_2"
type: "Convolution"
bottom: "relu2_1"
top: "conv2_2"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
}
}
layer {
name: "relu2_2"
type: "ReLU"
bottom: "conv2_2"
top: "relu2_2"
}
layer {
name: "pool2"
type: "Pooling"
bottom: "relu2_2"
top: "pool2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv3_1"
type: "Convolution"
bottom: "pool2"
top: "conv3_1"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "relu3_1"
type: "ReLU"
bottom: "conv3_1"
top: "relu3_1"
}
layer {
name: "conv3_2"
type: "Convolution"
bottom: "relu3_1"
top: "conv3_2"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "relu3_2"
type: "ReLU"
bottom: "conv3_2"
top: "relu3_2"
}
layer {
name: "conv3_3"
type: "Convolution"
bottom: "relu3_2"
top: "conv3_3"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "relu3_3"
type: "ReLU"
bottom: "conv3_3"
top: "relu3_3"
}
layer {
name: "pool3"
type: "Pooling"
bottom: "relu3_3"
top: "pool3"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv4_1"
type: "Convolution"
bottom: "pool3"
top: "conv4_1"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
}
}
layer {
name: "relu4_1"
type: "ReLU"
bottom: "conv4_1"
top: "relu4_1"
}
layer {
name: "conv4_2"
type: "Convolution"
bottom: "relu4_1"
top: "conv4_2"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
}
}
layer {
name: "relu4_2"
type: "ReLU"
bottom: "conv4_2"
top: "relu4_2"
}
layer {
name: "conv4_3"
type: "Convolution"
bottom: "relu4_2"
top: "conv4_3"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
}
}
layer {
name: "relu4_3"
type: "ReLU"
bottom: "conv4_3"
top: "relu4_3"
}
layer {
name: "pool4"
type: "Pooling"
bottom: "relu4_3"
top: "pool4"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv5_1"
type: "Convolution"
bottom: "pool4"
top: "conv5_1"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 1
kernel_size: 3
}
}
layer {
name: "relu5_1"
type: "ReLU"
bottom: "conv5_1"
top: "relu5_1"
}
layer {
name: "conv5_2"
type: "Convolution"
bottom: "relu5_1"
top: "conv5_2"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 1
kernel_size: 3
}
}
layer {
name: "relu5_2"
type: "ReLU"
bottom: "conv5_2"
top: "relu5_2"
}
layer {
name: "conv5_3"
type: "Convolution"
bottom: "relu5_2"
top: "conv5_3"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 1
kernel_size: 3
}
}
layer {
name: "relu5_3"
type: "ReLU"
bottom: "conv5_3"
top: "relu5_3"
}
layer {
name: "pool5"
type: "Pooling"
bottom: "relu5_3"
top: "pool5"
pooling_param {
pool: AVE
kernel_size: 14
stride: 2
}
}
layer {
name: "softmax"
type: "InnerProduct"
bottom: "pool5"
top: "softmax"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
inner_product_param {
num_output: 1000
}
}
layer {
name: "loss"
type: "SoftmaxWithLoss"
bottom: "softmax"
bottom: "label"
top: "loss"
}
layer {
name: "acc_top_1"
type: "Accuracy"
bottom: "softmax"
bottom: "label"
top: "acc_top_1"
accuracy_param {
top_k: 1
}
}
layer {
name: "acc_top_5"
type: "Accuracy"
bottom: "softmax"
bottom: "label"
top: "acc_top_5"
accuracy_param {
top_k: 5
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment