# ConvNeXt V2
ConvNeXt V2 is an image classifier with global response normalization.
Tasks: Classification. Install: pip install libreyolo.
Verified against LibreYOLO v1.6.0.

## Install

```bash
pip install "libreyolo"
```

## Predict

**Python**

```python
from libreyolo import LibreYOLO, SAMPLE_IMAGE

model = LibreYOLO("LibreConvNeXtV2atto-cls.pt", device="cpu")
result = model(SAMPLE_IMAGE)
print(result.probs)
```

The eight sizes run classification at 224 pixels. Official pretrained weights are CC-BY-NC-4.0.

## Train

Training rebuilds the classification head for an ImageFolder dataset. `cls_pw` accepts values from 0 to 1 and defaults to 0. `class_weights=True` selects the alternative sample-normalized weighting; it cannot combine with `cls_pw>0`. Weighting settings must match when resuming.

[Dataset setup](/docs/train/datasets) describes the required training data.

**Python**

```python
from libreyolo import LibreYOLO

model = LibreYOLO("LibreConvNeXtV2atto-cls.pt", device="cpu")
# "smoke10" auto-downloads; for your own data, pass a folder with train/ and val/ class subfolders.
model.train(data="smoke10", epochs=1, device="cpu", workers=0)
```


## Validate

**Python**

```python
from libreyolo import LibreYOLO

model = LibreYOLO("LibreConvNeXtV2atto-cls.pt", device="cpu")
metrics = model.val(data="smoke10", workers=0)
print(metrics)
```

Use the dataset format for this task. [Validation](/docs/train/validation) explains the dataset requirements and returned metrics.

## Export

| Task | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Classification | yes | yes | yes | yes | yes |  |  |  | yes |  |  |  |

A "yes" means the export is supported. An empty cell means the exporter refuses that combination.

**Python**

```python
from libreyolo import LibreYOLO, SAMPLE_IMAGE

model = LibreYOLO("LibreConvNeXtV2atto-cls.pt", device="cpu")
model.export(format="onnx")
```

[Export setup](/docs/export) lists format dependencies and loading exported artifacts.

## Checkpoints

| File | Input (px) | Task | Weights license |
| --- | --- | --- | --- |
| `LibreConvNeXtV2atto-cls.pt` |  | Classification | cc-by-nc-4.0 |
| `LibreConvNeXtV2femto-cls.pt` |  | Classification | cc-by-nc-4.0 |
| `LibreConvNeXtV2pico-cls.pt` |  | Classification | cc-by-nc-4.0 |
| `LibreConvNeXtV2n-cls.pt` |  | Classification | cc-by-nc-4.0 |
| `LibreConvNeXtV2t-cls.pt` |  | Classification | cc-by-nc-4.0 |
| `LibreConvNeXtV2b-cls.pt` |  | Classification | cc-by-nc-4.0 |
| `LibreConvNeXtV2l-cls.pt` |  | Classification | cc-by-nc-4.0 |
| `LibreConvNeXtV2h-cls.pt` |  | Classification | cc-by-nc-4.0 |

## Licensing

Check the license on the Hugging Face repository of the specific weights you download. That repository is authoritative and licenses are not always uniform across a family. This is a description of the licenses involved, not legal advice.

- Original work: ConvNeXt V2, Meta AI
- Upstream license: MIT code; CC-BY-NC-4.0 weights
- Upstream source: https://github.com/facebookresearch/ConvNeXt-V2
- LibreYOLO code: MIT
- Weights: MIT code; CC-BY-NC-4.0 weights, republished at https://huggingface.co/LibreYOLO
- Interpretation: The source code is MIT. Official pretrained weights are CC-BY-NC-4.0 and exclude commercial use.

## Citation

```bibtex
@article{Woo2023ConvNeXtV2,
  title={ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders},
  author={Sanghyun Woo, Shoubhik Debnath, Ronghang Hu, Xinlei Chen, Zhuang Liu, In So Kweon and Saining Xie},
  year={2023},
  journal={arXiv preprint arXiv:2301.00808},
}
```

Copied from https://raw.githubusercontent.com/facebookresearch/ConvNeXt-V2/main/README.md
