UPSNet: A Unified Panoptic Segmentation Network

Overview

UPSNet: A Unified Panoptic Segmentation Network

Introduction

UPSNet is initially described in a CVPR 2019 oral paper.

Disclaimer

This repository is tested under Python 3.6, PyTorch 0.4.1. And model training is done with 16 GPUs by using horovod. It should also work under Python 2.7 / PyTorch 1.0 and with 4 GPUs.

License

© Uber, 2018-2019. Licensed under the Uber Non-Commercial License.

Citing UPSNet

If you find UPSNet is useful in your research, please consider citing:

@inproceedings{xiong19upsnet,
    Author = {Yuwen Xiong, Renjie Liao, Hengshuang Zhao, Rui Hu, Min Bai, Ersin Yumer, Raquel Urtasun},
    Title = {UPSNet: A Unified Panoptic Segmentation Network},
    Conference = {CVPR},
    Year = {2019}
}

Main Results

COCO 2017 (trained on train-2017 set)

test split PQ SQ RQ PQTh PQSt
UPSNet-50 val 42.5 78.0 52.4 48.5 33.4
UPSNet-101-DCN test-dev 46.6 80.5 56.9 53.2 36.7

Cityscapes

PQ SQ RQ PQTh PQSt
UPSNet-50 59.3 79.7 73.0 54.6 62.7
UPSNet-101-COCO (ms test) 61.8 81.3 74.8 57.6 64.8

Requirements: Software

We recommend using Anaconda3 as it already includes many common packages.

Requirements: Hardware

We recommend using 4~16 GPUs with at least 11 GB memory to train our model.

Installation

Clone this repo to $UPSNet_ROOT

Run init.sh to build essential C++/CUDA modules and download pretrained model.

For Cityscapes:

Assuming you already downloaded Cityscapes dataset at $CITYSCAPES_ROOT and TrainIds label images are generated, please create a soft link by ln -s $CITYSCAPES_ROOT data/cityscapes under UPSNet_ROOT, and run init_cityscapes.sh to prepare Cityscapes dataset for UPSNet.

For COCO:

Assuming you already downloaded COCO dataset at $COCO_ROOT and have annotations and images folders under it, please create a soft link by ln -s $COCO_ROOT data/coco under UPSNet_ROOT, and run init_coco.sh to prepare COCO dataset for UPSNet.

Training:

python upsnet/upsnet_end2end_train.py --cfg upsnet/experiments/$EXP.yaml

Test:

python upsnet/upsnet_end2end_test.py --cfg upsnet/experiments/$EXP.yaml

We provide serveral config files (16/4 GPUs for Cityscapes/COCO dataset) under upsnet/experiments folder.

Model Weights

The model weights that can reproduce numbers in our paper are available now. Please follow these steps to use them:

Run download_weights.sh to get trained model weights for Cityscapes and COCO.

For Cityscapes:

python upsnet/upsnet_end2end_test.py --cfg upsnet/experiments/upsnet_resnet50_cityscapes_16gpu.yaml --weight_path ./model/upsnet_resnet_50_cityscapes_12000.pth
python upsnet/upsnet_end2end_test.py --cfg upsnet/experiments/upsnet_resnet101_cityscapes_w_coco_16gpu.yaml --weight_path ./model/upsnet_resnet_101_cityscapes_w_coco_3000.pth

For COCO:

python upsnet/upsnet_end2end_test.py --cfg upsnet/experiments/upsnet_resnet50_coco_16gpu.yaml --weight_path model/upsnet_resnet_50_coco_90000.pth
python upsnet/upsnet_end2end_test.py --cfg upsnet/experiments/upsnet_resnet101_dcn_coco_3x_16gpu.yaml --weight_path model/upsnet_resnet_101_dcn_coco_270000.pth
Comments
  • Question about undefined symbol

    Question about undefined symbol

    Below is the error message I got. Not so sure about how to fix it. Could you help me with this? Thanks.

    ==== UPSNet_ROOT$ python upsnet/upsnet_end2end_train.py --cfg upsnet/experiments/upsnet_resnet50_coco.yaml upsnet/../upsnet/config/config.py:180: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details. exp_config = edict(yaml.load(f)) Traceback (most recent call last): File "upsnet/upsnet_end2end_train.py", line 61, in from upsnet.models import * File "upsnet/../upsnet/models/init.py", line 1, in from .resnet_upsnet import resnet_50_upsnet, resnet_101_upsnet File "upsnet/../upsnet/models/resnet_upsnet.py", line 22, in from upsnet.models.resnet import get_params, resnet_rcnn, ResNetBackbone File "upsnet/../upsnet/models/resnet.py", line 21, in from upsnet.operators.modules.deform_conv import DeformConv File "upsnet/../upsnet/operators/modules/deform_conv.py", line 22, in from upsnet.operators.functions.deform_conv import DeformConvFunction File "upsnet/../upsnet/operators/functions/deform_conv.py", line 21, in from .._ext.deform_conv import deform_conv_cuda ImportError: upsnet/../upsnet/operators/_ext/deform_conv/deform_conv_cuda.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN2at19UndefinedTensorImpl10_singletonE

    opened by WenFuLee 18
  • number of classes

    number of classes

    I have 50 classes in my dataset out of which 25 are thing and 25 are stuff. in the panoptic_coco_categories.json, i have marked them as isthing = 0 and 1 and i created instance labels for only things and panoptic labels for both things and stuff. during my training, if i write number of classes 25+1 = 26, it does not accept it. but if i write number of classes 51, it trains. what could be the problem?

    opened by discretecoder 12
  • ModuleNotFoundError: No module named 'upsnet.bbox.bbox'

    ModuleNotFoundError: No module named 'upsnet.bbox.bbox'

    Did I miss any step to get this error?

    ~/UPSNet_ROOT$ python upsnet/upsnet_end2end_train.py --cfg upsnet/experiments/upsnet_resnet50_coco.yaml
    upsnet/../upsnet/config/config.py:180: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
      exp_config = edict(yaml.load(f))
    Traceback (most recent call last):
      File "upsnet/upsnet_end2end_train.py", line 60, in <module>
        from upsnet.dataset import *
      File "upsnet/../upsnet/dataset/__init__.py", line 1, in <module>
        from .cityscapes import Cityscapes
      File "upsnet/../upsnet/dataset/cityscapes.py", line 32, in <module>
        from upsnet.dataset.json_dataset import JsonDataset, extend_with_flipped_entries, filter_for_training, add_bbox_regression_targets
      File "upsnet/../upsnet/dataset/json_dataset.py", line 53, in <module>
        import upsnet.bbox.bbox_transform as box_utils
      File "upsnet/../upsnet/bbox/bbox_transform.py", line 15, in <module>
        from .bbox import bbox_overlaps as bbox_overlaps_cython
    ModuleNotFoundError: No module named 'upsnet.bbox.bbox'
    

    This is what I got in the route: upsnet/bbox

    ~/UPSNet_ROOT/upsnet/bbox$ ls
    bbox.c                                bbox.pyx            bbox_transform.py  __init__.py  sample_rois.py
    bbox.cpython-37m-x86_64-linux-gnu.so  bbox_regression.py  build              __pycache__  setup.py
    

    Thanks.

    opened by WenFuLee 11
  • RuntimeWarning: invalid value encountered in sqrt

    RuntimeWarning: invalid value encountered in sqrt

    Hi,

    I have ran to this error while I was running (upsnet_resnet50_coco_1gpu.yaml is just a number of gpu change based on 4gpu.yaml

    python -u upsnet/upsnet_end2end_train.py --cfg upsnet/experiments/upsnet_resnet50_coco_1gpu.yaml
    
    • running env: pytorch 1.0
    • version: 96b7b5172b7b76446f637f4922b7a2054e46703b and this PR change (https://github.com/uber-research/UPSNet/pull/35)
    222 2019-05-11 23:08:29,257 | callback.py | line 40 : Batch [1560]  Speed: 2.28 samples/sec Train-rpn_cls_loss=0.202601,    rpn_bbox_loss=0.119188, rcnn_accuracy=0.918098, cls_loss=0.512433,      bbox_loss=0.178919,     mask_loss=0.637334,     fcn_loss=3.486774,      fcn_roi_loss=4.059261,  panoptic_accuracy=0.267040,     panoptic_loss=2.879008,
    223 2019-05-11 23:08:38,512 | callback.py | line 40 : Batch [1580]  Speed: 2.16 samples/sec Train-rpn_cls_loss=0.204118,    rpn_bbox_loss=0.121994, rcnn_accuracy=0.918320, cls_loss=0.511436,      bbox_loss=0.178261,     mask_loss=0.637755,     fcn_loss=3.488841,      fcn_roi_loss=4.060041,  panoptic_accuracy=0.265982,     panoptic_loss=2.881260,
    224 2019-05-11 23:08:47,145 | callback.py | line 40 : Batch [1600]  Speed: 2.32 samples/sec Train-rpn_cls_loss=0.208637,    rpn_bbox_loss=0.125312, rcnn_accuracy=0.918627, cls_loss=0.510648,      bbox_loss=0.177416,     mask_loss=0.637829,     fcn_loss=3.493248,      fcn_roi_loss=4.063709,  panoptic_accuracy=0.264609,     panoptic_loss=2.885051,
    225 2019-05-11 23:08:55,470 | callback.py | line 40 : Batch [1620]  Speed: 2.40 samples/sec Train-rpn_cls_loss=0.210174,    rpn_bbox_loss=0.125260, rcnn_accuracy=0.918797, cls_loss=0.510753,      bbox_loss=0.176945,     mask_loss=0.637923,     fcn_loss=3.496151,      fcn_roi_loss=4.067450,  panoptic_accuracy=0.264234,     panoptic_loss=2.887030,
    226 upsnet/../upsnet/operators/modules/fpn_roi_align.py:38: RuntimeWarning: invalid value encountered in sqrt
    227   feat_id = np.clip(np.floor(2 + np.log2(np.sqrt(w * h) / 224 + 1e-6)), 0, 3)
    228 Traceback (most recent call last):
    229   File "upsnet/upsnet_end2end_train.py", line 403, in <module>
    230     upsnet_train()
    231   File "upsnet/upsnet_end2end_train.py", line 269, in upsnet_train
    232     output = train_model(*batch)
    233   File "/opt/xxx_workspace/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in __call__
    234     result = self.forward(*input, **kwargs)
    235   File "upsnet/../lib/utils/data_parallel.py", line 110, in forward
    236     return self.module(*inputs[0], **kwargs[0])
    237   File "/opt/xxx_workspace/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in __call__
    238     result = self.forward(*input, **kwargs)
    239   File "upsnet/../upsnet/models/resnet_upsnet.py", line 139, in forward
    240     cls_label, bbox_target, bbox_inside_weight, bbox_outside_weight, mask_target)
    241   File "/opt/xxx_workspace/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in __call__
    242     result = self.forward(*input, **kwargs)
    243   File "upsnet/../upsnet/models/rcnn.py", line 190, in forward
    244     cls_loss = self.cls_loss(cls_score, cls_label)
    245   File "/opt/xxx_workspace/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in __call__
    246     result = self.forward(*input, **kwargs)
    247   File "/opt/xxx_workspace/anaconda3/lib/python3.7/site-packages/torch/nn/modules/loss.py", line 942, in forward
    248     ignore_index=self.ignore_index, reduction=self.reduction)
    249   File "/opt/xxx_workspace/anaconda3/lib/python3.7/site-packages/torch/nn/functional.py", line 2056, in cross_entropy
    250     return nll_loss(log_softmax(input, 1), target, weight, None, ignore_index, None, reduction)
    251   File "/opt/xxx_workspace/anaconda3/lib/python3.7/site-packages/torch/nn/functional.py", line 1869, in nll_loss
    252     .format(input.size(0), target.size(0)))
    253 ValueError: Expected input batch_size (510) to match target batch_size (512).
    
    opened by insop 10
  • ZeroDivisionError: division by zero

    ZeroDivisionError: division by zero

    2019-04-10 16:16:39,900 | upsnet_end2end_test.py | line 303: unified pano result: Traceback (most recent call last): File "upsnet/upsnet_end2end_test.py", line 312, in upsnet_test() File "upsnet/upsnet_end2end_test.py", line 304, in upsnet_test test_dataset.evaluate_panoptic(test_dataset.get_unified_pan_result(all_ssegs, all_panos, all_pano_cls_inds, stuff_area_limit=config.test.panoptic_stuff_area_limit), os.path.join(final_output_path, 'results', 'pans_unified')) File "upsnet/../upsnet/dataset/base_dataset.py", line 328, in evaluate_panoptic results = pq_compute(gt_json, pred_json, gt_pans, pred_pans, categories) File "upsnet/../upsnet/dataset/base_dataset.py", line 296, in pq_compute results[name], per_class_results = pq_stat.pq_average(categories, isthing=isthing) File "upsnet/../upsnet/dataset/base_dataset.py", line 97, in pq_average return {'pq': pq / n, 'sq': sq / n, 'rq': rq / n, 'n': n}, per_class_results ZeroDivisionError: division by zero

    Hi, when I evaluated the trained model, I found this error.

    opened by lxtGH 10
  • OSError: [Errno 12] Cannot allocate memory

    OSError: [Errno 12] Cannot allocate memory

    I got this error: OSError: [Errno 12] Cannot allocate memory as below. I am wondering if this is because my current GPU memory is too small, which is 13 GB now. Screen Shot 2019-04-16 at 4 22 42 PM

    opened by WenFuLee 9
  • How could we get PQ values?

    How could we get PQ values?

    No matter I run training or testing script, the metrics all I see are AP or AR. Wondering if we should we calculate PQ values ourselves. Or there is anything I missed? Thanks.

    opened by WenFuLee 8
  • ZeroDivisionError: division by zero

    ZeroDivisionError: division by zero

    When doing an evaluation on the test set, I got the following error. I don't have any clue about it.

    2019-04-18 03:56:17,288 | upsnet_end2end_test.py | line 307: unified pano result:
    Traceback (most recent call last):
      File "upsnet/upsnet_end2end_test.py", line 316, in <module>
        upsnet_test()
      File "upsnet/upsnet_end2end_test.py", line 308, in upsnet_test
        test_dataset.evaluate_panoptic(test_dataset.get_unified_pan_result(all_ssegs, all_panos, all_pano_cls_inds, stuff_area_limit=config.test.panoptic_stuff_area_limit), os.path.join(final_output_path, 'results', 'pans_unified'))
      File "upsnet/../upsnet/dataset/base_dataset.py", line 333, in evaluate_panoptic
        results = pq_compute(gt_json, pred_json, gt_pans, pred_pans, categories)
      File "upsnet/../upsnet/dataset/base_dataset.py", line 301, in pq_compute
        results[name], per_class_results = pq_stat.pq_average(categories, isthing=isthing)
      File "upsnet/../upsnet/dataset/base_dataset.py", line 97, in pq_average
        return {'pq': pq / n, 'sq': sq / n, 'rq': rq / n, 'n': n}, per_class_results
    ZeroDivisionError: division by zero
    

    But, the panoptic segmentation results can be successfully generated like below. lindau_000000_000019

    So, how is that possible that I run into the case n = 0? Any idea would be appreciated...Thanks.

    opened by WenFuLee 7
  • Code not executing

    Code not executing

    Hi,

    After following all the steps mentioned and setting up the environment as python 3.6; pytorch 0.4.1; the code has many bugs making it difficult to reproduce the results. Are there some other changes that need to be done - or do following these steps directly work? I am trying to train the model on COCO using the single GPU config file.

    opened by gupta-abhay 6
  •  Question about visualization when trying to test COCO dataset(train2014)

    Question about visualization when trying to test COCO dataset(train2014)

    Thanks for your great work! I had trained the model with COCO train2017&val2017, and pulled the latest code, but when I trying to test COCO dataset (train2014) with setting the vis_mask=True, I still only got an instance segmentation like figure. Is there anything that needs special attention? COCO_train2014_000000000025 jpg

    opened by AllenSpurs 6
  • ModuleNotFoundError: No module named 'upsnet.operators.modules.distbatchnorm'

    ModuleNotFoundError: No module named 'upsnet.operators.modules.distbatchnorm'

    Error message: Traceback (most recent call last): File "upsnet/upsnet_end2end_train.py", line 61, in from upsnet.models import * File "upsnet/../upsnet/models/init.py", line 1, in from .resnet_upsnet import resnet_50_upsnet, resnet_101_upsnet File "upsnet/../upsnet/models/resnet_upsnet.py", line 23, in from upsnet.models.fpn import FPN File "upsnet/../upsnet/models/fpn.py", line 23, in from upsnet.operators.modules.distbatchnorm import BatchNorm2d ModuleNotFoundError: No module named 'upsnet.operators.modules.distbatchnorm'

    opened by ParanoidW 5
  • Dataset overview

    Dataset overview

    I have a difficulty in understanding what the dataset structure looks like. Can someone guide me or give a reference where I can read it for myself?

    Because the model expects data['im_info'] I don't understand what is im_info contains here. I would really appreciate for any assistance here.

    thanks in advance

    opened by kulkarnikeerti 0
  • RuntimeError: expected a Variable argument, but got list

    RuntimeError: expected a Variable argument, but got list

    Hi,

    I have been facing this issue from two days, I tried to figure that out but could not come up with a solution. I would really appreciate if someone can guide me where I am going wrong.

    The below line calls the RCNN with a list and rois as input.

    https://github.com/uber-research/UPSNet/blob/aa8434e5a721ed217849607815304f68dfd7720a/upsnet/models/resnet_upsnet.py#L200

    RCNN class in turns calls the roi_pooling and which calls ROIAlignFunction. So the problem is that, the first input from RCNN is the list which is forwarded to all the following function calls. However the ROIAlignFunction expects the first input as variable not as a list (Also extracts its shape in ROIAlignFunction class for further use, which throws an error with list as in input)

    Can someone guide me if I have missed out something? Or if this list is converted to a variable somewhere on the way? Thanks in advance.

    opened by kulkarnikeerti 0
  • Panoptic head implementation

    Panoptic head implementation

    Hi,

    Thank you very much for the great repo.

    However, I have hard time in finding the panoptic head code. I can find the code for instance and semantic heads but not for the panoptic. I would like to see the entire architecture of the panoptic head in detail. Can someone guide me in which file exactly I can find the code for panoptic head?

    Thanks in advance

    opened by kulkarnikeerti 0
  • TypeError: new(): invalid data type 'str'

    TypeError: new(): invalid data type 'str'

    Hi,

    I would like to get the summary of the model using pytorchsummary. I used below code for the same in upsnet_end2end_train.py

    input_shape = [1, 3, 224, 224], summary(train_model, input_shape)

    But this throws me an error as below File "../upsnet/models/resnet_upsnet.py", line 90, in forward res2, res3, res4, res5 = self.resnet_backbone(data['data']) TypeError: new(): invalid data type 'str'

    https://github.com/uber-research/UPSNet/blob/aa8434e5a721ed217849607815304f68dfd7720a/upsnet/models/resnet_upsnet.py#L90

    If someone can guide me what could be the issue? Thanks in advance

    opened by keerti-ds 0
  • How to infer one Image with COCO Config?

    How to infer one Image with COCO Config?

    Hey Guys,

    i'm currently trying to use the networt with coco_4_gpu on infering one image.

    I'm inputting: -jpg image with 1280x720 img = cv2.imread('00000001.jpg') img = cv2.resize(img,(1280,720),interpolation=cv2.INTER_CUBIC) img = img.transpose(2, 0, 1) img_tensor = torch.from_numpy(img) img_tensor = torch.unsqueeze(img_tensor,0).type(torch.FloatTensor).cuda() img_info = np.array([[720, 1280, 3]]) data = {'data': img_tensor , 'img_info' : img_info}

    When im running the model output i get:

    88 fpn_p5_upsample = self.fpn_upsample(fpn_p5_1x1) ---> 89 fpn_p4_plus = fpn_p5_upsample + fpn_p4_1x1 90 fpn_p4_upsample = self.fpn_upsample(fpn_p4_plus) 91 fpn_p3_plus = fpn_p4_upsample + fpn_p3_1x1

    RuntimeError: The size of tensor a (46) must match the size of tensor b (45) at non-singleton dimension 2

    Whats the matter?

    Im on Pytorch 1.4.

    Kindest regards!

    opened by radarjonathan 0
Owner
Uber Research
Uber's research projects. Projects in this organization are not built for production usage. Maintainance and supports are limited.
Uber Research
[CVPR 2021] Exemplar-Based Open-Set Panoptic Segmentation Network (EOPSN)

EOPSN: Exemplar-Based Open-Set Panoptic Segmentation Network (CVPR 2021) PyTorch implementation for EOPSN. We propose open-set panoptic segmentation t

Jaedong Hwang 49 Dec 30, 2022
Pixel Consensus Voting for Panoptic Segmentation (CVPR 2020)

Implementation for Pixel Consensus Voting (CVPR 2020). This codebase contains the essential ingredients of PCV, including various spatial discretizati

Haochen 23 Oct 25, 2022
[CVPR 2021] Forecasting the panoptic segmentation of future video frames

Panoptic Segmentation Forecasting Colin Graber, Grace Tsai, Michael Firman, Gabriel Brostow, Alexander Schwing - CVPR 2021 [Link to paper] We propose

Niantic Labs 44 Nov 29, 2022
An unofficial personal implementation of UM-Adapt, specifically to tackle joint estimation of panoptic segmentation and depth prediction for autonomous driving datasets.

Semisupervised Multitask Learning This repository is an unofficial and slightly modified implementation of UM-Adapt[1] using PyTorch. This code primar

Abhinav Atrishi 11 Nov 25, 2022
PanopticBEV - Bird's-Eye-View Panoptic Segmentation Using Monocular Frontal View Images

Bird's-Eye-View Panoptic Segmentation Using Monocular Frontal View Images This r

null 63 Dec 16, 2022
Implementation for Panoptic-PolarNet (CVPR 2021)

Panoptic-PolarNet This is the official implementation of Panoptic-PolarNet. [ArXiv paper] Introduction Panoptic-PolarNet is a fast and robust LiDAR po

Zixiang Zhou 126 Jan 1, 2023
A PyTorch implementation of the baseline method in Panoptic Narrative Grounding (ICCV 2021 Oral)

A PyTorch implementation of the baseline method in Panoptic Narrative Grounding (ICCV 2021 Oral)

Biomedical Computer Vision @ Uniandes 52 Dec 19, 2022
[ICRA2021] Reconstructing Interactive 3D Scene by Panoptic Mapping and CAD Model Alignment

Interactive Scene Reconstruction Project Page | Paper This repository contains the implementation of our ICRA2021 paper Reconstructing Interactive 3D

null 97 Dec 28, 2022
Code for the ICCV 2021 Workshop paper: A Unified Efficient Pyramid Transformer for Semantic Segmentation.

Unified-EPT Code for the ICCV 2021 Workshop paper: A Unified Efficient Pyramid Transformer for Semantic Segmentation. Installation Linux, CUDA>=10.0,

null 29 Aug 23, 2022
[NeurIPS2021] Code Release of K-Net: Towards Unified Image Segmentation

K-Net: Towards Unified Image Segmentation Introduction This is an official release of the paper K-Net:Towards Unified Image Segmentation. K-Net will a

Wenwei Zhang 423 Jan 2, 2023
implementation of paper - You Only Learn One Representation: Unified Network for Multiple Tasks

YOLOR implementation of paper - You Only Learn One Representation: Unified Network for Multiple Tasks To reproduce the results in the paper, please us

Kin-Yiu, Wong 1.8k Jan 4, 2023
Code of U2Fusion: a unified unsupervised image fusion network for multiple image fusion tasks, including multi-modal, multi-exposure and multi-focus image fusion.

U2Fusion Code of U2Fusion: a unified unsupervised image fusion network for multiple image fusion tasks, including multi-modal (VIS-IR, medical), multi

Han Xu 129 Dec 11, 2022
Unified unsupervised and semi-supervised domain adaptation network for cross-scenario face anti-spoofing, Pattern Recognition

USDAN The implementation of Unified unsupervised and semi-supervised domain adaptation network for cross-scenario face anti-spoofing, which is accepte

null 11 Nov 3, 2022
Unified Interface for Constructing and Managing Workflows on different workflow engines, such as Argo Workflows, Tekton Pipelines, and Apache Airflow.

Couler What is Couler? Couler aims to provide a unified interface for constructing and managing workflows on different workflow engines, such as Argo

Couler Project 781 Jan 3, 2023
A unified framework for machine learning with time series

Welcome to sktime A unified framework for machine learning with time series We provide specialized time series algorithms and scikit-learn compatible

The Alan Turing Institute 6k Jan 8, 2023
Apache Spark - A unified analytics engine for large-scale data processing

Apache Spark Spark is a unified analytics engine for large-scale data processing. It provides high-level APIs in Scala, Java, Python, and R, and an op

The Apache Software Foundation 34.7k Jan 4, 2023
Object detection on multiple datasets with an automatically learned unified label space.

Simple multi-dataset detection An object detector trained on multiple large-scale datasets with a unified label space; Winning solution of E

Xingyi Zhou 407 Dec 30, 2022
UMEC: Unified Model and Embedding Compression for Efficient Recommendation Systems

[ICLR 2021] "UMEC: Unified Model and Embedding Compression for Efficient Recommendation Systems" by Jiayi Shen, Haotao Wang*, Shupeng Gui*, Jianchao Tan, Zhangyang Wang, and Ji Liu

VITA 39 Dec 3, 2022
SSD: A Unified Framework for Self-Supervised Outlier Detection [ICLR 2021]

SSD: A Unified Framework for Self-Supervised Outlier Detection [ICLR 2021] Pdf: https://openreview.net/forum?id=v5gjXpmR8J Code for our ICLR 2021 pape

Princeton INSPIRE Research Group 113 Nov 27, 2022