All Projects → tk-rusch → unicornn

tk-rusch / unicornn

Licence: other
Official code for UnICORNN (ICML 2021)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to unicornn

NeuroAI
NeuroAI-UW seminar, a regular weekly seminar for the UW community, organized by NeuroAI Shlizerman Lab.
Stars: ✭ 36 (+71.43%)
Mutual labels:  recurrent-neural-networks, icml
dts
A Keras library for multi-step time-series forecasting.
Stars: ✭ 130 (+519.05%)
Mutual labels:  time-series, recurrent-neural-networks
imbalanced-regression
[ICML 2021, Long Talk] Delving into Deep Imbalanced Regression
Stars: ✭ 425 (+1923.81%)
Mutual labels:  icml, icml-2021
Time Series Machine Learning
Machine learning models for time series analysis
Stars: ✭ 261 (+1142.86%)
Mutual labels:  time-series, recurrent-neural-networks
Deep Learning Time Series
List of papers, code and experiments using deep learning for time series forecasting
Stars: ✭ 796 (+3690.48%)
Mutual labels:  time-series, recurrent-neural-networks
Lstm anomaly thesis
Anomaly detection for temporal data using LSTMs
Stars: ✭ 178 (+747.62%)
Mutual labels:  time-series, recurrent-neural-networks
LSTM-Time-Series-Analysis
Using LSTM network for time series forecasting
Stars: ✭ 41 (+95.24%)
Mutual labels:  time-series, recurrent-neural-networks
Tensorflow Lstm Regression
Sequence prediction using recurrent neural networks(LSTM) with TensorFlow
Stars: ✭ 433 (+1961.9%)
Mutual labels:  time-series, recurrent-neural-networks
Rwa
Machine Learning on Sequential Data Using a Recurrent Weighted Average
Stars: ✭ 593 (+2723.81%)
Mutual labels:  time-series, recurrent-neural-networks
Tensorflow Cnn Time Series
Feeding images of time series to Conv Nets! (Tensorflow + Keras)
Stars: ✭ 49 (+133.33%)
Mutual labels:  time-series, recurrent-neural-networks
AC-VRNN
PyTorch code for CVIU paper "AC-VRNN: Attentive Conditional-VRNN for Multi-Future Trajectory Prediction"
Stars: ✭ 21 (+0%)
Mutual labels:  time-series, recurrent-neural-networks
timemachines
Predict time-series with one line of code.
Stars: ✭ 342 (+1528.57%)
Mutual labels:  time-series
rnn benchmarks
RNN benchmarks of pytorch, tensorflow and theano
Stars: ✭ 85 (+304.76%)
Mutual labels:  recurrent-neural-networks
IMDb-Scout-Mod
Auto search for movie/series on torrent, usenet, ddl, subtitles, streaming, predb and other sites. Adds links to IMDb pages from hundreds various sites. Adds movies/series to Radarr/Sonarr. Adds external ratings from Metacritic, Rotten Tomatoes, Letterboxd, Douban, Allocine. Media Server indicators for Plex, Jellyfin, Emby. Dark theme/style for …
Stars: ✭ 177 (+742.86%)
Mutual labels:  imdb
openPDC
Open Source Phasor Data Concentrator
Stars: ✭ 109 (+419.05%)
Mutual labels:  time-series
roboinstruct-1
A robot learning from demonstration framework that trains a recurrent neural network for autonomous task execution
Stars: ✭ 71 (+238.1%)
Mutual labels:  recurrent-neural-networks
NeuralPull
Implementation of ICML'2021:Neural-Pull: Learning Signed Distance Functions from Point Clouds by Learning to Pull Space onto Surfaces
Stars: ✭ 149 (+609.52%)
Mutual labels:  icml
WikiChron
Data visualization tool for wikis evolution
Stars: ✭ 19 (-9.52%)
Mutual labels:  time-series
GTAV-Self-driving-car
Self driving car in GTAV with Deep Learning
Stars: ✭ 15 (-28.57%)
Mutual labels:  recurrent-neural-networks
deep-blueberry
If you've always wanted to learn about deep-learning but don't know where to start, then you might have stumbled upon the right place!
Stars: ✭ 17 (-19.05%)
Mutual labels:  recurrent-neural-networks

UnICORNN
(Undamped Independent Controlled Oscillatory RNN)
[ICML 2021]

This repository contains the implementation to reproduce the numerical experiments of the ICML 2021 paper UnICORNN: A recurrent model for learning very long time dependencies

Requirements

This code runs on GPUs only, as the recurrent part of UnICORNN is implemented directly in CUDA. The CUDA extension is compiled using pynvrtc. Make sure all of the packages below are installed.

python 3.7.4
cupy 7.6.0
pynvrtc 9.2
pytorch 1.5.1+cu101 
torchvision 0.6.1+cu101
torchtext 0.6.0
numpy 1.17.3
spacy 2.3.2

Comment: If you are using cupy 9.0.0+ you can compile the CUDA extension (i.e. UnICORNN_CODE in network.py) directly with cupy.RawModule, which makes the use of pynvrtc obsolet, by simply writing mod = cupy.RawModule(code=UnICORNN_CODE, options=('--std=c++11',), name_expressions=('unicornn_fwd', 'unicornn_bwd')) and deleting the pynvrtc parts in the class UnICORNN_compile().

Speed

The recurrent part of UnICORNN is directly implemented in pure CUDA (as a PyTorch extension to the remaining standard PyTorch code), where each dimension of the underlying dynamical system is computed on an independent CUDA thread. This leads to an amazing speed-up over using PyTorch on GPUs directly (depending on the data set around 30-50 times faster). Below is a speed comparison of our UnICORNN implementation to the fastest RNN implementations you can find (the set-up of this benchmark can be found in the main paper):

Datasets

This repository contains the codes to reproduce the results of the following experiments for the proposed UnICORNN:

  • Permuted Sequential MNIST
  • Noise-padded CIFAR10
  • EigenWorms
  • Healthcare AI: Respiratory rate (RR)
  • Healthcare AI: Heart rate (HR)
  • IMDB

Results

The results of the UnICORNN for each of the experiments are:

Experiment Result
psMNIST 98.4% test accuracy
Noise-padded CIFAR10 62.4% test accuarcy
Eigenworms 94.9% test accuracy
Healthcare AI: RR 1.00 L2 loss
Healthcare AI: HR 1.31 L2 loss
IMDB 88.4% test accuracy

Citation

If you found this work useful, please consider citing

@inproceedings{pmlr-v139-rusch21a,
  title = 	 {UnICORNN: A recurrent model for learning very long time dependencies},
  author =       {Rusch, T. Konstantin and Mishra, Siddhartha},
  booktitle = 	 {Proceedings of the 38th International Conference on Machine Learning},
  pages = 	 {9168--9178},
  year = 	 {2021},
  volume = 	 {139},
  series = 	 {Proceedings of Machine Learning Research},
  publisher =    {PMLR},
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].