# PP-HGNet

**카테고리:** CNN · **코드:** [`timm/models/hgnet.py`](https://github.com/huggingface/pytorch-image-models/blob/main/timm/models/hgnet.py) · **아키텍처:** 10 · **프리트레인드 가중치:** 19 (ImageNet-1k 결과 포함 19개)

PaddleClas의 PP-HGNet 및 PP-HGNetV2(High Performance GPU Net)는 컨볼루션 시퀀스의 출력을 집계하는 HG 블록으로 구성됩니다. `ssld` 가중치는 PaddleClas SSLD 증류로 학습됩니다.

## 논문

* [자기 감독을 넘어: 백본을 개선하기 위한 단순하면서도 효과적인 네트워크 증류 대안](https://arxiv.org/abs/2103.05959)

## 사용

사전 학습된 가중치 로드, 이미지 전처리 및 파인튜닝에 대해서는 [Quickstart](../quickstart)를, 모델을 백본으로 사용하는 방법에 대해서는 [Feature Extraction](../feature_extraction)을 참고하세요.

```py
>>> import timm
>>> model = timm.create_model('hgnet_small.paddle_in1k', pretrained=True)
>>> data_config = timm.data.resolve_model_data_config(model)
```

## 모델 API 지원

| 기능 | `HighPerfGpuNet` |
|---|---|
| [`features_only=True` feature map](../model_api#intermediate-features) | ✓ (strides 4, 8, 16, 32) |
| [`forward_intermediates()`](../model_api#intermediate-features) | ✓ |
| [`prune_intermediate_layers()`](../model_api#intermediate-features) | ✓ |
| [입력 크기 무관, 변경 불필요](../model_api#input-size) | ✓ |
| [`set_input_size()`](../model_api#input-size) | – |
| [`dynamic_img_size=True`](../model_api#input-size) | – |
| [`set_grad_checkpointing()`](../model_api#training-hooks) | ✓ |
| [레이어별 LR 감쇠(`group_matcher()`)](../model_api#training-hooks) | ✓ |
| [`reset_classifier()`](../model_api#classifier) | ✓ |

✓ 지원됨, ✓ (정사각형) 정사각형 크기만 지원됨, ✗ 미지원, – 필요 없음(모델이 이미 모든 입력 크기를 허용함). 무작위로 초기화된 모델(`HighPerfGpuNet`의 `hgnetv2_b0`, 224)에서 각 기능을 실행하여 확인했으며, 같은 클래스의 다른 아키텍처도 동일한 동작을 하는 것으로 예상됩니다. 자세한 내용은 [Model API](../model_api) 페이지를 참조하세요.

## 아키텍처

| 아키텍처 | 매개변수 (M) | GMAC | 입력 크기 | 사전 학습된 가중치 |
|---|---:|---:|---:|---:|
| `hgnet_base` | 71.58 | 25.14 | 224 | 1 |
| `hgnet_small` | 24.36 | 8.53 | 224 | 2 |
| `hgnet_tiny` | 14.74 | 4.54 | 224 | 2 |
| `hgnetv2_b0` | 6.00 | 0.33 | 224 | 2 |
| `hgnetv2_b1` | 6.34 | 0.49 | 224 | 2 |
| `hgnetv2_b2` | 11.22 | 1.15 | 224 | 2 |
| `hgnetv2_b3` | 16.29 | 1.78 | 224 | 2 |
| `hgnetv2_b4` | 19.80 | 2.75 | 224 | 2 |
| `hgnetv2_b5` | 39.57 | 6.56 | 224 | 2 |
| `hgnetv2_b6` | 75.26 | 16.88 | 224 | 2 |

GMACs와 매개변수 수는 각 아키텍처의 기본 입력 크기 및 분류기를 기준으로 하며, [벤치마크 결과](https://github.com/huggingface/pytorch-image-models/tree/main/results)에서 가져온 값입니다.

## 사전 학습된 가중치

Top-1은 [`results-imagenet.csv`](https://github.com/huggingface/pytorch-image-models/blob/main/results/results-imagenet.csv)에 나열된 평가 크기에서 측정된 ImageNet-1k 검증 정확도이며, 해당 가중치에 ImageNet-1k 결과가 없는 경우(예: 사전 학습 또는 이미지-텍스트 가중치)에는 '-'로 표시됩니다. Classes는 사전 학습된 분류기의 크기를 나타내며, 분류기가 없는 가중치의 경우 해당 값이 없습니다.

Weights는 소스에 따라 그룹화됩니다: 사전 학습 설정에 명시된 논문 또는 출처, `timm`가 아닌 Hub 조직, 사전 학습 태그의 첫 번째 부분(`architecture.tag`) 순서입니다. 단일 weight만 있는 소스는 other에 나열됩니다.

### `ssld` 태그

| 가중치 | 입력 크기 | Top-1(%) | 평가 크기 | 클래스 | 라이선스 | Hub |
|---|---:|---:|---:|---:|---|---|
| `hgnet_base.ssld_in1k` | 224 (테스트 288) | 85.488 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnet_base.ssld_in1k) |
| `hgnet_small.ssld_in1k` | 224 (테스트 288) | 84.368 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnet_small.ssld_in1k) |
| `hgnet_tiny.ssld_in1k` | 224 (테스트 288) | 82.528 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnet_tiny.ssld_in1k) |
| `hgnetv2_b0.ssld_stage1_in22k_in1k` | 224 (테스트 288) | 78.038 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnetv2_b0.ssld_stage1_in22k_in1k) |
| `hgnetv2_b0.ssld_stage2_ft_in1k` | 224 (테스트 288) | 78.590 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnetv2_b0.ssld_stage2_ft_in1k) |
| `hgnetv2_b1.ssld_stage1_in22k_in1k` | 224 (테스트 288) | 79.050 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnetv2_b1.ssld_stage1_in22k_in1k) |
| `hgnetv2_b1.ssld_stage2_ft_in1k` | 224 (테스트 288) | 79.916 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnetv2_b1.ssld_stage2_ft_in1k) |
| `hgnetv2_b2.ssld_stage1_in22k_in1k` | 224 (테스트 288) | 81.456 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnetv2_b2.ssld_stage1_in22k_in1k) |
| `hgnetv2_b2.ssld_stage2_ft_in1k` | 224 (테스트 288) | 82.362 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnetv2_b2.ssld_stage2_ft_in1k) |
| `hgnetv2_b3.ssld_stage1_in22k_in1k` | 224 (테스트 288) | 83.118 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnetv2_b3.ssld_stage1_in22k_in1k) |
| `hgnetv2_b3.ssld_stage2_ft_in1k` | 224 (테스트 288) | 83.588 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnetv2_b3.ssld_stage2_ft_in1k) |
| `hgnetv2_b4.ssld_stage1_in22k_in1k` | 224 (테스트 288) | 83.450 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnetv2_b4.ssld_stage1_in22k_in1k) |
| `hgnetv2_b4.ssld_stage2_ft_in1k` | 224 (테스트 288) | 83.952 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnetv2_b4.ssld_stage2_ft_in1k) |
| `hgnetv2_b5.ssld_stage1_in22k_in1k` | 224 (테스트 288) | 84.930 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnetv2_b5.ssld_stage1_in22k_in1k) |
| `hgnetv2_b5.ssld_stage2_ft_in1k` | 224 (테스트 288) | 85.158 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnetv2_b5.ssld_stage2_ft_in1k) |
| `hgnetv2_b6.ssld_stage1_in22k_in1k` | 224 (테스트 288) | 86.300 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnetv2_b6.ssld_stage1_in22k_in1k) |
| `hgnetv2_b6.ssld_stage2_ft_in1k` | 224 (테스트 288) | 86.380 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnetv2_b6.ssld_stage2_ft_in1k) |

### `paddle` 태그

| 가중치 | 입력 크기 | Top-1(%) | 평가 크기 | 클래스 | 라이선스 | Hub |
|---|---:|---:|---:|---:|---|---|
| `hgnet_small.paddle_in1k` | 224 (테스트 288) | 82.222 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnet_small.paddle_in1k) |
| `hgnet_tiny.paddle_in1k` | 224 (테스트 288) | 80.644 | 288 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/hgnet_tiny.paddle_in1k) |

