PyTorch implementation of Refine and Represent: Region-to-Object Representation Learning.
Installation of Apex is required to enable DDP.
To log metrics to wandb switch to enable_wandb:True
in train_imagenet_300.yaml
python>=3.9
pytorch>=1.10.0
pyyaml
tensorboardx
scikit-learn
scikit-image
opencv-python
pillow-simd
wandb
This repo uses torch.distributed.launch
for pretraining:
python -m torch.distributed.launch --nproc_per_node=4--nnodes=32 --node_rank=0 --master_addr="" --master_port=12345 r2o_main.py {CONFIG_FILENAME}
imagenet
├── images
│ ├── train
│ │ ├── n01440764
│ │ ├── ...
│ │ ├── n15075141
│ ├── val
│ │ ├── n01440764
│ │ ├── ...
│ │ ├── n15075141
We release pretrained weights pretrained on ImageNet-1k for 300 epochs in torchvision format.
The evaluation baselines are as follows
Metric | Value |
---|---|
PASCAL VOC mIoU | 76.7 |
Cityscapes mIoU | 76.6 |
MS COCO |
41.7 |
MS COCO |
38.3 |
We use MMSegmentation for PASCAL VOC and Cityscapes semantic segmentation. We use detectron2 for MS COCO object detection and instance segmentation. The corresponding config can be found in eval
folder.
This repo is based on the BYOL implementation from Yao: https://github.com/yaox12/BYOL-PyTorch and K-Means implementation from Ali Hassani https://github.com/alihassanijr/TorchKMeans