File size: 4,798 Bytes
45c9b72
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
---

language: en
license: apache-2.0
model_name: caffenet-7.onnx
tags:
- validated
- vision
- classification
- caffenet
---

<!--- SPDX-License-Identifier: BSD-3-Clause -->

# CaffeNet

|Model        |Download  |Download (with sample test data)| ONNX version |Opset version|Top-1 accuracy (%)|Top-5 accuracy (%)|
| ------------- | ------------- | ------------- | ------------- | ------------- |------------- | ------------- |
|CaffeNet| [238 MB](model/caffenet-3.onnx)  |  [244 MB](model/caffenet-3.tar.gz) |  1.1 | 3| | |
|CaffeNet| [238 MB](model/caffenet-6.onnx)  |  [244 MB](model/caffenet-6.tar.gz) |  1.1.2 | 6| | |
|CaffeNet| [238 MB](model/caffenet-7.onnx)  |  [244 MB](model/caffenet-7.tar.gz) |  1.2 | 7| | |
|CaffeNet| [238 MB](model/caffenet-8.onnx)  |  [244 MB](model/caffenet-8.tar.gz) |  1.3 | 8| | |
|CaffeNet| [238 MB](model/caffenet-9.onnx)  |  [244 MB](model/caffenet-9.tar.gz) |  1.4 | 9| | |
|CaffeNet| [233 MB](model/caffenet-12.onnx)  |  [216 MB](model/caffenet-12.tar.gz) |  1.9 | 12|56.27 |79.52 |
|CaffeNet-int8| [58 MB](model/caffenet-12-int8.onnx)  |  [39 MB](model/caffenet-12-int8.tar.gz) |  1.9 | 12| 56.22|79.52 |
|CaffeNet-qdq| [59 MB](model/caffenet-12-qdq.onnx)  |  [44 MB](model/caffenet-12-qdq.tar.gz) |  1.9 | 12| 56.25|79.45 |
> Compared with the fp32 CaffeNet, int8 CaffeNet's Top-1 accuracy drop ratio is 0.09%, Top-5 accuracy drop ratio is 0.13% and performance improvement is 3.08x.
>

> **Note**
>

> Different preprocess methods will lead to different accuracies, the accuracy in table depends on this specific [preprocess method](https://github.com/intel/neural-compressor/blob/master/examples/onnxrt/image_recognition/onnx_model_zoo/caffenet/quantization/ptq/main.py).
>

> The performance depends on the test hardware. Performance data here is collected with Intel® Xeon® Platinum 8280 Processor, 1s 4c per instance, CentOS Linux 8.3, data batch size is 1.

## Description
CaffeNet a variant of AlexNet.
AlexNet is the name of a convolutional neural network for classification,
which competed in the ImageNet Large Scale Visual Recognition Challenge in 2012.

Differences:
- not training with the relighting data-augmentation;
- the order of pooling and normalization layers is switched (in CaffeNet, pooling is done before normalization).

### Dataset
[ILSVRC2012](http://www.image-net.org/challenges/LSVRC/2012/)

## Source
Caffe BVLC CaffeNet ==> Caffe2 CaffeNet ==> ONNX CaffeNet

## Model input and output
### Input
```

data_0: float[1, 3, 224, 224]

```
### Output
```

prob_1: float[1, 1000]

```
### Pre-processing steps
### Post-processing steps
### Sample test data
random generated sampe test data:
- test_data_set_0

- test_data_set_1
- test_data_set_2

- test_data_set_3
- test_data_set_4

- test_data_set_5

## Results/accuracy on test set
This model is snapshot of iteration 310,000.
The best validation performance during training was iteration
313,000 with validation accuracy 57.412% and loss 1.82328.
This model obtains a top-1 accuracy 57.4% and a top-5 accuracy
80.4% on the validation set, using just the center crop.
(Using the average of 10 crops, (4 + 1 center) * 2 mirror,
should obtain a bit higher accuracy still.)

## Quantization
CaffeNet-int8 and CaffeNet-qdq are obtained by quantizing fp32 CaffeNet model. We use [Intel® Neural Compressor](https://github.com/intel/neural-compressor) with onnxruntime backend to perform quantization. View the [instructions](https://github.com/intel/neural-compressor/blob/master/examples/onnxrt/image_recognition/onnx_model_zoo/caffenet/quantization/ptq/README.md) to understand how to use Intel® Neural Compressor for quantization.

### Environment
onnx: 1.9.0
onnxruntime: 1.8.0

### Prepare model
```shell

wget https://github.com/onnx/models/raw/main/vision/classification/caffenet/model/caffenet-12.onnx

```

### Model quantize
Make sure to specify the appropriate dataset path in the configuration file.
```bash

bash run_tuning.sh --input_model=path/to/model \  # model path as *.onnx

--config=caffenet.yaml \

--data_path=/path/to/imagenet \

--label_path=/path/to/imagenet/label \

--output_model=path/to/save

```

## References
* [ImageNet Classification with Deep Convolutional Neural Networks](https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf)

* [Intel® Neural Compressor](https://github.com/intel/neural-compressor)

## Contributors
* [mengniwang95](https://github.com/mengniwang95) (Intel)
* [yuwenzho](https://github.com/yuwenzho) (Intel)
* [airMeng](https://github.com/airMeng) (Intel)
* [ftian1](https://github.com/ftian1) (Intel)
* [hshen14](https://github.com/hshen14) (Intel)

## License
[BSD-3](LICENSE)