← 开源
facebookresearch

classifier-balancing

This repository contains code for the paper "Decoupling Representation and Classifier for Long-Tailed Recognition", published at ICLR 2020

Model DevelopmentArchitecturePython
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
980
Star
137
Fork
+0
本周
1
贡献者
创建于 2019-12-04 · 更新于 2026-09-14 · 今日第 12254 名
主要开发者
bingykang

facebookresearch/classifier-balancing 排名第 12,254,有 980 个星标。

同类别比较

facebookresearch/classifier-balancing 排名第 12,254,此处有 8 个同类条目;NVIDIA/NVFlare 排名第 12,252。

同类别比较
名称排名指标
qinzheng93/GeoTransformer12,239
语言:
Python
星标数:
984
分叉数:
121
简介:
[CVPR2022] Geometric Transformer for Fast and Robust Point Cloud Registration
timgaripov/swa12,244
语言:
Python
星标数:
983
分叉数:
130
简介:
Stochastic Weight Averaging in PyTorch
kmkurn/pytorch-crf12,249
语言:
Python
星标数:
982
分叉数:
154
简介:
(Linear-chain) Conditional random field in PyTorch.
NVIDIA/NVFlare12,252
语言:
Python
星标数:
981
分叉数:
294
简介:
NVIDIA Federated Learning Application Runtime Environment
threedle/text2mesh12,261
语言:
Jupyter Notebook
星标数:
979
分叉数:
135
简介:
3D mesh stylization driven by a text input in PyTorch
google-research/batch-ppo12,267
语言:
Python
星标数:
978
分叉数:
147
简介:
Efficient Batched Reinforcement Learning in TensorFlow
microsoft/Samba12,268
语言:
Python
星标数:
978
分叉数:
52
简介:
[ICLR 2025] Samba: Simple Hybrid State Space Models for Efficient Unlimited Context Language Modeling
timqian/bambot12,270
语言:
TypeScript
星标数:
978
分叉数:
96
简介:
Play with open source, low-cost AI robots with ease 🤖
关键参数与规格
关键参数与规格
参数值
语言Python
类别Model Development
子类别Architecture
星标数980
分叉数137
贡献者1
创建日期2019-12-04
更新日期2026-09-14
1 天星标数0
7 天星标数0
排名12,254
上次排名12,188
排名变化-66
7 天星标排名13,340
上次 7 天星标排名13,352
7 天星标排名变化12
总星标排名11,324
上次总星标排名11,307
总星标排名变化-17
国家USA
README 摘录

Classifier-Balancing This repository contains code for the paper: **Decoupling Representation and Classifier for Long-Tailed Recognition** Bingyi Kang, Saining Xie,Marcus Rohrbach, Zhicheng Yan, Albert Gordo, Jiashi Feng, Yannis Kalantidis [OpenReview] [Arxiv] [PDF] [Slides] [@ICLR] Facebook AI Research, National University of Singapore _International Conference on Learning Representations (ICLR), 2020_ Abstract The long-tail distribution of the visual world poses great challenges for deep learning based classification models on how to handle the class imbalance problem. Existing solutions usually involve

class-balancing strategies, e. , by loss re-weighting, data re-sampling, or transfer learning from head- to tail-classes, but all of them adhere to the scheme of jointly learning representations and classifiers. In this work, we decouple the learning procedure into representation learning and classification, and systematically explore how different balancing strategies affect them for long-tailed recognition. The findings are surprising: (1) data imbalance might not be an issue in learning high-quality representations; (2) with representations learned

with the simplest instance-balanced (natural) sampling, it is also possible to achieve strong long-tailed recognition ability with relative ease by adjusting only the classifier. We conduct extensive experiments and set new state-of-the-art performance on common long-tailed benchmarks like ImageNet-LT, Places-LT and iNaturalist, showing that it is possible to outperform carefully designed losses, sampling strategies, even complex modules with memory, by using a straightforward approach that decouples representation and classification. If you find

this code useful, consider citing our work: Requirements The code is based on Python 3 PyTorch (version >= 0. 1) yaml Dataset ImageNet_LT and Places_LT Download the ImageNet_2014 and Places_365. iNaturalist 2018 Download the dataset following here. , Generate image name files with this script or use the existing ones [here]. Progressively-balancing Sampling Test the joint learned classifier with representation learning Classifier Learning 1. Tau-normalization Extract fatures Evaluation 4. 8 | ResNeXt50| | Progressively-Balanced | 61. 6 | ResNeXt50

| | Tau-normalization | 59. 9 | ResNeXt50| iNaturalist 2018 Representaion Learning We provide the pre-trained models with instance-balanced (natural) sampling for 90 and 200 epochs as follows: **90 epochs**: [ResNet50] [ResNet101] [ResNet152] **200 epochs**: [ResNet50] [ResNet101] [ResNet152] Classifier learning We provide the cRT and LWS models based on a pretrained ResNet152 model (200 epochs) as follows: [ResNet152(cRT)] [ResNet152(LWS)] Places_LT Representaion learning We provide a pretrained ResNet152 with instance-balanced (natural) sampling: [link] Classifier learning We provide the

cRT and LWS models based on above pretrained ResNet152 model as follows: [ResNet152(cRT)] [ResNet152(LWS)] To test a pretrained model: License This project is licensed under the license found in the LICENSE file in the root directory of this source tree (here). Portions of the source code are from the OLTR project.

常见问题

记录了多少星标和分叉?

facebookresearch/classifier-balancing 有 980 个星标和 137 个分叉。

仓库排名是多少?

facebookresearch/classifier-balancing 排名第 12,254。

记录的语言和类别是什么?

facebookresearch/classifier-balancing 有 980 个星标,语言为 Python,类别为 Model Development。

哪个仓库排名最接近?

facebookresearch/classifier-balancing 与 NVIDIA/NVFlare 比较,后者排名第 12,252,有 981 个星标。

README

Classifier-Balancing

This repository contains code for the paper:

Decoupling Representation and Classifier for Long-Tailed Recognition
Bingyi Kang, Saining Xie,Marcus Rohrbach, Zhicheng Yan, Albert Gordo, Jiashi Feng, Yannis Kalantidis
[OpenReview] [Arxiv] [PDF] [Slides] [@ICLR]
Facebook AI Research, National University of Singapore
International Conference on Learning Representations (ICLR), 2020

Abstract

The long-tail distribution of the visual world poses great challenges for deep learning based classification models on how to handle the class imbalance problem. Existing solutions usually involve class-balancing strategies, e.g., by loss re-weighting, data re-sampling, or transfer learning from head- to tail-classes, but all of them adhere to the scheme of jointly learning representations and classifiers. In this work, we decouple the learning procedure into representation learning and classification, and systematically explore how different balancing strategies affect them for long-tailed recognition. The findings are surprising: (1) data imbalance might not be an issue in learning high-quality representations; (2) with representations learned with the simplest instance-balanced (natural) sampling, it is also possible to achieve strong long-tailed recognition ability with relative ease by adjusting only the classifier. We conduct extensive experiments and set new state-of-the-art performance on common long-tailed benchmarks like ImageNet-LT, Places-LT and iNaturalist, showing that it is possible to outperform carefully designed losses, sampling strategies, even complex modules with memory, by using a straightforward approach that decouples representation and classification.

 

 

If you find this code useful, consider citing our work:

@inproceedings{kang2019decoupling,
  title={Decoupling representation and classifier for long-tailed recognition},
  author={Kang, Bingyi and Xie, Saining and Rohrbach, Marcus and Yan, Zhicheng
          and Gordo, Albert and Feng, Jiashi and Kalantidis, Yannis},
  booktitle={Eighth International Conference on Learning Representations (ICLR)},
  year={2020}
}

Requirements

The code is based on https://github.com/zhmiao/OpenLongTailRecognition-OLTR.

Dataset

  • ImageNet_LT and Places_LT

    Download the ImageNet_2014 and Places_365.

  • iNaturalist 2018

    • Download the dataset following here.
    • cd data/iNaturalist18, Generate image name files with this script or use the existing ones [here].

Change the data_root in main.py accordingly.

Representation Learning

  1. Instance-balanced Sampling
python main.py --cfg ./config/ImageNet_LT/feat_uniform.yaml
  1. Class-balanced Sampling
python main.py --cfg ./config/ImageNet_LT/feat_balance.yaml
  1. Square-root Sampling
python main.py --cfg ./config/ImageNet_LT/feat_squareroot.yaml
  1. Progressively-balancing Sampling
python main.py --cfg ./config/ImageNet_LT/feat_shift.yaml

Test the joint learned classifier with representation learning

python main.py --cfg ./config/ImageNet_LT/feat_uniform.yaml --test 

Classifier Learning

  1. Nearest Class Mean classifier (NCM).
python main.py --cfg ./config/ImageNet_LT/feat_uniform.yaml --test --knn
  1. Classifier Re-training (cRT)
python main.py --cfg ./config/ImageNet_LT/cls_crt.yaml --model_dir ./logs/ImageNet_LT/models/resnext50_uniform_e90
python main.py --cfg ./config/ImageNet_LT/cls_crt.yaml --test
  1. Tau-normalization

Extract fatures

for split in train_split val test
do
  python main.py --cfg ./config/ImageNet_LT/feat_uniform.yaml --test --save_feat $split
done

Evaluation

for split in train val test
do
  python tau_norm.py --root ./logs/ImageNet_LT/models/resnext50_uniform_e90/ --type $split
done
  1. Learnable weight scaling (LWS)
python main.py --cfg ./config/ImageNet_LT/cls_lws.yaml --model_dir ./logs/ImageNet_LT/models/resnext50_uniform_e90
python main.py --cfg ./config/ImageNet_LT/cls_lws.yaml --test

Results and Models

ImageNet_LT

  • Representation learning

    Sampling Many Medium Few All Model
    Instance-Balanced 65.9 37.5 7.7 44.4 ResNeXt50
    Class-Balanced 61.8 40.1 15.5 45.1 ResNeXt50
    Square-Root 64.3 41.2 17.0 46.8 ResNeXt50
    Progressively-Balanced 61.9 43.2 19.4 47.2 ResNeXt50

    For other models trained with instance-balanced (natural) sampling:
    [ResNet50] [ResNet101] [ResNet152] [ResNeXt101] [ResNeXt152]

  • Classifier learning

    Classifier Many Medium Few All Model
    Joint 65.9 37.5 7.7 44.4 ResNeXt50
    NCM 56.6 45.3 28.1 47.3 ResNeXt50
    cRT 61.8 46.2 27.4 49.6 ResNeXt50
    Tau-normalization 59.1 46.9 30.7 49.4 ResNeXt50
    LWS 60.2 47.2 30.3 49.9 ResNeXt50

iNaturalist 2018

Places_LT

  • Representaion learning
    We provide a pretrained ResNet152 with instance-balanced (natural) sampling: [link]
  • Classifier learning
    We provide the cRT and LWS models based on above pretrained ResNet152 model as follows:
    [ResNet152(cRT)] [ResNet152(LWS)]

To test a pretrained model:
python main.py --cfg /path/to/config/file --model_dir /path/to/model/file --test

License

This project is licensed under the license found in the LICENSE file in the root directory of this source tree (here). Portions of the source code are from the OLTR project.

排名相邻
同类项目