PaddleClas: a PaddlePaddle toolkit for visual classification and recognition
A treasure chest for visual classification and recognition powered by PaddlePaddle
At a glance
- What is it?
- PaddleClas is the PaddlePaddle image classification and recognition toolkit. The front page is written in Chinese, the dependency file pins several packages hard, and the newest tag is from 2024.
- Who is it for?
- Use PaddleClas when you want a PaddlePaddle toolkit for image classification and recognition and can live with Chinese documentation plus a dependency file that caps OpenCV and freezes gast. Pass if you expect GPU vector search without adding it yourself.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.
Star history
- PaddlePaddle/PaddleClas5,863 ★ · +16
| Repository | 2026-09-23 | 2026-11-14 |
|---|---|---|
| PaddlePaddle/PaddleClas | 5.8k | 5.9k |
16 Stars in the last 52 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
The front page is Chinese, and every doc link stays inside docs/zh_CN
The main README.md resolves to README_ch.md, and README_en.md sits beside it at the top of the tree as a separate English file.
Two numpy pins and a capped opencv decide what sits beside it
Dependencies arrive through requirements.txt, which pyproject.toml reads dynamically, so that file is the real constraint list:
prettytable
ujson
opencv-python<=4.6.0.66
pillow>=9.0.0
tqdm
PyYAML>=5.1
visualdl>=2.2.0
scipy>=1.0.0
scikit-learn>=0.21.0
gast==0.3.3
faiss-cpu
easydict
numpy==1.24.4; python_version<"3.13"
numpy==1.26.4; python_version>="3.13"Three lines are harder than a package name. opencv-python is capped at 4.6.0.66, so an environment that already carries a newer OpenCV has to give way. gast is frozen at exactly 0.3.3, which means another tool from the wider Paddle ecosystem that wants a later gast cannot share the interpreter. numpy is split by interpreter version, 1.24.4 below Python 3.13 and 1.26.4 from 3.13 up. Everything else is either a floor (pillow, PyYAML, visualdl, scipy, scikit-learn) or unpinned (prettytable, ujson, tqdm, faiss-cpu, easydict), so those float with whatever else is installed. PaddlePaddle itself is not on this list, so the runtime has to exist before anything here runs.
Vector search pulls the CPU build of faiss, and deployment is four separate paths
The dependency list installs faiss-cpu, the CPU build of faiss. A GPU plan for vector search needs a build it does not get from this file, and nothing else in the list upgrades it. A deploy/ directory sits at the top of the tree.
setup.py points the paddleclas package at the repository root
The packaging declaration is worth reading before installing anything:
setup(
packages=['paddleclas'],
package_dir={'paddleclas': ''},
include_package_data=True,
url='https://github.com/PaddlePaddle/PaddleClas',
download_url='https://github.com/PaddlePaddle/PaddleClas.git',
)package_dir sends the package named paddleclas to the empty string, which is the repository root. That is what makes the entry point declared in pyproject.toml, paddleclas = "paddleclas.paddleclas:main", resolve to the paddleclas.py file sitting at the top of the tree beside __init__.py and hubconf.py. One package name is declared, and it points at the root, so ppcls/, tools/, deploy/ and benchmark/ are not installed as packages by that declaration. include_package_data moves the question of what actually ships onto MANIFEST.in. pyproject.toml separately requires setuptools 72.1.0, names the project paddleclas, allows Python 3.8 or newer, and reads its version from version.txt and its dependencies from requirements.txt at build time.
PULC fixes your categories, PP-ShiTuV2 expects them to change
pyproject.toml's keywords sketch the scope: image classification, image recognition, pretrained models, knowledge distillation, product recognition and an image-retrieval system, augmentation methods such as AutoAugment, CutMix, RandAugment and GridMask, and architectures such as DeiT, RepVGG and Swin Transformer.
The newest tag is v2.6.0 from 2024, and the default branch is release/2.6
What you clone is a release branch. The default branch is release/2.6, the newest tag is v2.6.0 dated 2024-11-05, and the two before it are v2.5.2 from 2024-03-25 and v2.5.1 from 2022-12-05. The last push on that branch is dated 2026-10-22, so the branch moves without producing tags.
pyproject.toml advertises the classifier Development Status :: 5 - Production/Stable. The classifier is a self-declaration, and the tag dates are the check on it.
Editorial conclusion
Use PaddleClas when you want a PaddlePaddle toolkit for image classification and recognition and can live with Chinese documentation plus a dependency file that caps OpenCV and freezes gast. Pass if you expect GPU vector search without adding it yourself. Before installing, check the numpy branch for your interpreter, the opencv ceiling, and whether v2.6.0 from 2024-11-05 still matches the runtime you target.
Frequently asked questions
What does installing PaddleClas give you as a command?
One console script, paddleclas, mapped in pyproject.toml to paddleclas.paddleclas:main. setup.py declares a single package named paddleclas whose package_dir points at the repository root, and the dependency list is read from requirements.txt at build time.
Which numpy version does PaddleClas install on Python 3.13?
requirements.txt pins numpy 1.26.4 for python_version >= 3.13 and numpy 1.24.4 for interpreters below 3.13. The same file caps opencv-python at 4.6.0.66 and pins gast to exactly 0.3.3.
What kinds of tasks does PaddleClas cover?
pyproject.toml describes it as a treasure chest for visual recognition powered by PaddlePaddle, with keywords including image classification, image recognition, pretrained models, knowledge distillation, product recognition and an image-retrieval system.
Official sources
Was this useful?