diff --git a/README.md b/README.md index d6ee28c..325b465 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,12 @@ This repository contains the architectures, Models, logs, etc pertaining to the SimpleNet Paper (Lets keep it simple: Using simple architectures to outperform deeper architectures ) : https://arxiv.org/abs/1608.06037 -(Check the successor of this architecture at [Towards Principled Design of Deep Convolutional Networks: Introducing SimpNet](https://github.com/Coderx7/SimpNet)) SimpleNet-V1 outperforms deeper and heavier architectures such as AlexNet, VGGNet,ResNet,GoogleNet,etc in a series of benchmark datasets, such as CIFAR10/100, MNIST, SVHN. -It also achievs a higher accuracy (currently [71.14/89.75](https://github.com/Coderx7/SimpleNet_Pytorch#imagenet-result)) in imagenet, more than VGGNet, ResNet, MobileNet, AlexNet, NIN, Squeezenet, etc with only 5.7M parameters. -Slimer versions of the architecture work very decently against more complex architectures such as ResNet and WRN as well. +It also achievs a higher accuracy (currently [71.50/90.05 and 78.88/93.43*](https://github.com/Coderx7/SimpleNet_Pytorch#imagenet-result)) in imagenet, more than VGGNet, ResNet, MobileNet, AlexNet, NIN, Squeezenet, etc with only 5.7M parameters. +Slimer versions of the architecture work very decently against more complex architectures such as ResNet, WRN and MobileNet as well. + +*78.88/93.43 was achieved using real-imagenet-labels ## Citation If you find SimpleNet useful in your research, please consider citing: @@ -20,6 +21,10 @@ If you find SimpleNet useful in your research, please consider citing: year={2016} } + +(Check the successor of this architecture at [Towards Principled Design of Deep Convolutional Networks: Introducing SimpNet](https://github.com/Coderx7/SimpNet)) + + ## Other Implementations : **Pytorch** : @@ -35,9 +40,11 @@ ImageNet result was achieved using simple SGD without hyper parameter tuning for | CIFAR100* | **78.37**| | MNIST | 99.75 | | SVHN | 98.21 | -| ImageNet | **71.14/89.75** | +| ImageNet | **71.50/90.05 - 78.88/93.43*** | * Achieved using Pytorch implementation +* the second result achieved using real-imagenet-labels + #### Top CIFAR10/100 results: @@ -105,7 +112,7 @@ achieved using an ensemble or extreme data-augmentation | VGGNet16(138M) | 70.5 | | GoogleNet(8M) | 68.7 | | Wide ResNet(11.7M) | 69.6/89.07 | -| SimpleNet(5.4M) | **71.14/89.75** | +| SimpleNet(5.7M) | **71.50/90.05** | Table 6-Slimmed version Results on Different Datasets diff --git a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/1.5m/simv1_1.5m_m1.caffemodel b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/1.5m/simv1_1.5m_m1.caffemodel new file mode 100644 index 0000000..a555f77 Binary files /dev/null and b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/1.5m/simv1_1.5m_m1.caffemodel differ diff --git a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/1.5m/simv1_1.5m_m1.prototxt b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/1.5m/simv1_1.5m_m1.prototxt new file mode 100644 index 0000000..8dbbc91 --- /dev/null +++ b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/1.5m/simv1_1.5m_m1.prototxt @@ -0,0 +1,387 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { + shape { + dim: 1 + dim: 3 + dim: 224 + dim: 224 + } + } +} +layer { + name: "Conv_0" + type: "Convolution" + bottom: "data" + top: "input.3" + convolution_param { + num_output: 32 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 2 + stride_w: 2 + dilation: 1 + } +} +layer { + name: "Relu_1" + type: "ReLU" + bottom: "input.3" + top: "onnx::Conv_84" +} +layer { + name: "Conv_2" + type: "Convolution" + bottom: "onnx::Conv_84" + top: "input.11" + convolution_param { + num_output: 64 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 2 + stride_w: 2 + dilation: 1 + } +} +layer { + name: "Relu_3" + type: "ReLU" + bottom: "input.11" + top: "onnx::Conv_87" +} +layer { + name: "Conv_4" + type: "Convolution" + bottom: "onnx::Conv_87" + top: "input.19" + convolution_param { + num_output: 64 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 2 + stride_w: 2 + dilation: 1 + } +} +layer { + name: "Relu_5" + type: "ReLU" + bottom: "input.19" + top: "onnx::Conv_90" +} +layer { + name: "Conv_6" + type: "Convolution" + bottom: "onnx::Conv_90" + top: "input.27" + convolution_param { + num_output: 64 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_7" + type: "ReLU" + bottom: "input.27" + top: "onnx::Conv_93" +} +layer { + name: "Conv_8" + type: "Convolution" + bottom: "onnx::Conv_93" + top: "input.35" + convolution_param { + num_output: 64 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_9" + type: "ReLU" + bottom: "input.35" + top: "onnx::Conv_96" +} +layer { + name: "Conv_10" + type: "Convolution" + bottom: "onnx::Conv_96" + top: "input.43" + convolution_param { + num_output: 64 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_11" + type: "ReLU" + bottom: "input.43" + top: "onnx::MaxPool_99" +} +layer { + name: "MaxPool_12" + type: "Pooling" + bottom: "onnx::MaxPool_99" + top: "input.47" + pooling_param { + pool: MAX + kernel_h: 2 + kernel_w: 2 + stride_h: 2 + stride_w: 2 + pad_h: 0 + pad_w: 0 + } +} +layer { + name: "Conv_13" + type: "Convolution" + bottom: "input.47" + top: "input.55" + convolution_param { + num_output: 128 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_14" + type: "ReLU" + bottom: "input.55" + top: "onnx::Conv_103" +} +layer { + name: "Conv_15" + type: "Convolution" + bottom: "onnx::Conv_103" + top: "input.63" + convolution_param { + num_output: 128 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_16" + type: "ReLU" + bottom: "input.63" + top: "onnx::Conv_106" +} +layer { + name: "Conv_17" + type: "Convolution" + bottom: "onnx::Conv_106" + top: "input.71" + convolution_param { + num_output: 128 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_18" + type: "ReLU" + bottom: "input.71" + top: "onnx::Conv_109" +} +layer { + name: "Conv_19" + type: "Convolution" + bottom: "onnx::Conv_109" + top: "input.79" + convolution_param { + num_output: 256 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_20" + type: "ReLU" + bottom: "input.79" + top: "onnx::MaxPool_112" +} +layer { + name: "MaxPool_21" + type: "Pooling" + bottom: "onnx::MaxPool_112" + top: "input.83" + pooling_param { + pool: MAX + kernel_h: 2 + kernel_w: 2 + stride_h: 2 + stride_w: 2 + pad_h: 0 + pad_w: 0 + } +} +layer { + name: "Conv_22" + type: "Convolution" + bottom: "input.83" + top: "input.91" + convolution_param { + num_output: 1024 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_23" + type: "ReLU" + bottom: "input.91" + top: "onnx::Conv_116" +} +layer { + name: "Conv_24" + type: "Convolution" + bottom: "onnx::Conv_116" + top: "input.99" + convolution_param { + num_output: 128 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_25" + type: "ReLU" + bottom: "input.99" + top: "onnx::Conv_119" +} +layer { + name: "Conv_26" + type: "Convolution" + bottom: "onnx::Conv_119" + top: "input.107" + convolution_param { + num_output: 128 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_27" + type: "ReLU" + bottom: "input.107" + top: "onnx::MaxPool_122" +} +layer { + name: "MaxPool_28" + type: "Pooling" + bottom: "onnx::MaxPool_122" + top: "input.111" + pooling_param { + pool: MAX + kernel_h: 11 + kernel_w: 11 + stride_h: 11 + stride_w: 11 + pad_h: 0 + pad_w: 0 + } +} +layer { + name: "Reshape_29" + type: "Flatten" + bottom: "input.111" + top: "input.115" +} +layer { + name: "Gemm_30" + type: "InnerProduct" + bottom: "input.115" + top: "pred" + inner_product_param { + num_output: 1000 + bias_term: true + } +} + diff --git a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/1.5m/simv1_1.5m_m2.caffemodel b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/1.5m/simv1_1.5m_m2.caffemodel new file mode 100644 index 0000000..8c5ddc2 Binary files /dev/null and b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/1.5m/simv1_1.5m_m2.caffemodel differ diff --git a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/1.5m/simv1_1.5m_m2.prototxt b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/1.5m/simv1_1.5m_m2.prototxt new file mode 100644 index 0000000..a1fd42b --- /dev/null +++ b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/1.5m/simv1_1.5m_m2.prototxt @@ -0,0 +1,387 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { + shape { + dim: 1 + dim: 3 + dim: 224 + dim: 224 + } + } +} +layer { + name: "Conv_0" + type: "Convolution" + bottom: "data" + top: "input.3" + convolution_param { + num_output: 32 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 2 + stride_w: 2 + dilation: 1 + } +} +layer { + name: "Relu_1" + type: "ReLU" + bottom: "input.3" + top: "onnx::Conv_84" +} +layer { + name: "Conv_2" + type: "Convolution" + bottom: "onnx::Conv_84" + top: "input.11" + convolution_param { + num_output: 64 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 2 + stride_w: 2 + dilation: 1 + } +} +layer { + name: "Relu_3" + type: "ReLU" + bottom: "input.11" + top: "onnx::Conv_87" +} +layer { + name: "Conv_4" + type: "Convolution" + bottom: "onnx::Conv_87" + top: "input.19" + convolution_param { + num_output: 64 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_5" + type: "ReLU" + bottom: "input.19" + top: "onnx::Conv_90" +} +layer { + name: "Conv_6" + type: "Convolution" + bottom: "onnx::Conv_90" + top: "input.27" + convolution_param { + num_output: 64 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 2 + stride_w: 2 + dilation: 1 + } +} +layer { + name: "Relu_7" + type: "ReLU" + bottom: "input.27" + top: "onnx::Conv_93" +} +layer { + name: "Conv_8" + type: "Convolution" + bottom: "onnx::Conv_93" + top: "input.35" + convolution_param { + num_output: 64 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_9" + type: "ReLU" + bottom: "input.35" + top: "onnx::Conv_96" +} +layer { + name: "Conv_10" + type: "Convolution" + bottom: "onnx::Conv_96" + top: "input.43" + convolution_param { + num_output: 64 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_11" + type: "ReLU" + bottom: "input.43" + top: "onnx::MaxPool_99" +} +layer { + name: "MaxPool_12" + type: "Pooling" + bottom: "onnx::MaxPool_99" + top: "input.47" + pooling_param { + pool: MAX + kernel_h: 2 + kernel_w: 2 + stride_h: 2 + stride_w: 2 + pad_h: 0 + pad_w: 0 + } +} +layer { + name: "Conv_13" + type: "Convolution" + bottom: "input.47" + top: "input.55" + convolution_param { + num_output: 128 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_14" + type: "ReLU" + bottom: "input.55" + top: "onnx::Conv_103" +} +layer { + name: "Conv_15" + type: "Convolution" + bottom: "onnx::Conv_103" + top: "input.63" + convolution_param { + num_output: 128 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_16" + type: "ReLU" + bottom: "input.63" + top: "onnx::Conv_106" +} +layer { + name: "Conv_17" + type: "Convolution" + bottom: "onnx::Conv_106" + top: "input.71" + convolution_param { + num_output: 128 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_18" + type: "ReLU" + bottom: "input.71" + top: "onnx::Conv_109" +} +layer { + name: "Conv_19" + type: "Convolution" + bottom: "onnx::Conv_109" + top: "input.79" + convolution_param { + num_output: 256 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_20" + type: "ReLU" + bottom: "input.79" + top: "onnx::MaxPool_112" +} +layer { + name: "MaxPool_21" + type: "Pooling" + bottom: "onnx::MaxPool_112" + top: "input.83" + pooling_param { + pool: MAX + kernel_h: 2 + kernel_w: 2 + stride_h: 2 + stride_w: 2 + pad_h: 0 + pad_w: 0 + } +} +layer { + name: "Conv_22" + type: "Convolution" + bottom: "input.83" + top: "input.91" + convolution_param { + num_output: 1024 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_23" + type: "ReLU" + bottom: "input.91" + top: "onnx::Conv_116" +} +layer { + name: "Conv_24" + type: "Convolution" + bottom: "onnx::Conv_116" + top: "input.99" + convolution_param { + num_output: 128 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_25" + type: "ReLU" + bottom: "input.99" + top: "onnx::Conv_119" +} +layer { + name: "Conv_26" + type: "Convolution" + bottom: "onnx::Conv_119" + top: "input.107" + convolution_param { + num_output: 128 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_27" + type: "ReLU" + bottom: "input.107" + top: "onnx::MaxPool_122" +} +layer { + name: "MaxPool_28" + type: "Pooling" + bottom: "onnx::MaxPool_122" + top: "input.111" + pooling_param { + pool: MAX + kernel_h: 11 + kernel_w: 11 + stride_h: 11 + stride_w: 11 + pad_h: 0 + pad_w: 0 + } +} +layer { + name: "Reshape_29" + type: "Flatten" + bottom: "input.111" + top: "input.115" +} +layer { + name: "Gemm_30" + type: "InnerProduct" + bottom: "input.115" + top: "pred" + inner_product_param { + num_output: 1000 + bias_term: true + } +} + diff --git a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/3m/simv1_3m_m1.caffemodel b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/3m/simv1_3m_m1.caffemodel new file mode 100644 index 0000000..f19e008 Binary files /dev/null and b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/3m/simv1_3m_m1.caffemodel differ diff --git a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/3m/simv1_3m_m1.prototxt b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/3m/simv1_3m_m1.prototxt new file mode 100644 index 0000000..9957c96 --- /dev/null +++ b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/3m/simv1_3m_m1.prototxt @@ -0,0 +1,387 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { + shape { + dim: 1 + dim: 3 + dim: 224 + dim: 224 + } + } +} +layer { + name: "Conv_0" + type: "Convolution" + bottom: "data" + top: "input.3" + convolution_param { + num_output: 48 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 2 + stride_w: 2 + dilation: 1 + } +} +layer { + name: "Relu_1" + type: "ReLU" + bottom: "input.3" + top: "onnx::Conv_84" +} +layer { + name: "Conv_2" + type: "Convolution" + bottom: "onnx::Conv_84" + top: "input.11" + convolution_param { + num_output: 96 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 2 + stride_w: 2 + dilation: 1 + } +} +layer { + name: "Relu_3" + type: "ReLU" + bottom: "input.11" + top: "onnx::Conv_87" +} +layer { + name: "Conv_4" + type: "Convolution" + bottom: "onnx::Conv_87" + top: "input.19" + convolution_param { + num_output: 96 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 2 + stride_w: 2 + dilation: 1 + } +} +layer { + name: "Relu_5" + type: "ReLU" + bottom: "input.19" + top: "onnx::Conv_90" +} +layer { + name: "Conv_6" + type: "Convolution" + bottom: "onnx::Conv_90" + top: "input.27" + convolution_param { + num_output: 96 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_7" + type: "ReLU" + bottom: "input.27" + top: "onnx::Conv_93" +} +layer { + name: "Conv_8" + type: "Convolution" + bottom: "onnx::Conv_93" + top: "input.35" + convolution_param { + num_output: 96 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_9" + type: "ReLU" + bottom: "input.35" + top: "onnx::Conv_96" +} +layer { + name: "Conv_10" + type: "Convolution" + bottom: "onnx::Conv_96" + top: "input.43" + convolution_param { + num_output: 96 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_11" + type: "ReLU" + bottom: "input.43" + top: "onnx::MaxPool_99" +} +layer { + name: "MaxPool_12" + type: "Pooling" + bottom: "onnx::MaxPool_99" + top: "input.47" + pooling_param { + pool: MAX + kernel_h: 2 + kernel_w: 2 + stride_h: 2 + stride_w: 2 + pad_h: 0 + pad_w: 0 + } +} +layer { + name: "Conv_13" + type: "Convolution" + bottom: "input.47" + top: "input.55" + convolution_param { + num_output: 192 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_14" + type: "ReLU" + bottom: "input.55" + top: "onnx::Conv_103" +} +layer { + name: "Conv_15" + type: "Convolution" + bottom: "onnx::Conv_103" + top: "input.63" + convolution_param { + num_output: 192 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_16" + type: "ReLU" + bottom: "input.63" + top: "onnx::Conv_106" +} +layer { + name: "Conv_17" + type: "Convolution" + bottom: "onnx::Conv_106" + top: "input.71" + convolution_param { + num_output: 192 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_18" + type: "ReLU" + bottom: "input.71" + top: "onnx::Conv_109" +} +layer { + name: "Conv_19" + type: "Convolution" + bottom: "onnx::Conv_109" + top: "input.79" + convolution_param { + num_output: 384 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_20" + type: "ReLU" + bottom: "input.79" + top: "onnx::MaxPool_112" +} +layer { + name: "MaxPool_21" + type: "Pooling" + bottom: "onnx::MaxPool_112" + top: "input.83" + pooling_param { + pool: MAX + kernel_h: 2 + kernel_w: 2 + stride_h: 2 + stride_w: 2 + pad_h: 0 + pad_w: 0 + } +} +layer { + name: "Conv_22" + type: "Convolution" + bottom: "input.83" + top: "input.91" + convolution_param { + num_output: 1536 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_23" + type: "ReLU" + bottom: "input.91" + top: "onnx::Conv_116" +} +layer { + name: "Conv_24" + type: "Convolution" + bottom: "onnx::Conv_116" + top: "input.99" + convolution_param { + num_output: 192 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_25" + type: "ReLU" + bottom: "input.99" + top: "onnx::Conv_119" +} +layer { + name: "Conv_26" + type: "Convolution" + bottom: "onnx::Conv_119" + top: "input.107" + convolution_param { + num_output: 192 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_27" + type: "ReLU" + bottom: "input.107" + top: "onnx::MaxPool_122" +} +layer { + name: "MaxPool_28" + type: "Pooling" + bottom: "onnx::MaxPool_122" + top: "input.111" + pooling_param { + pool: MAX + kernel_h: 11 + kernel_w: 11 + stride_h: 11 + stride_w: 11 + pad_h: 0 + pad_w: 0 + } +} +layer { + name: "Reshape_29" + type: "Flatten" + bottom: "input.111" + top: "input.115" +} +layer { + name: "Gemm_30" + type: "InnerProduct" + bottom: "input.115" + top: "pred" + inner_product_param { + num_output: 1000 + bias_term: true + } +} + diff --git a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/3m/simv1_3m_m2.caffemodel b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/3m/simv1_3m_m2.caffemodel new file mode 100644 index 0000000..3134cb5 Binary files /dev/null and b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/3m/simv1_3m_m2.caffemodel differ diff --git a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/3m/simv1_3m_m2.prototxt b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/3m/simv1_3m_m2.prototxt new file mode 100644 index 0000000..225407b --- /dev/null +++ b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/3m/simv1_3m_m2.prototxt @@ -0,0 +1,387 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { + shape { + dim: 1 + dim: 3 + dim: 224 + dim: 224 + } + } +} +layer { + name: "Conv_0" + type: "Convolution" + bottom: "data" + top: "input.3" + convolution_param { + num_output: 48 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 2 + stride_w: 2 + dilation: 1 + } +} +layer { + name: "Relu_1" + type: "ReLU" + bottom: "input.3" + top: "onnx::Conv_84" +} +layer { + name: "Conv_2" + type: "Convolution" + bottom: "onnx::Conv_84" + top: "input.11" + convolution_param { + num_output: 96 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 2 + stride_w: 2 + dilation: 1 + } +} +layer { + name: "Relu_3" + type: "ReLU" + bottom: "input.11" + top: "onnx::Conv_87" +} +layer { + name: "Conv_4" + type: "Convolution" + bottom: "onnx::Conv_87" + top: "input.19" + convolution_param { + num_output: 96 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_5" + type: "ReLU" + bottom: "input.19" + top: "onnx::Conv_90" +} +layer { + name: "Conv_6" + type: "Convolution" + bottom: "onnx::Conv_90" + top: "input.27" + convolution_param { + num_output: 96 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 2 + stride_w: 2 + dilation: 1 + } +} +layer { + name: "Relu_7" + type: "ReLU" + bottom: "input.27" + top: "onnx::Conv_93" +} +layer { + name: "Conv_8" + type: "Convolution" + bottom: "onnx::Conv_93" + top: "input.35" + convolution_param { + num_output: 96 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_9" + type: "ReLU" + bottom: "input.35" + top: "onnx::Conv_96" +} +layer { + name: "Conv_10" + type: "Convolution" + bottom: "onnx::Conv_96" + top: "input.43" + convolution_param { + num_output: 96 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_11" + type: "ReLU" + bottom: "input.43" + top: "onnx::MaxPool_99" +} +layer { + name: "MaxPool_12" + type: "Pooling" + bottom: "onnx::MaxPool_99" + top: "input.47" + pooling_param { + pool: MAX + kernel_h: 2 + kernel_w: 2 + stride_h: 2 + stride_w: 2 + pad_h: 0 + pad_w: 0 + } +} +layer { + name: "Conv_13" + type: "Convolution" + bottom: "input.47" + top: "input.55" + convolution_param { + num_output: 192 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_14" + type: "ReLU" + bottom: "input.55" + top: "onnx::Conv_103" +} +layer { + name: "Conv_15" + type: "Convolution" + bottom: "onnx::Conv_103" + top: "input.63" + convolution_param { + num_output: 192 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_16" + type: "ReLU" + bottom: "input.63" + top: "onnx::Conv_106" +} +layer { + name: "Conv_17" + type: "Convolution" + bottom: "onnx::Conv_106" + top: "input.71" + convolution_param { + num_output: 192 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_18" + type: "ReLU" + bottom: "input.71" + top: "onnx::Conv_109" +} +layer { + name: "Conv_19" + type: "Convolution" + bottom: "onnx::Conv_109" + top: "input.79" + convolution_param { + num_output: 384 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_20" + type: "ReLU" + bottom: "input.79" + top: "onnx::MaxPool_112" +} +layer { + name: "MaxPool_21" + type: "Pooling" + bottom: "onnx::MaxPool_112" + top: "input.83" + pooling_param { + pool: MAX + kernel_h: 2 + kernel_w: 2 + stride_h: 2 + stride_w: 2 + pad_h: 0 + pad_w: 0 + } +} +layer { + name: "Conv_22" + type: "Convolution" + bottom: "input.83" + top: "input.91" + convolution_param { + num_output: 1536 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_23" + type: "ReLU" + bottom: "input.91" + top: "onnx::Conv_116" +} +layer { + name: "Conv_24" + type: "Convolution" + bottom: "onnx::Conv_116" + top: "input.99" + convolution_param { + num_output: 192 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_25" + type: "ReLU" + bottom: "input.99" + top: "onnx::Conv_119" +} +layer { + name: "Conv_26" + type: "Convolution" + bottom: "onnx::Conv_119" + top: "input.107" + convolution_param { + num_output: 192 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_27" + type: "ReLU" + bottom: "input.107" + top: "onnx::MaxPool_122" +} +layer { + name: "MaxPool_28" + type: "Pooling" + bottom: "onnx::MaxPool_122" + top: "input.111" + pooling_param { + pool: MAX + kernel_h: 11 + kernel_w: 11 + stride_h: 11 + stride_w: 11 + pad_h: 0 + pad_w: 0 + } +} +layer { + name: "Reshape_29" + type: "Flatten" + bottom: "input.111" + top: "input.115" +} +layer { + name: "Gemm_30" + type: "InnerProduct" + bottom: "input.115" + top: "pred" + inner_product_param { + num_output: 1000 + bias_term: true + } +} + diff --git a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/SimpNet-60.97_83.54/snap2.caffemodel b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/5m/simv1_5m_m2.caffemodel similarity index 66% rename from SimpNet_V1/Benchmarks Results with Models/IMAGENET/SimpNet-60.97_83.54/snap2.caffemodel rename to SimpNet_V1/Benchmarks Results with Models/IMAGENET/5m/simv1_5m_m2.caffemodel index 96403cb..507a985 100644 Binary files a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/SimpNet-60.97_83.54/snap2.caffemodel and b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/5m/simv1_5m_m2.caffemodel differ diff --git a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/5m/simv1_5m_m2.prototxt b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/5m/simv1_5m_m2.prototxt new file mode 100644 index 0000000..e5e0581 --- /dev/null +++ b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/5m/simv1_5m_m2.prototxt @@ -0,0 +1,387 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { + shape { + dim: 1 + dim: 3 + dim: 224 + dim: 224 + } + } +} +layer { + name: "Conv_0" + type: "Convolution" + bottom: "data" + top: "input.3" + convolution_param { + num_output: 64 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 2 + stride_w: 2 + dilation: 1 + } +} +layer { + name: "Relu_1" + type: "ReLU" + bottom: "input.3" + top: "onnx::Conv_84" +} +layer { + name: "Conv_2" + type: "Convolution" + bottom: "onnx::Conv_84" + top: "input.11" + convolution_param { + num_output: 128 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 2 + stride_w: 2 + dilation: 1 + } +} +layer { + name: "Relu_3" + type: "ReLU" + bottom: "input.11" + top: "onnx::Conv_87" +} +layer { + name: "Conv_4" + type: "Convolution" + bottom: "onnx::Conv_87" + top: "input.19" + convolution_param { + num_output: 128 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_5" + type: "ReLU" + bottom: "input.19" + top: "onnx::Conv_90" +} +layer { + name: "Conv_6" + type: "Convolution" + bottom: "onnx::Conv_90" + top: "input.27" + convolution_param { + num_output: 128 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 2 + stride_w: 2 + dilation: 1 + } +} +layer { + name: "Relu_7" + type: "ReLU" + bottom: "input.27" + top: "onnx::Conv_93" +} +layer { + name: "Conv_8" + type: "Convolution" + bottom: "onnx::Conv_93" + top: "input.35" + convolution_param { + num_output: 128 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_9" + type: "ReLU" + bottom: "input.35" + top: "onnx::Conv_96" +} +layer { + name: "Conv_10" + type: "Convolution" + bottom: "onnx::Conv_96" + top: "input.43" + convolution_param { + num_output: 128 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_11" + type: "ReLU" + bottom: "input.43" + top: "onnx::MaxPool_99" +} +layer { + name: "MaxPool_12" + type: "Pooling" + bottom: "onnx::MaxPool_99" + top: "input.47" + pooling_param { + pool: MAX + kernel_h: 2 + kernel_w: 2 + stride_h: 2 + stride_w: 2 + pad_h: 0 + pad_w: 0 + } +} +layer { + name: "Conv_13" + type: "Convolution" + bottom: "input.47" + top: "input.55" + convolution_param { + num_output: 256 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_14" + type: "ReLU" + bottom: "input.55" + top: "onnx::Conv_103" +} +layer { + name: "Conv_15" + type: "Convolution" + bottom: "onnx::Conv_103" + top: "input.63" + convolution_param { + num_output: 256 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_16" + type: "ReLU" + bottom: "input.63" + top: "onnx::Conv_106" +} +layer { + name: "Conv_17" + type: "Convolution" + bottom: "onnx::Conv_106" + top: "input.71" + convolution_param { + num_output: 256 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_18" + type: "ReLU" + bottom: "input.71" + top: "onnx::Conv_109" +} +layer { + name: "Conv_19" + type: "Convolution" + bottom: "onnx::Conv_109" + top: "input.79" + convolution_param { + num_output: 512 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_20" + type: "ReLU" + bottom: "input.79" + top: "onnx::MaxPool_112" +} +layer { + name: "MaxPool_21" + type: "Pooling" + bottom: "onnx::MaxPool_112" + top: "input.83" + pooling_param { + pool: MAX + kernel_h: 2 + kernel_w: 2 + stride_h: 2 + stride_w: 2 + pad_h: 0 + pad_w: 0 + } +} +layer { + name: "Conv_22" + type: "Convolution" + bottom: "input.83" + top: "input.91" + convolution_param { + num_output: 2048 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_23" + type: "ReLU" + bottom: "input.91" + top: "onnx::Conv_116" +} +layer { + name: "Conv_24" + type: "Convolution" + bottom: "onnx::Conv_116" + top: "input.99" + convolution_param { + num_output: 256 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_25" + type: "ReLU" + bottom: "input.99" + top: "onnx::Conv_119" +} +layer { + name: "Conv_26" + type: "Convolution" + bottom: "onnx::Conv_119" + top: "input.107" + convolution_param { + num_output: 256 + bias_term: true + group: 1 + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + dilation: 1 + } +} +layer { + name: "Relu_27" + type: "ReLU" + bottom: "input.107" + top: "onnx::MaxPool_122" +} +layer { + name: "MaxPool_28" + type: "Pooling" + bottom: "onnx::MaxPool_122" + top: "input.111" + pooling_param { + pool: MAX + kernel_h: 11 + kernel_w: 11 + stride_h: 11 + stride_w: 11 + pad_h: 0 + pad_w: 0 + } +} +layer { + name: "Reshape_29" + type: "Flatten" + bottom: "input.111" + top: "input.115" +} +layer { + name: "Gemm_30" + type: "InnerProduct" + bottom: "input.115" + top: "pred" + inner_product_param { + num_output: 1000 + bias_term: true + } +} + diff --git a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/SimpNet-60.97_83.54/deploy.prototxt b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/SimpNet-60.97_83.54/deploy.prototxt deleted file mode 100644 index 06d1bcf..0000000 --- a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/SimpNet-60.97_83.54/deploy.prototxt +++ /dev/null @@ -1,1398 +0,0 @@ -name: "SIMPLENET_NoDrp_ImageNet" -input: "data" -input_dim: 1 -input_dim: 3 -input_dim: 227 -input_dim: 227 -force_backward: true -layer { - name: "conv1" - type: "Convolution" - bottom: "data" - top: "conv1" - param { - lr_mult: 1 - } - convolution_param { - num_output: 64 - kernel_size: 7 - stride: 3 - bias_term: true - weight_filler { - type: "xavier" - } - } -} - -layer { - name: "bn1" - type: "BatchNorm" - bottom: "conv1" - top: "conv1" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn1" - type: "BatchNorm" - bottom: "conv1" - top: "conv1" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale1" - type: "Scale" - bottom: "conv1" - top: "conv1" - scale_param { - bias_term: true - } -} - -layer { - name: "relu1" - type: "ReLU" - bottom: "conv1" - top: "conv1" -} -# #######DropOut########## -# layer { - # name: "drop1" - # type: "Dropout" - # bottom: "conv1" - # top: "conv1" - # dropout_param { - # dropout_ratio: 0.2 - # } - # } -# ######################## - -layer { - name: "conv1_0" - type: "Convolution" - bottom: "conv1" - top: "conv1_0" - param { - lr_mult: 1 - } - convolution_param { - num_output: 128 - pad: 1 - - kernel_size: 3 - - stride: 1 - bias_term: true - weight_filler { - type: "xavier" - } - } -} - -layer { - name: "bn1_0" - type: "BatchNorm" - bottom: "conv1_0" - top: "conv1_0" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn1_0" - type: "BatchNorm" - bottom: "conv1_0" - top: "conv1_0" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale1_0" - type: "Scale" - bottom: "conv1_0" - top: "conv1_0" - scale_param { - bias_term: true - } -} -layer { - name: "relu1_0" - type: "ReLU" - bottom: "conv1_0" - top: "conv1_0" -} -######DropOut########## -# layer { - # name: "drop2" - # type: "Dropout" - # bottom: "conv1_0" - # top: "conv1_0" - # dropout_param { - # dropout_ratio: 0.2 - # } - # } -####################### - -layer { - name: "conv2" - type: "Convolution" - bottom: "conv1_0" - top: "conv2" - param { - lr_mult: 1 - } - convolution_param { - num_output: 128 - kernel_size: 7 - stride: 2 - bias_term: true - weight_filler { - type: "gaussian" - std: 0.01 - } - } -} - -layer { - name: "bn2" - type: "BatchNorm" - bottom: "conv2" - top: "conv2" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } - -} -layer { - name: "bn2" - type: "BatchNorm" - bottom: "conv2" - top: "conv2" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } - -} -layer { - name: "scale2" - type: "Scale" - bottom: "conv2" - top: "conv2" - scale_param { - bias_term: true - } -} - -layer { - name: "relu2" - type: "ReLU" - bottom: "conv2" - top: "conv2" -} -# #######DropOut########## -# layer { - # name: "drop3" - # type: "Dropout" - # bottom: "conv2" - # top: "conv2" - # dropout_param { - # dropout_ratio: 0.2 - # } - # } -# ######################## - -layer { - name: "conv2_1" - type: "Convolution" - bottom: "conv2" - top: "conv2_1" - param { - lr_mult: 1 - } - convolution_param { - num_output: 128 - kernel_size: 3 - pad: 1 - stride: 1 - bias_term: true - weight_filler { - type: "gaussian" - std: 0.01 - } - } -} -layer { - name: "bn2_1" - type: "BatchNorm" - bottom: "conv2_1" - top: "conv2_1" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn2_1" - type: "BatchNorm" - bottom: "conv2_1" - top: "conv2_1" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale2_1" - type: "Scale" - bottom: "conv2_1" - top: "conv2_1" - scale_param { - bias_term: true - } -} - -layer { - name: "relu2_1" - type: "ReLU" - bottom: "conv2_1" - top: "conv2_1" -} -layer { - name: "pool2_1" - type: "Pooling" - bottom: "conv2_1" - top: "pool2_1" - pooling_param { - pool: MAX - kernel_size: 2 - stride: 2 - } -} -# #######DropOut########## -# layer { - # name: "drop4" - # type: "Dropout" - # bottom: "pool2_1" - # top: "pool2_1" - # dropout_param { - # dropout_ratio: 0.2 - # } - # } -# ######################## -layer { - name: "conv2_2" - type: "Convolution" - bottom: "pool2_1" - top: "conv2_2" - param { - lr_mult: 1 - } - convolution_param { - num_output: 128 - kernel_size: 3 - pad: 1 - stride: 1 - bias_term: true - weight_filler { - type: "gaussian" - std: 0.01 - } - } -} -layer { - name: "bn2_2" - type: "BatchNorm" - bottom: "conv2_2" - top: "conv2_2" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn2_2" - type: "BatchNorm" - bottom: "conv2_2" - top: "conv2_2" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale2_2" - type: "Scale" - bottom: "conv2_2" - top: "conv2_2" - scale_param { - bias_term: true - } -} -layer { - name: "relu2_2" - type: "ReLU" - bottom: "conv2_2" - top: "conv2_2" -} -# #######DropOut########## -# layer { - # name: "drop5" - # type: "Dropout" - # bottom: "conv2_2" - # top: "conv2_2" - # dropout_param { - # dropout_ratio: 0.2 - # } - # } -# ######################## -layer { - name: "conv3" - type: "Convolution" - bottom: "conv2_2" - top: "conv3" - param { - lr_mult: 1 - } - convolution_param { - num_output: 128 - kernel_size: 3 - pad: 1 - stride: 1 - bias_term: true - weight_filler { - type: "xavier" - } - } -} -layer { - name: "bn3" - type: "BatchNorm" - bottom: "conv3" - top: "conv3" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} - -layer { - name: "bn3" - type: "BatchNorm" - bottom: "conv3" - top: "conv3" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale3" - type: "Scale" - bottom: "conv3" - top: "conv3" - scale_param { - bias_term: true - } -} -layer { - name: "relu3" - type: "ReLU" - bottom: "conv3" - top: "conv3" -} -# #######DropOut########## -# layer { - # name: "drop6" - # type: "Dropout" - # bottom: "conv3" - # top: "conv3" - # dropout_param { - # dropout_ratio: 0.2 - # } - # } -# ######################## -layer { - name: "conv4" - type: "Convolution" - bottom: "conv3" - top: "conv4" - param { - lr_mult: 1 - } - convolution_param { - num_output: 256 - kernel_size: 3 - pad: 1 - stride: 1 - bias_term: true - weight_filler { - type: "xavier" - } - } -} -layer { - name: "pool4" - type: "Pooling" - bottom: "conv4" - top: "pool4" - pooling_param { - pool: MAX - kernel_size: 2 - stride: 2 - } -} - -layer { - name: "bn4" - type: "BatchNorm" - bottom: "pool4" - top: "pool4" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn4" - type: "BatchNorm" - bottom: "pool4" - top: "pool4" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale4" - type: "Scale" - bottom: "pool4" - top: "pool4" - scale_param { - bias_term: true - } -} -layer { - name: "relu4" - type: "ReLU" - bottom: "pool4" - top: "pool4" -} -# #######DropOut########## -# layer { - # name: "drop7" - # type: "Dropout" - # bottom: "pool4" - # top: "pool4" - # dropout_param { - # dropout_ratio: 0.2 - # } - # } -# ######################## -layer { - name: "conv4_1" - type: "Convolution" - bottom: "pool4" - top: "conv4_1" - param { - lr_mult: 1 - } - convolution_param { - num_output: 256 - kernel_size: 3 - pad: 1 - stride: 1 - bias_term: true - weight_filler { - type: "xavier" - } - } -} - -layer { - name: "bn4_1" - type: "BatchNorm" - bottom: "conv4_1" - top: "conv4_1" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn4_1" - type: "BatchNorm" - bottom: "conv4_1" - top: "conv4_1" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale4_1" - type: "Scale" - bottom: "conv4_1" - top: "conv4_1" - scale_param { - bias_term: true - } -} -layer { - name: "relu4_1" - type: "ReLU" - bottom: "conv4_1" - top: "conv4_1" -} -# #######DropOut########## -# layer { - # name: "drop8" - # type: "Dropout" - # bottom: "conv4_1" - # top: "conv4_1" - # dropout_param { - # dropout_ratio: 0.2 - # } - # } -# ######################## -layer { - name: "conv4_2" - type: "Convolution" - bottom: "conv4_1" - top: "conv4_2" - param { - lr_mult: 1 - } - convolution_param { - num_output: 256 - kernel_size: 3 - pad: 1 - stride: 1 - bias_term: true - weight_filler { - type: "xavier" - } - } -} -layer { - name: "bn4_2" - type: "BatchNorm" - bottom: "conv4_2" - top: "conv4_2" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn4_2" - type: "BatchNorm" - bottom: "conv4_2" - top: "conv4_2" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale4_2" - type: "Scale" - bottom: "conv4_2" - top: "conv4_2" - scale_param { - bias_term: true - } -} - -layer { - name: "relu4_2" - type: "ReLU" - bottom: "conv4_2" - top: "conv4_2" -} -# #######DropOut########## -# layer { - # name: "drop9" - # type: "Dropout" - # bottom: "conv4_2" - # top: "conv4_2" - # dropout_param { - # dropout_ratio: 0.2 - # } - # } -# ######################## - -layer { - name: "pool4_2" - type: "Pooling" - bottom: "conv4_2" - top: "pool4_2" - pooling_param { - pool: MAX - kernel_size: 2 - stride: 2 - } -} -##########4_0############## -layer { - name: "conv4_0" - type: "Convolution" - bottom: "pool4_2" - top: "conv4_0" - param { - lr_mult: 1 - } - convolution_param { - num_output: 512 - kernel_size: 3 - pad: 1 - stride: 1 - bias_term: true - weight_filler { - type: "xavier" - } - } -} -layer { - name: "bn4_0" - type: "BatchNorm" - bottom: "conv4_0" - top: "conv4_0" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn4_0" - type: "BatchNorm" - bottom: "conv4_0" - top: "conv4_0" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale4_0" - type: "Scale" - bottom: "conv4_0" - top: "conv4_0" - scale_param { - bias_term: true - } -} -layer { - name: "relu4_0" - type: "ReLU" - bottom: "conv4_0" - top: "conv4_0" -} -# #######DropOut########## -# layer { - # name: "drop10" - # type: "Dropout" - # bottom: "conv4_0" - # top: "conv4_0" - # dropout_param { - # dropout_ratio: 0.2 - # } - # } -# ######################## -layer { - name: "cccp4" - type: "Convolution" - bottom: "conv4_0" - top: "cccp4" - param { - lr_mult: 1 - decay_mult: 1 - } - param { - lr_mult: 2 - decay_mult: 0 - } - convolution_param { - num_output: 2048 - kernel_size: 1 - group: 1 - weight_filler { - type: "xavier" - } - bias_filler { - type: "constant" - value: 0 - } - } -} -layer { - name: "bn_cccp4" - type: "BatchNorm" - bottom: "cccp4" - top: "cccp4" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn_cccp4" - type: "BatchNorm" - bottom: "cccp4" - top: "cccp4" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale_cccp4" - type: "Scale" - bottom: "cccp4" - top: "cccp4" - scale_param { - bias_term: true - } -} -layer { - name: "relu_cccp4" - type: "ReLU" - bottom: "cccp4" - top: "cccp4" -} -layer { - name: "poolcp4" - type: "Pooling" - bottom: "cccp4" - top: "poolcp4" - pooling_param { - pool: MAX - kernel_size: 2 - stride: 2 - } -} -#--------Dropout-------- -# #######DropOut########## -# layer { - # name: "drop4_3" - # type: "Dropout" - # bottom: "cccp4" - # top: "cccp4" - # dropout_param { - # dropout_ratio: 0.2 - # } - # } -# ######################## -#------------------------- -layer { - name: "cccp5" - type: "Convolution" - bottom: "poolcp4" - top: "cccp5" - param { - lr_mult: 1 - decay_mult: 1 - } - param { - lr_mult: 2 - decay_mult: 0 - } - convolution_param { - num_output: 256 - kernel_size: 1 - group: 1 - weight_filler { - type: "xavier" - } - bias_filler { - type: "constant" - value: 0 - } - } -} -layer { - name: "bn_cccp5" - type: "BatchNorm" - bottom: "cccp5" - top: "cccp5" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn_cccp5" - type: "BatchNorm" - bottom: "cccp5" - top: "cccp5" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale_cccp5" - type: "Scale" - bottom: "cccp5" - top: "cccp5" - scale_param { - bias_term: true - } -} - -layer { - name: "relu_cccp5" - type: "ReLU" - bottom: "cccp5" - top: "cccp5" -} - -layer { - name: "poolcp5" - type: "Pooling" - bottom: "cccp5" - top: "poolcp5" - pooling_param { - pool: MAX - kernel_size: 2 - stride: 2 - } -} -# #######DropOut########## -# layer { - # name: "drop11" - # type: "Dropout" - # bottom: "poolcp5" - # top: "poolcp5" - # dropout_param { - # dropout_ratio: 0.2 - # } - # } -# ######################## -layer { - name: "cccp6" - type: "Convolution" - bottom: "poolcp5" - top: "cccp6" - param { - lr_mult: 1 - decay_mult: 1 - } - param { - lr_mult: 2 - decay_mult: 0 - } - convolution_param { - num_output:256 - kernel_size: 3 - pad: 1 - group: 1 - weight_filler { - type: "xavier" - } - bias_filler { - type: "constant" - value: 0 - } - } -} - -layer { - name: "bn_cccp6" - type: "BatchNorm" - bottom: "cccp6" - top: "cccp6" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn_cccp6" - type: "BatchNorm" - bottom: "cccp6" - top: "cccp6" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale_cccp6" - type: "Scale" - bottom: "cccp6" - top: "cccp6" - scale_param { - bias_term: true - } -} - -layer { - name: "relu_cccp6" - type: "ReLU" - bottom: "cccp6" - top: "cccp6" -} - -layer { - name: "poolcp6" - type: "Pooling" - bottom: "cccp6" - top: "poolcp6" - pooling_param { - pool: MAX - global_pooling:true - #kernel_size: 2 - #stride: 2 - } -} -layer { - name: "ip1" - type: "InnerProduct" - bottom: "poolcp6" - top: "ip1" - param { - lr_mult: 1 - decay_mult: 0 - } - param { - lr_mult: 2 - decay_mult: 0 - } - inner_product_param { - num_output: 1000 - weight_filler { - type: "xavier" - } - bias_filler { - type: "constant" - } - } -} -layer { - name: "pred" - type: "Softmax" - bottom: "ip1" - top: "pred" -} \ No newline at end of file diff --git a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/SimpNet-60.97_83.54/snap1.caffemodel b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/SimpNet-60.97_83.54/snap1.caffemodel deleted file mode 100644 index 6f0cf41..0000000 Binary files a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/SimpNet-60.97_83.54/snap1.caffemodel and /dev/null differ diff --git a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/Slim_Version_310KParams_(T1 37.34_T5 63.40)/imageNet_slim_iter_100000.caffemodel b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/Slim_Version_310KParams_(T1 37.34_T5 63.40)/imageNet_slim_iter_100000.caffemodel deleted file mode 100644 index 170f06f..0000000 Binary files a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/Slim_Version_310KParams_(T1 37.34_T5 63.40)/imageNet_slim_iter_100000.caffemodel and /dev/null differ diff --git a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/Slim_Version_310KParams_(T1 37.34_T5 63.40)/imagenet.prototxt b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/Slim_Version_310KParams_(T1 37.34_T5 63.40)/imagenet.prototxt deleted file mode 100644 index bb3faaf..0000000 --- a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/Slim_Version_310KParams_(T1 37.34_T5 63.40)/imagenet.prototxt +++ /dev/null @@ -1,1112 +0,0 @@ -name: "ImageNet_SlimNet_300K_NoDrp" -layer { - name: "data" - type: "Data" - top: "data" - top: "label" - include { - phase: TRAIN - } - transform_param { - mirror: true - crop_size: 227 - mean_file: "imagenet_mean.binaryproto" - } - data_param { - source: "/home/ali/dataset/train_IMDB" - batch_size: 128 - backend: LMDB - } -} -layer { - name: "data" - type: "Data" - top: "data" - top: "label" - include { - phase: TEST - } - transform_param { - mirror: false - crop_size: 227 - mean_file: "imagenet_mean.binaryproto" - } - data_param { - source: "/home/ali/dataset/val_IMDB" - batch_size: 50 - backend: LMDB - } -} -layer { - name: "conv1" - type: "Convolution" - bottom: "data" - top: "conv1" - param { - lr_mult: 1 - } - convolution_param { - num_output: 64 - pad: 1 - kernel_size: 7 - stride: 3 - bias_term: true - weight_filler { - type: "xavier" - } - } -} -layer { - name: "bn1" - type: "BatchNorm" - bottom: "conv1" - top: "bn1" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn1" - type: "BatchNorm" - bottom: "conv1" - top: "bn1" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale1" - type: "Scale" - bottom: "bn1" - top: "scale1" - scale_param { - bias_term: true - } -} - -layer { - name: "relu1" - type: "ReLU" - bottom: "scale1" - top: "relu1" -} -layer { - name: "conv1_0" - type: "Convolution" - bottom: "relu1" - top: "conv1_0" - param { - lr_mult: 1 - } - convolution_param { - num_output: 32 - pad: 1 - kernel_size: 3 - stride: 1 - bias_term: true - weight_filler { - type: "xavier" - } - } -} - -layer { - name: "bn1_0" - type: "BatchNorm" - bottom: "conv1_0" - top: "bn1_0" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn1_0" - type: "BatchNorm" - bottom: "conv1_0" - top: "bn1_0" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale1_0" - type: "Scale" - bottom: "bn1_0" - top: "scale1_0" - scale_param { - bias_term: true - } -} - -layer { - name: "relu1_0" - type: "ReLU" - bottom: "scale1_0" - top: "relu1_0" -} -layer { - name: "conv2" - type: "Convolution" - bottom: "relu1_0" - top: "conv2" - param { - lr_mult: 1 - } - convolution_param { - num_output: 32 - kernel_size: 3 - pad: 1 - stride: 1 - bias_term: true - weight_filler { - type: "gaussian" - std: 0.01 - } - } -} -layer { - name: "bn2" - type: "BatchNorm" - bottom: "conv2" - top: "bn2" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } - -} -layer { - name: "bn2" - type: "BatchNorm" - bottom: "conv2" - top: "bn2" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } - -} -layer { - name: "scale2" - type: "Scale" - bottom: "bn2" - top: "scale2" - scale_param { - bias_term: true - } -} - -layer { - name: "relu2" - type: "ReLU" - bottom: "scale2" - top: "relu2" -} -layer { - name: "conv2_1" - type: "Convolution" - bottom: "relu2" - top: "conv2_1" - param { - lr_mult: 1 - } - convolution_param { - num_output: 32 - kernel_size: 3 - pad: 1 - stride: 1 - bias_term: true - weight_filler { - type: "gaussian" - std: 0.01 - } - } -} -layer { - name: "bn2_1" - type: "BatchNorm" - bottom: "conv2_1" - top: "bn2_1" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn2_1" - type: "BatchNorm" - bottom: "conv2_1" - top: "bn2_1" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale2_1" - type: "Scale" - bottom: "bn2_1" - top: "scale2_1" - scale_param { - bias_term: true - } -} - -layer { - name: "relu2_1" - type: "ReLU" - bottom: "scale2_1" - top: "relu2_1" -} -layer { - name: "pool2_1" - type: "Pooling" - bottom: "relu2_1" - top: "pool2_1" - pooling_param { - pool: MAX - kernel_size: 2 - stride: 2#1 - } -} -layer { - name: "conv2_2" - type: "Convolution" - bottom: "pool2_1" - top: "conv2_2" - param { - lr_mult: 1 - } - convolution_param { - num_output: 32 - kernel_size: 3 - pad: 1 - stride: 1 - bias_term: true - weight_filler { - type: "gaussian" - std: 0.01 - } - } -} - -layer { - name: "bn2_2" - type: "BatchNorm" - bottom: "conv2_2" - top: "bn2_2" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn2_2" - type: "BatchNorm" - bottom: "conv2_2" - top: "bn2_2" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale2_2" - type: "Scale" - bottom: "bn2_2" - top: "scale2_2" - scale_param { - bias_term: true - } -} - -layer { - name: "relu2_2" - type: "ReLU" - bottom: "scale2_2" - top: "relu2_2" -} -layer { - name: "conv3" - type: "Convolution" - bottom: "relu2_2" - top: "conv3" - param { - lr_mult: 1 - } - convolution_param { - num_output: 32 - kernel_size: 3 - pad: 1 - stride: 1 - bias_term: true - weight_filler { - type: "xavier" - } - } -} -layer { - name: "bn3" - type: "BatchNorm" - bottom: "conv3" - top: "bn3" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn3" - type: "BatchNorm" - bottom: "conv3" - top: "bn3" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale3" - type: "Scale" - bottom: "bn3" - top: "scale3" - scale_param { - bias_term: true - } -} -layer { - name: "relu3" - type: "ReLU" - bottom: "scale3" - top: "relu3" -} -layer { - name: "conv4" - type: "Convolution" - bottom: "relu3" - top: "conv4" - param { - lr_mult: 1 - } - convolution_param { - num_output: 64 - kernel_size: 3 - pad: 1 - stride: 1 - bias_term: true - weight_filler { - type: "xavier" - } - } -} -layer { - name: "pool4" - type: "Pooling" - bottom: "conv4" - top: "pool4" - pooling_param { - pool: MAX - kernel_size: 2 - stride: 2 - } -} -layer { - name: "bn4" - type: "BatchNorm" - bottom: "pool4" - top: "bn4" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn4" - type: "BatchNorm" - bottom: "pool4" - top: "bn4" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale4" - type: "Scale" - bottom: "bn4" - top: "scale4" - scale_param { - bias_term: true - } -} -layer { - name: "relu4" - type: "ReLU" - bottom: "scale4" - top: "relu4" -} -layer { - name: "conv4_1" - type: "Convolution" - bottom: "relu4" - top: "conv4_1" - param { - lr_mult: 1 - } - convolution_param { - num_output: 64 - kernel_size: 3 - pad: 1 - stride: 1 - bias_term: true - weight_filler { - type: "xavier" - } - } -} -layer { - name: "bn4_1" - type: "BatchNorm" - bottom: "conv4_1" - top: "bn4_1" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn4_1" - type: "BatchNorm" - bottom: "conv4_1" - top: "bn4_1" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale4_1" - type: "Scale" - bottom: "bn4_1" - top: "scale4_1" - scale_param { - bias_term: true - } -} -layer { - name: "relu4_1" - type: "ReLU" - bottom: "scale4_1" - top: "relu4_1" -} -layer { - name: "conv4_2" - type: "Convolution" - bottom: "relu4_1" - top: "conv4_2" - param { - lr_mult: 1 - } - convolution_param { - num_output: 64 - kernel_size: 3 - pad: 1 - stride: 1 - bias_term: true - weight_filler { - type: "xavier" - } - } -} -layer { - name: "bn4_2" - type: "BatchNorm" - bottom: "conv4_2" - top: "bn4_2" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn4_2" - type: "BatchNorm" - bottom: "conv4_2" - top: "bn4_2" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale4_2" - type: "Scale" - bottom: "bn4_2" - top: "scale4_2" - scale_param { - bias_term: true - } -} -layer { - name: "relu4_2" - type: "ReLU" - bottom: "scale4_2" - top: "relu4_2" -} -layer { - name: "pool4_2" - type: "Pooling" - bottom: "relu4_2" - top: "pool4_2" - pooling_param { - pool: MAX - kernel_size: 2 - stride: 2#1 - } -} -layer { - name: "conv4_0" - type: "Convolution" - bottom: "pool4_2" - top: "conv4_0" - param { - lr_mult: 1 - } - convolution_param { - num_output: 128 - kernel_size: 3 - pad: 1 - stride: 1 - bias_term: true - weight_filler { - type: "xavier" - } - } -} -layer { - name: "bn4_0" - type: "BatchNorm" - bottom: "conv4_0" - top: "bn4_0" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TRAIN - } - batch_norm_param { - use_global_stats: false - moving_average_fraction: 0.95 - } -} -layer { - name: "bn4_0" - type: "BatchNorm" - bottom: "conv4_0" - top: "bn4_0" - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - param { - lr_mult: 0 - decay_mult: 0 - } - - include { - phase: TEST - } - batch_norm_param { - use_global_stats: true - moving_average_fraction: 0.95 - } -} -layer { - name: "scale4_0" - type: "Scale" - bottom: "bn4_0" - top: "scale4_0" - scale_param { - bias_term: true - } -} -layer { - name: "relu4_0" - type: "ReLU" - bottom: "scale4_0" - top: "relu4_0" -} -layer { - name: "cccp4" - type: "Convolution" - bottom: "relu4_0" - top: "cccp4" - param { - lr_mult: 1 - decay_mult: 1 - } - param { - lr_mult: 2 - decay_mult: 0 - } - convolution_param { - num_output: 256 - kernel_size: 1 - group: 1 - weight_filler { - type: "xavier" - } - bias_filler { - type: "constant" - value: 0 - } - } -} -layer { - name: "relu_cccp4" - type: "ReLU" - bottom: "cccp4" - top: "cccp4" -} -layer { - name: "cccp5" - type: "Convolution" - bottom: "cccp4" - top: "cccp5" - param { - lr_mult: 1 - decay_mult: 1 - } - param { - lr_mult: 2 - decay_mult: 0 - } - convolution_param { - num_output: 64 - kernel_size: 1 - group: 1 - weight_filler { - type: "xavier" - } - bias_filler { - type: "constant" - value: 0 - } - } -} -layer { - name: "relu_cccp5" - type: "ReLU" - bottom: "cccp5" - top: "cccp5" -} - -layer { - name: "poolcp5" - type: "Pooling" - bottom: "cccp5" - top: "poolcp5" - pooling_param { - pool: MAX - kernel_size: 2 - stride: 2 - } -} -layer { - name: "cccp6" - type: "Convolution" - bottom: "poolcp5" - top: "cccp6" - param { - lr_mult: 1 - decay_mult: 1 - } - param { - lr_mult: 2 - decay_mult: 0 - } - convolution_param { - num_output:64 - kernel_size: 3 - pad: 1 - group: 1 - weight_filler { - type: "xavier" - } - bias_filler { - type: "constant" - value: 0 - } - } -} -layer { - name: "relu_cccp6" - type: "ReLU" - bottom: "cccp6" - top: "cccp6" -} -layer { - name: "poolcp6" - type: "Pooling" - bottom: "cccp6" - top: "poolcp6" - pooling_param { - pool: MAX - global_pooling:true - } -} -layer { - name: "ip1" - type: "InnerProduct" - bottom: "poolcp6" - top: "ip1" - param { - lr_mult: 1 - decay_mult: 0 - } - param { - lr_mult: 2 - decay_mult: 0 - } - inner_product_param { - num_output: 1000 - weight_filler { - type: "xavier" - } - bias_filler { - type: "constant" - } - } -} -layer { - name: "loss" - type: "SoftmaxWithLoss" - bottom: "ip1" - bottom: "label" - top: "loss" -} -layer { - name: "accuracy_top-1" - type: "Accuracy" - bottom: "ip1" - bottom: "label" - top: "accuracy_top-1" - include { - phase: TEST - } -} -layer { - name: "accuracy_top-5" - type: "Accuracy" - bottom: "ip1" - bottom: "label" - top: "accuracy_top-5" - include { - phase: TEST - } - accuracy_param { - top_k: 5 - } -} diff --git a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/Slim_Version_310KParams_(T1 37.34_T5 63.40)/imagenet_solver.prototxt b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/Slim_Version_310KParams_(T1 37.34_T5 63.40)/imagenet_solver.prototxt deleted file mode 100644 index ba0e3f3..0000000 --- a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/Slim_Version_310KParams_(T1 37.34_T5 63.40)/imagenet_solver.prototxt +++ /dev/null @@ -1,23 +0,0 @@ -test_iter: 1000 -test_interval: 1000 -base_lr: 0.2 -display: 100 -max_iter: 1000000 -lr_policy: "multistep" -gamma: 0.1 -momentum: 0.9 -weight_decay: 0.0001 -snapshot: 20000 -snapshot_prefix: "snapshots/imageNet_slim" -solver_mode: GPU -device_id: 0 -random_seed: 1705 -net: "imagenet.prototxt" -delta: 0.001 -stepvalue: 50000 -stepvalue: 125000 -stepvalue: 193000 -stepvalue: 225000 -stepvalue: 280000 -stepvalue: 350000 -type: "AdaDelta" \ No newline at end of file diff --git a/SimpNet_V1/Benchmarks Results with Models/IMAGENET/readme.md b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/readme.md new file mode 100644 index 0000000..1ea7825 --- /dev/null +++ b/SimpNet_V1/Benchmarks Results with Models/IMAGENET/readme.md @@ -0,0 +1,12 @@ + +Please note that models are converted from onnx to caffe. +The mean, std and crop ratio used are as follows: +```python +DEFAULT_CROP_PCT = 0.875 +IMAGENET_DEFAULT_MEAN = (0.485, 0.456, 0.406) +IMAGENET_DEFAULT_STD = (0.229, 0.224, 0.225) +``` +Also note that images were not channel swapped during training so you dont need to +do channel swap. +You also DO NOT need to rescale the input to [0-255]. +