Official implementation of "Accelerating Reinforcement Learning with Learned Skill Priors", Pertsch et al., CoRL 2020

Overview

Accelerating Reinforcement Learning with Learned Skill Priors

[Project Website] [Paper]

Karl Pertsch1, Youngwoon Lee1, Joseph Lim1

1CLVR Lab, University of Southern California

This is the official PyTorch implementation of the paper "Accelerating Reinforcement Learning with Learned Skill Priors" (CoRL 2020).

Updates

  • [Mar 2021]: added an improved version of SPiRL with closed-loop skill decoder (see example commands)

Requirements

  • python 3.7+
  • mujoco 2.0 (for RL experiments)
  • Ubuntu 18.04

Installation Instructions

Create a virtual environment and install all required packages.

cd spirl
pip3 install virtualenv
virtualenv -p $(which python3) ./venv
source ./venv/bin/activate

# Install dependencies and package
pip3 install -r requirements.txt
pip3 install -e .

Set the environment variables that specify the root experiment and data directories. For example:

mkdir ./experiments
mkdir ./data
export EXP_DIR=./experiments
export DATA_DIR=./data

Finally, install our fork of the D4RL benchmark repository by following its installation instructions. It will provide both, the kitchen environment as well as the training data for the skill prior model in kitchen and maze environment.

Example Commands

To train a skill prior model for the kitchen environment, run:

python3 spirl/train.py --path=spirl/configs/skill_prior_learning/kitchen/hierarchical --val_data_size=160

Results can be visualized using tensorboard in the experiment directory: tensorboard --logdir=$EXP_DIR.

For training a SPIRL agent on the kitchen environment using the pre-trained skill prior from above, run:

python3 spirl/rl/train.py --path=spirl/configs/hrl/kitchen/spirl --seed=0 --prefix=SPIRL_kitchen_seed0

Results will be written to WandB. Before running RL, create an account and then change the WandB entity and project name at the top of rl/train.py to match your account.

In both commands, kitchen can be replaced with maze / block_stacking to run on the respective environment. Before training models on these environments, the corresponding datasets need to be downloaded (the kitchen dataset gets downloaded automatically) -- download links are provided below. Additional commands for training baseline models / agents are also provided below.

Baseline Commands

  • Train Single-step action prior:
python3 spirl/train.py --path=spirl/configs/skill_prior_learning/kitchen/flat --val_data_size=160
  • Run Vanilla SAC:
python3 spirl/rl/train.py --path=spirl/configs/rl/kitchen/SAC --seed=0 --prefix=SAC_kitchen_seed0
  • Run SAC w/ single-step action prior:
python3 spirl/rl/train.py --path=spirl/configs/rl/kitchen/prior_initialized/flat_prior/ --seed=0 --prefix=flatPrior_kitchen_seed0
  • Run BC + finetune:
python3 spirl/rl/train.py --path=spirl/configs/rl/kitchen/prior_initialized/bc_finetune/ --seed=0 --prefix=bcFinetune_kitchen_seed0
  • Run Skill Space Policy w/o prior:
python3 spirl/rl/train.py --path=spirl/configs/hrl/kitchen/no_prior/ --seed=0 --prefix=SSP_noPrior_kitchen_seed0

Again, all commands can be run on maze / block stacking by replacing kitchen with the respective environment in the paths (after downloading the datasets).

Starting to Modify the Code

Modifying the hyperparameters

The default hyperparameters are defined in the respective model files, e.g. in skill_prior_mdl.py for the SPIRL model. Modifications to these parameters can be defined through the experiment config files (passed to the respective command via the --path variable). For an example, see kitchen/hierarchical/conf.py.

Adding a new dataset for model training

All code that is dataset-specific should be placed in a corresponding subfolder in spirl/data. To add a data loader for a new dataset, the Dataset classes from data_loader.py need to be subclassed and the __getitem__ function needs to be overwritten to load a single data sample. The output dict should include the following keys:

dict({
    'states': (time, state_dim)                 # state sequence (for state-based prior inputs)
    'actions': (time, action_dim)               # action sequence (as skill input for training prior model)
    'images':  (time, channels, width, height)  # image sequence (for image-based prior inputs)
})

All datasets used with the codebase so far have been based on HDF5 files. The GlobalSplitDataset provides functionality to read all HDF5-files in a directory and split them in train/val/test based on percentages. The VideoDataset class provides many functionalities for manipulating sequences, like randomly cropping subsequences, padding etc.

Adding a new RL environment

To add a new RL environment, simply define a new environent class in spirl/rl/envs that inherits from the environment interface in spirl/rl/components/environment.py.

Modifying the skill prior model architecture

Start by defining a model class in the spirl/models directory that inherits from the BaseModel or SkillPriorMdl class. The new model needs to define the architecture in the constructor (e.g. by overwriting the build_network() function), implement the forward pass and loss functions, as well as model-specific logging functionality if desired. For an example, see spirl/models/skill_prior_mdl.py.

Note, that most basic architecture components (MLPs, CNNs, LSTMs, Flow models etc) are defined in spirl/modules and can be conveniently reused for easy architecture definitions. Below are some links to the most important classes.

Component File Description
MLP Predictor Basic N-layer fully-connected network. Defines number of inputs, outputs, layers and hidden units.
CNN-Encoder ConvEncoder Convolutional encoder, number of layers determined by input dimensionality (resolution halved per layer). Number of channels doubles per layer. Returns encoded vector + skip activations.
CNN-Decoder ConvDecoder Mirrors architecture of conv. encoder. Can take skip connections as input, also versions that copy pixels etc.
Processing-LSTM BaseProcessingLSTM Basic N-layer LSTM for processing an input sequence. Produces one output per timestep, number of layers / hidden size configurable.
Prediction-LSTM RecurrentPredictor Same as processing LSTM, but for autoregressive prediction.
Mixture-Density Network MDN MLP that outputs GMM distribution.
Normalizing Flow Model NormalizingFlowModel Implements normalizing flow model that stacks multiple flow blocks. Implementation for RealNVP block provided.

Adding a new RL algorithm

The core RL algorithms are implemented within the Agent class. For adding a new algorithm, a new file needs to be created in spirl/rl/agents and BaseAgent needs to be subclassed. In particular, any required networks (actor, critic etc) need to be constructed and the update(...) function needs to be overwritten. For an example, see the SAC implementation in SACAgent.

The main SPIRL skill prior regularized RL algorithm is implemented in ActionPriorSACAgent.

Detailed Code Structure Overview

spirl
  |- components            # reusable infrastructure for model training
  |    |- base_model.py    # basic model class that all models inherit from
  |    |- checkpointer.py  # handles storing + loading of model checkpoints
  |    |- data_loader.py   # basic dataset classes, new datasets need to inherit from here
  |    |- evaluator.py     # defines basic evaluation routines, eg top-of-N evaluation, + eval logging
  |    |- logger.py        # implements core logging functionality using tensorboardX
  |    |- params.py        # definition of command line params for model training
  |    |- trainer_base.py  # basic training utils used in main trainer file
  |
  |- configs               # all experiment configs should be placed here
  |    |- data_collect     # configs for data collection runs
  |    |- default_data_configs   # defines one default data config per dataset, e.g. state/action dim etc
  |    |- hrl              # configs for hierarchical downstream RL
  |    |- rl               # configs for non-hierarchical downstream RL
  |    |- skill_prior_learning   # configs for skill embedding and prior training (both hierarchical and flat)
  |
  |- data                  # any dataset-specific code (like data generation scripts, custom loaders etc)
  |- models                # holds all model classes that implement forward, loss, visualization
  |- modules               # reusable architecture components (like MLPs, CNNs, LSTMs, Flows etc)
  |- rl                    # all code related to RL
  |    |- agents           # implements core algorithms in agent classes, like SAC etc
  |    |- components       # reusable infrastructure for RL experiments
  |        |- agent.py     # basic agent and hierarchial agent classes - do not implement any specific RL algo
  |        |- critic.py    # basic critic implementations (eg MLP-based critic)
  |        |- environment.py    # defines environment interface, basic gym env
  |        |- normalization.py  # observation normalization classes, only optional
  |        |- params.py    # definition of command line params for RL training
  |        |- policy.py    # basic policy interface definition
  |        |- replay_buffer.py  # simple numpy-array replay buffer, uniform sampling and versions
  |        |- sampler.py   # rollout sampler for collecting experience, for flat and hierarchical agents
  |    |- envs             # all custom RL environments should be defined here
  |    |- policies         # policy implementations go here, MLP-policy and RandomAction are implemented
  |    |- utils            # utilities for RL code like MPI, WandB related code
  |    |- train.py         # main RL training script, builds all components + runs training
  |
  |- utils                 # general utilities, pytorch / visualization utilities etc
  |- train.py              # main model training script, builds all components + runs training loop and logging

The general philosophy is that each new experiment gets a new config file that captures all hyperparameters etc. so that experiments themselves are version controllable.

Datasets

Dataset Link Size
Maze https://drive.google.com/file/d/1pXM-EDCwFrfgUjxITBsR48FqW9gMoXYZ/view?usp=sharing 12GB
Block Stacking https://drive.google.com/file/d/1VobNYJQw_Uwax0kbFG7KOXTgv6ja2s1M/view?usp=sharing 11GB

You can download the datasets used for the experiments in the paper with the links above. To download the data via the command line, see example commands here.

If you want to generate more data or make other modifications to the data generating procedure, we provide instructions for regenerating the maze and block stacking datasets here.

Citation

If you find this work useful in your research, please consider citing:

@inproceedings{pertsch2020spirl,
    title={Accelerating Reinforcement Learning with Learned Skill Priors},
    author={Karl Pertsch and Youngwoon Lee and Joseph J. Lim},
    booktitle={Conference on Robot Learning (CoRL)},
    year={2020},
}

Acknowledgements

The model architecture and training code builds on a code base which we jointly developed with Oleh Rybkin for our previous project on hierarchial prediction.

We also published many of the utils / architectural building blocks in a stand-alone package for easy import into your own research projects: check out the blox python module.

Comments
  • How to get the 'kitchen-mixed-v0.py' ?

    How to get the 'kitchen-mixed-v0.py' ?

    Hello!

    When i run this code,

    python3 spirl/rl/train.py --path=spirl/configs/hrl/kitchen/spirl_cl --seed=0 --prefix=SPIRL_kitchen_seed0

    Then i got this key error.

    completed_subtasks = info.pop("completed_tasks") KeyError: 'completed_tasks'

    So, i commented it out and ran the code. It went well up to 7%. (Train Epoch: 0 [It 100001/1500000 (7%)]) But this error occured.

    ValueError: tile cannot extend outside image

    That means i can't render from the environment. The reason is that there is no file named 'kitchen-mixed-v0' How to get the 'kitchen-mixed-v0'? I know the code that download the offline env file but i think it doesn't opperate.

    Here is my directory of the project folder. ./spirlProject ├── d4rl │   ├── AdditionalMaps_0.9.8 │   │   ├── CarlaUE4 │   │   └── Engine │   ├── CARLA_0.9.8 │   │   ├── CarlaUE4 │   │   ├── Engine │   │   ├── HDMaps │   │   ├── Import │   │   ├── PythonAPI │   │   └── Tools │   ├── d4rl │   │   ├── carla │   │   ├── carla__ │   │   ├── flow │   │   ├── gym_bullet │   │   ├── gym_minigrid │   │   ├── gym_mujoco │   │   ├── hand_manipulation_suite │   │   ├── kitchen │   │   ├── locomotion │   │   ├── pointmaze │   │   ├── pointmaze_bullet │   │   ├── pycache │   │   └── utils │   ├── d4rl.egg-info │   ├── flow │   │   ├── benchmarks │   │   ├── controllers │   │   ├── core │   │   ├── envs │   │   ├── multiagent_envs │   │   ├── networks │   │   ├── pycache │   │   ├── renderer │   │   ├── scenarios │   │   ├── utils │   │   └── visualize │   ├── flow222 │   │   ├── docs │   │   ├── examples │   │   ├── scripts │   │   ├── tests │   │   └── tutorials │   └── scripts │   ├── generation │   └── reference_scores ├── data ├── docs │   └── resources │   ├── env_videos │   └── policy_videos ├── experiments │   ├── hrl │   │   └── kitchen │   └── skill_prior_learning │   └── kitchen ├── spirl │   ├── components │   │   └── pycache │   ├── configs │   │   ├── data_collect │   │   ├── default_data_configs │   │   ├── hrl │   │   ├── rl │   │   └── skill_prior_learning │   ├── data │   │   ├── block_stacking │   │   ├── kitchen │   │   ├── maze │   │   ├── office │   │   └── pycache │   ├── models │   │   └── pycache │   ├── modules │   │   └── pycache │   ├── pycache │   ├── rl │   │   ├── agents │   │   ├── components │   │   ├── envs │   │   ├── policies │   │   └── utils │   └── utils │   ├── pycache │   └── scripts └── venv ├── bin └── lib └── python3.8

    Are the d4rl or flow path wrong?

    opened by whiteBerryJ 7
  • How to evaluate the learned embedding space and skill prior?

    How to evaluate the learned embedding space and skill prior?

    Hi,

    before we train the RL policy, how could we evaluate the skill embedding space Z and the learned skill prior? I know that the training results can be visualized via tensorboard, but do we have other metrics to check its performance or how could we make sure the skill prior really work?

    opened by yquantao 4
  • RuntimeError: No filenames found in /home/user_name/rl_ws/spirl/data/block_stacking

    RuntimeError: No filenames found in /home/user_name/rl_ws/spirl/data/block_stacking

    Hi,

    I downloaded block_stacking.zip dataset and put it in the created folder, like ./data/block_stacking/blocking_stacking.zip, the data_dir is /home/user_name/rl_ws/spirl/data/block_stacking, while the file can not be found, I also tried this way ./data/blocking_stacking.zip, it is the same, did I miss something?

    Thanks.

    opened by yquantao 4
  • Caught RuntimeError in replica 1 on device 1.

    Caught RuntimeError in replica 1 on device 1.

    Hi. I'm trying to learn a skill prior using my personal dataset. It works well when using single GPU, but I got the following error when using multi-GPUs (two RTX 3090)

    Screenshot from 2022-04-18 19-10-59

    How can I solve this?

    opened by gd-goblin 3
  • parallel env

    parallel env

    Obvisiously, it is very slow to run one env at a time. But parallel env suffers from the problem of different steps in HRL especially fixed interval. Would you have some ideas to solve this problem?

    opened by rainbow979 3
  • Logger Error for --mode=val

    Logger Error for --mode=val

    Hi, I was trying to replicate the results by running in validation mode and got an error for the logger:

    Traceback (most recent call last):
      File "spirl/rl/train.py", line 311, in <module>
        RLTrainer(args=get_args())
      File "spirl/rl/train.py", line 78, in __init__
        self.val()
      File "spirl/rl/train.py", line 162, in val
        self.logger, log_images=True, step=self.global_step)
      File "/home-nfs/rteehan/spirl/spirl/rl/components/agent.py", line 259, in log_outputs
        super().log_outputs(logging_stats, rollout_storage, logger, log_images, step)
      File "/home-nfs/rteehan/spirl/spirl/rl/components/agent.py", line 74, in log_outputs
        logger.log_scalar_dict(logging_stats, prefix='train' if self._is_train else 'val', step=step)
    AttributeError: 'NoneType' object has no attribute 'log_scalar_dict'
    
    

    Looking at the RLTrainer code, in the self.setup_logging() function it only seems to set a logger for --mode=train and not for val.

    opened by rteehas 3
  • RuntimeError of gradient compuptation

    RuntimeError of gradient compuptation

    Hi, I added a new RL environment and run as readme.md. But I met this issue when self._perform_update(policy_loss, self.policy_opt, self.policy):

    RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [256, 1]], which is output 0 of TBackward, is at version 2; expected version 1 instead. Hint: enable anomaly detection to find the operation that failed to compute its gradient, with torch.autograd.set_detect_anomaly(True).

    Could you offer some help?

    opened by rainbow979 3
  • Unable to download the data

    Unable to download the data

    Hello, I am trying to download the maze data using the command line gdown https://drive.google.com/uc?id=1pXM-EDCwFrfgUjxITBsR48FqW9gMoXYZ

    But when I downloaded about 4GB data, the terminal abruptly stopped the downloading. Maybe because this file is too large and my Internet connection was disconnected. I wonder if there is any way to only download some parts of the maze data so that I can download them little by little.

    Thanks.

    opened by CeHao1 2
  • completed_subtasks = info.pop(

    completed_subtasks = info.pop("computed_tasks error")

    Hello, I have an issue on the SPiRL learning.

    After I finished the skill prior learning on the kitchen environment, I tried to train the SPiRL_CL based on the skill prior network.

    But I got the KeyError when my code attempts pop the key "completed_tasks" from info variable

    image

    I don't understand the code line 33 of _postprocess_info because the returned "info" from step function only contains the following 5 key-value pairs as described in "kitchen_multitask_v0.py"

    image

    and, I could not find any other parts of adding the "completed_tasks" key to the info variable.

    Am I missing something?

    opened by gd-goblin 2
  • regularization in the first stage

    regularization in the first stage

    In Sec 3.2, equation 1. wants to maximize the following evidence lower bound (ELBO): E_q[ log p(a_i|z ) - \beta (log q(z|a_i) - logp(z)) ],

    But in Sec B. the equation t. want to minimize the regulation loss

    • \beta D_KL ( N(m_z, std_z) || N(0 , 1) )

    So the algorithm wants to make the KL divergence between Skill Posterior q(z|a_i) and Fixed Prior N(0, 1) larger or smaller? This question has bothered me for days, if you can reply to me, I will be very grateful!

    opened by han-x 2
  • Not able to replicate results mentioned

    Not able to replicate results mentioned

    Hello @kpertsch and @youngwoon I tried training the skill prior module using the block-stacking dataset in the given configuration. The overloss went from 15 to 11. When I use this pretrained model as a skill prior module for SAC, I am not able to get proper results. I am not sure, but I think the skill prior module did not converge properly on the training dataset. Can you please provide me with pretrained models/events files you got during training. I would be able to interpret which part of the model is not performing well. Also, do you have any other suggestions on replicating the results mentioned in the paper. Thank You

    opened by NiranthS 2
  • Running error

    Running error "gym.error.UnregisteredEnv: No registered env with id: kitchen-mixed-v0"

    Hello,when I am running the code "gym.make('kitchen-mixed-v0')" throw error "gym.error.UnregisteredEnv: No registered env with id: kitchen-mixed-v0", but I am already install d4rl and can import it correctly. How can I solve it? Thank you for replay!

    opened by yuanyaaa 1
  • stacked_imgs are only available up to 2

    stacked_imgs are only available up to 2

    Hi! I'm developing my learning framework based on SPiRL, using my custom dataset. In skill learning phase, when I set "n_input_frames=4", I got the following error message at the _get_seq_enc() of ImageClSPiRLMdl:

    Code: stacked_imgs = torch.cat([inputs.images[:, t:t+inputs.actions.shape[1]] for t in range(self._hp.n_input_frames)], dim=2)

    Error Message: RuntimeError: Sizes of tensors must match except in dimension 2. Got 13 and 12 in dimension 1 (The offending index is 2)

    In this case, the shape of each element is as following 'actions'={Tensor: (128, 13, 7)} 'pad_mask'={Tensor: (128, 14)} 'states'={Tensor: (128, 14, 34)} 'images'={Tensor: (128, 14, 3, 128, 128)} 'observations'={Tensor: (128, 13, 7)}

    It works well if the n_input_frames is less than 3, but occurs error if the value is greater than 2. I think the shape of action should be (128, 11, 7) to run the code line correctly.

    How can I solve this problem?

    opened by gd-goblin 1
  • The performance of the SAC algorithm in the project is significantly worse than the performance of SAC in the stable baseline3.

    The performance of the SAC algorithm in the project is significantly worse than the performance of SAC in the stable baseline3.

    The performance of the SAC algorithm in the project is significantly worse than the performance of SAC in the stable baseline. The training of the slide cabinet subtask in the kitchen environment using the SAC algorithm in this project fails to converge, while the loss function tends to exponentially explode. I have carefully examined the code of the project and the SAC in stable baseline3 and found no reason for this anomaly. https://github.com/clvrai/spirl/blob/master/spirl/rl/agents/ac_agent.py https://github.com/DLR-RM/stable-baselines3/blob/master/stable_baselines3/sac/sac.py

    opened by ynulihao 4
Owner
Cognitive Learning for Vision and Robotics (CLVR) lab @ USC
Learning and Reasoning for Artificial Intelligence, especially focused on perception and action. Led by Professor Joseph J. Lim @ USC
Cognitive Learning for Vision and Robotics (CLVR) lab @ USC
Public implementation of "Learning from Suboptimal Demonstration via Self-Supervised Reward Regression" from CoRL'21

Self-Supervised Reward Regression (SSRR) Codebase for CoRL 2021 paper "Learning from Suboptimal Demonstration via Self-Supervised Reward Regression "

null 19 Dec 12, 2022
Distilling Motion Planner Augmented Policies into Visual Control Policies for Robot Manipulation (CoRL 2021)

Distilling Motion Planner Augmented Policies into Visual Control Policies for Robot Manipulation [Project website] [Paper] This project is a PyTorch i

Cognitive Learning for Vision and Robotics (CLVR) lab @ USC 6 Feb 28, 2022
O2O-Afford: Annotation-Free Large-Scale Object-Object Affordance Learning (CoRL 2021)

O2O-Afford: Annotation-Free Large-Scale Object-Object Affordance Learning Object-object Interaction Affordance Learning. For a given object-object int

Kaichun Mo 26 Nov 4, 2022
UDP++ (ECCVW 2020 Oral), (Winner of COCO 2020 Keypoint Challenge).

UDP-Pose This is the pytorch implementation for UDP++, which won the Fisrt place in COCO Keypoint Challenge at ECCV 2020 Workshop. Top-Down Results on

null 20 Jul 29, 2022
An official implementation of "SFNet: Learning Object-aware Semantic Correspondence" (CVPR 2019, TPAMI 2020) in PyTorch.

PyTorch implementation of SFNet This is the implementation of the paper "SFNet: Learning Object-aware Semantic Correspondence". For more information,

CV Lab @ Yonsei University 87 Dec 30, 2022
Official implementation of "GS-WGAN: A Gradient-Sanitized Approach for Learning Differentially Private Generators" (NeurIPS 2020)

GS-WGAN This repository contains the implementation for GS-WGAN: A Gradient-Sanitized Approach for Learning Differentially Private Generators (NeurIPS

null 46 Nov 9, 2022
Official implementation for Likelihood Regret: An Out-of-Distribution Detection Score For Variational Auto-encoder at NeurIPS 2020

Likelihood-Regret Official implementation of Likelihood Regret: An Out-of-Distribution Detection Score For Variational Auto-encoder at NeurIPS 2020. T

Xavier 33 Oct 12, 2022
Official Pytorch implementation of 'GOCor: Bringing Globally Optimized Correspondence Volumes into Your Neural Network' (NeurIPS 2020)

Official implementation of GOCor This is the official implementation of our paper : GOCor: Bringing Globally Optimized Correspondence Volumes into You

Prune Truong 71 Nov 18, 2022
Official Implementation of Swapping Autoencoder for Deep Image Manipulation (NeurIPS 2020)

Swapping Autoencoder for Deep Image Manipulation Taesung Park, Jun-Yan Zhu, Oliver Wang, Jingwan Lu, Eli Shechtman, Alexei A. Efros, Richard Zhang UC

null 449 Dec 27, 2022
This is the official Pytorch implementation of "Lung Segmentation from Chest X-rays using Variational Data Imputation", Raghavendra Selvan et al. 2020

README This is the official Pytorch implementation of "Lung Segmentation from Chest X-rays using Variational Data Imputation", Raghavendra Selvan et a

Raghav 42 Dec 15, 2022
The official implementation of Equalization Loss v1 & v2 (CVPR 2020, 2021) based on MMDetection.

The Equalization Losses for Long-tailed Object Detection and Instance Segmentation This repo is official implementation CVPR 2021 paper: Equalization

Jingru Tan 129 Dec 16, 2022
Official code for "End-to-End Optimization of Scene Layout" -- including VAE, Diff Render, SPADE for colorization (CVPR 2020 Oral)

End-to-End Optimization of Scene Layout Code release for: End-to-End Optimization of Scene Layout CVPR 2020 (Oral) Project site, Bibtex For help conta

Andrew Luo 41 Dec 9, 2022
The official project of SimSwap (ACM MM 2020)

SimSwap: An Efficient Framework For High Fidelity Face Swapping Proceedings of the 28th ACM International Conference on Multimedia The official reposi

Six_God 2.6k Jan 8, 2023
Official PyTorch code for CVPR 2020 paper "Deep Active Learning for Biased Datasets via Fisher Kernel Self-Supervision"

Deep Active Learning for Biased Datasets via Fisher Kernel Self-Supervision https://arxiv.org/abs/2003.00393 Abstract Active learning (AL) aims to min

Denis 29 Nov 21, 2022
Official respository for "Modeling Defocus-Disparity in Dual-Pixel Sensors", ICCP 2020

Official respository for "Modeling Defocus-Disparity in Dual-Pixel Sensors", ICCP 2020 BibTeX @INPROCEEDINGS{punnappurath2020modeling, author={Abhi

Abhijith Punnappurath 22 Oct 1, 2022
[NeurIPS 2020] Official repository for the project "Listening to Sound of Silence for Speech Denoising"

Listening to Sounds of Silence for Speech Denoising Introduction This is the repository of the "Listening to Sounds of Silence for Speech Denoising" p

Henry Xu 40 Dec 20, 2022
PyTorch implementation of "Conformer: Convolution-augmented Transformer for Speech Recognition" (INTERSPEECH 2020)

PyTorch implementation of Conformer: Convolution-augmented Transformer for Speech Recognition. Transformer models are good at capturing content-based

Soohwan Kim 565 Jan 4, 2023
Unofficial implementation of "TTNet: Real-time temporal and spatial video analysis of table tennis" (CVPR 2020)

TTNet-Pytorch The implementation for the paper "TTNet: Real-time temporal and spatial video analysis of table tennis" An introduction of the project c

Nguyen Mau Dung 438 Dec 29, 2022
The implementation of ICASSP 2020 paper "Pixel-level self-paced learning for super-resolution"

Pixel-level Self-Paced Learning for Super-Resolution This is an official implementaion of the paper Pixel-level Self-Paced Learning for Super-Resoluti

Elon Lin 41 Dec 15, 2022