|
<!--Copyright 2022 The HuggingFace Team. All rights reserved. |
|
|
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with |
|
the License. You may obtain a copy of the License at |
|
|
|
http://www.apache.org/licenses/LICENSE-2.0 |
|
|
|
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on |
|
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the |
|
specific language governing permissions and limitations under the License. |
|
|
|
⚠️ Note that this file is in Markdown but contain specific syntax for our doc-builder (similar to MDX) that may not be |
|
rendered properly in your Markdown viewer. |
|
|
|
--> |
|
|
|
# ConvNeXT |
|
|
|
## Overview |
|
|
|
The ConvNeXT model was proposed in [A ConvNet for the 2020s](https://arxiv.org/abs/2201.03545) by Zhuang Liu, Hanzi Mao, Chao-Yuan Wu, Christoph Feichtenhofer, Trevor Darrell, Saining Xie. |
|
ConvNeXT is a pure convolutional model (ConvNet), inspired by the design of Vision Transformers, that claims to outperform them. |
|
|
|
The abstract from the paper is the following: |
|
|
|
*The "Roaring 20s" of visual recognition began with the introduction of Vision Transformers (ViTs), which quickly superseded ConvNets as the state-of-the-art image classification model. |
|
A vanilla ViT, on the other hand, faces difficulties when applied to general computer vision tasks such as object detection and semantic segmentation. It is the hierarchical Transformers |
|
(e.g., Swin Transformers) that reintroduced several ConvNet priors, making Transformers practically viable as a generic vision backbone and demonstrating remarkable performance on a wide |
|
variety of vision tasks. However, the effectiveness of such hybrid approaches is still largely credited to the intrinsic superiority of Transformers, rather than the inherent inductive |
|
biases of convolutions. In this work, we reexamine the design spaces and test the limits of what a pure ConvNet can achieve. We gradually "modernize" a standard ResNet toward the design |
|
of a vision Transformer, and discover several key components that contribute to the performance difference along the way. The outcome of this exploration is a family of pure ConvNet models |
|
dubbed ConvNeXt. Constructed entirely from standard ConvNet modules, ConvNeXts compete favorably with Transformers in terms of accuracy and scalability, achieving 87.8% ImageNet top-1 accuracy |
|
and outperforming Swin Transformers on COCO detection and ADE20K segmentation, while maintaining the simplicity and efficiency of standard ConvNets.* |
|
|
|
Tips: |
|
|
|
- See the code examples below each model regarding usage. |
|
|
|
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/convnext_architecture.jpg" |
|
alt="drawing" width="600"/> |
|
|
|
<small> ConvNeXT architecture. Taken from the <a href="https://arxiv.org/abs/2201.03545">original paper</a>.</small> |
|
|
|
This model was contributed by [nielsr](https://huggingface.co/nielsr). TensorFlow version of the model was contributed by [ariG23498](https://github.com/ariG23498), |
|
[gante](https://github.com/gante), and [sayakpaul](https://github.com/sayakpaul) (equal contribution). The original code can be found [here](https://github.com/facebookresearch/ConvNeXt). |
|
|
|
## Resources |
|
|
|
A list of official Hugging Face and community (indicated by 🌎) resources to help you get started with ConvNeXT. |
|
|
|
<PipelineTag pipeline="image-classification"/> |
|
|
|
- [`ConvNextForImageClassification`] is supported by this [example script](https://github.com/huggingface/transformers/tree/main/examples/pytorch/image-classification) and [notebook](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/image_classification.ipynb). |
|
- See also: [Image classification task guide](../tasks/image_classification) |
|
|
|
If you're interested in submitting a resource to be included here, please feel free to open a Pull Request and we'll review it! The resource should ideally demonstrate something new instead of duplicating an existing resource. |
|
|
|
## ConvNextConfig |
|
|
|
[[autodoc]] ConvNextConfig |
|
|
|
## ConvNextFeatureExtractor |
|
|
|
[[autodoc]] ConvNextFeatureExtractor |
|
|
|
## ConvNextImageProcessor |
|
|
|
[[autodoc]] ConvNextImageProcessor |
|
- preprocess |
|
|
|
## ConvNextModel |
|
|
|
[[autodoc]] ConvNextModel |
|
- forward |
|
|
|
## ConvNextForImageClassification |
|
|
|
[[autodoc]] ConvNextForImageClassification |
|
- forward |
|
|
|
|
|
## TFConvNextModel |
|
|
|
[[autodoc]] TFConvNextModel |
|
- call |
|
|
|
|
|
## TFConvNextForImageClassification |
|
|
|
[[autodoc]] TFConvNextForImageClassification |
|
- call |
|
|