PaddleClas
A treasure chest for visual classification and recognition powered by PaddlePaddle
PaddleClas is a Python toolkit for image classification built on top of PaddlePaddle, Baidu's deep learning framework. Its purpose is to help researchers and engineers train models that can look at a photo and assign it to one of many predefined categories, a task that underlies things like product identification, content moderation, and medical image screening.
The library ships with a large collection of pre-trained models, over 120 in total, spanning 24 different neural network architectures. These are models that have already been trained on ImageNet, a dataset of over a million labeled photographs across 1,000 categories, and can be fine-tuned for specific tasks without starting from scratch. Baidu also provides a separate pre-trained model trained on a 100,000-category dataset, which is intended to give a better starting point for custom classification tasks than the standard ImageNet weights.
PaddleClas includes a technique called SSLD knowledge distillation, which is a method for taking a large, accurate model and using it to train a smaller, faster model that retains most of the accuracy. It also includes implementations of several data augmentation methods, such as AutoAugment, CutMix, and Cutout, which artificially expand the variety of training images to reduce overfitting.
Deployment options are covered in the repository as well. Models trained with PaddleClas can be exported for inference via TensorRT, Paddle-Lite for mobile devices, server-side model serving, and model quantization for size reduction. Both Python and C++ inference paths are documented.
The repository supports training on Linux, Windows, and macOS, including multi-machine distributed training and mixed precision training. The full README is longer than what was shown.