🔊 Audio and fastai v2

Overview

Tests Docs codecov

Fastaudio

An audio module for fastai v2. We want to help you build audio machine learning applications while minimizing the need for audio domain expertise. Currently under development.

Quick Start

Google Colab Notebook

Zachary Mueller's class

Install

Install using pip:

pip install fastaudio

If you plan on contributing to the library instead, you will need to do a editable install:

# Optional step if using conda
conda create -n fastaudio python=3.7
conda activate fastaudio
# Editable install
git clone https://github.com/fastaudio/fastaudio.git
cd fastaudio
pip install -e .[dev,testing]
pre-commit install

Testing

To run the tests and verify everything is working, run the following command from the fastaudio/ folder (only applicable after doing the editable install steps):

pytest

This will run all of the test suit, reporting if there are any errors and also giving a code coverage report. Adittionally, there are extra checks that pre-commit run automatically every commit to verify the formatting and flake8 violations. If you want to run those manually, the command is pre-commit run

Contributing to the library

We are looking for contributors of all skill levels. If you don't have time to contribute, please at least reach out and give us some feedback on the library.

Make sure that you have activated the environment that you used pre-commit install in so that pre-commit knows where to run the git hooks.

How to contribute

Create issues, write documentation, suggest/add features, submit PRs. We are open to anything. A good first step would be posting in the v2 audio thread introducing yourself.

Note

This project has been set up using PyScaffold 3.2.3. For details and usage information on PyScaffold see https://pyscaffold.org/.

Citation

If you used this library in any research, please cite us.

@misc{coultas_blum_scart_bracco_2020,
 title={Fastaudio},
 url={https://github.com/fastaudio/fastaudio},
 journal={GitHub},
 author={Coultas Blum, Harry A and Scart, Lucas G. and Bracco, Robert},
 year={2020},
 month={Aug}
}
Comments
  • Porting Transforms to GPU

    Porting Transforms to GPU

    Porting the transforms to GPU seems in demand. I've been working on some of these and have some proof-of-concept implementations I'd like to upstream - opening a ticket so we have a central place to discuss it.

    enhancement 
    opened by jcaw 20
  • GPU-Compatible Batch Versions of Existing Transforms

    GPU-Compatible Batch Versions of Existing Transforms

    Introduction

    This PR adds GPU implementations for the following transforms:

    • Signal: AddNoise, ChangeVolume, SignalCutout, SignalLoss
    • Spectrogram: - TfmResize, Delta, MaskFreq, MaskTime

    The GPU implementations are currently added alongside the originals, e.g. Delta vs. DeltaGPU. I propose replacing the originals outright where possible, but I've done a more thorough analysis with benchmarking below.

    Demos

    I set up a Colab notebook with demos of the new transforms here. (It might make sense to turn this into documentation for all transforms at some point.)

    Automatic Batching

    I've added a wrapper, @auto-batch, that can be added to the encodes method of any batch transform to make it compatible with items too. You just need to specify the number of dimensions in a single item, and when item tensors are received, they will have a dummy batch dimension added for the transform.

    As a result, all of these transforms work on both batches and items, with no user intervention.

    (The overhead of the wrapper is measured below.)

    Changes in Behaviour

    Some methods have had their behaviour expanded/altered in the port.

    AudioTensor

    1. AddNoise - the GPU version exposes a minimum value for the noise, and allows the transform to be applied to random items. I have seen certain nets degrade when noise is added to all samples, seemingly because they learn to always expect background noise and don't know how to deal with clean samples. Adding noise to a subset of items fixes this, so it seems a sensible addition.

      Noise values are also changed so the max & min are relative to one standard deviation of the original tensor, not the range -1 to 1, so the noise level is consistent relative to the average of the signal. This has its own drawbacks (e.g. samples that are mostly silence get much less noise), so I'm not sure which method is better. Let me know which you prefer, I can change it easily.

      (Noise can also now be added directly to spectrograms too.)

    2. ChangeVolume - no change.

    3. SignalCutout - a minimum cutout percentage is now exposed.

    4. SignalLoss - no change.

    AudioSpectrogram

    1. TfmResize - no change.
    2. Delta - the GPU version now uses torchaudio to compute deltas, and exposes the padding mode.
    3. MaskFreq & MaskTime - the GPU version is modified to more closely match the original SpecAugment paper, with a couple of other additions. A. Masks are now assigned a random width (within a specified range). B. The replacement value is now the mean of the masked area, to avoid changing the spectrogram's overall mean (although the standard deviation will still be affected). This can be overridden by specifying a mask_val. C. You can no longer specify where you want the mask(s) to start. It's always random. D. One objective of SpecAugment masking seems to be encouraging the network to learn how to look at parts of the spectrogram it would otherwise ignore. The same mask will now span across all channels, to ensure the net does not avoid this by inferring the missing information from same region in another channel (which is likely to be quite similar).

    Benchmarks

    I benchmarked the new transforms on two boxes:

    1. Local - Nvidia GTX 970, i5-4590 (4 cores, 3.30GHz)
    2. Colab - Tesla T4, Intel Xeon (2 cores, 2.20GHz)

    Results are presented for both. Benchmarks are repeated 1000 times on the Colab box and 100 times locally, except for the batch_size=64 tests, which are repeated 250 times on the Colab box and 25 times locally. These benchmarks are on the plain Python versions of the transforms, I haven't compiled them to torchscript. Let me know how you'd like me to interact with torchscript and whether you'd like me to benchmark that too.

    Some results for the replacement delta transforms are missing on GPU due to an upstream bug affecting large tensors. It gets tripped due to the way torchaudio packs spectrograms for the delta method. This bug might not fire on newer cards (it may to be related to the maximum CUDA block size). I can pull DeltaGPU out into a separate PR if you'd like to wait until the upstream issues are fixed.

    Old vs. New Implementations

    I compared the execution speed on CPU between the old and new methods to establish which of the new methods add unacceptable overhead and which should replace the old implementations. Benchmarking script here.

    Results are split between AudioTensor and AudioSpectrogram objects. These operations are performed on single items with no batch dimension.

    AudioTensor

    Colab (Xeon, x2 @ 2.20 GHz)

    device_name_plot

    Local (i5-4590, x4 @ 3.30 GHz)

    device_name_plot

    Conclusion

    Based on these results I propose:

    1. AddNoise - replace. The GPU-compatible version seems to have similar overhead, but does more.
    2. ChangeVolume - replace. This method is so fast to begin with that the loss of efficiency is not likely to be significant relative to the entire pipeline. Auto-batching may also be responsible for a chunk of this.
    3. SignalCutout - undecided. The GPU-compatible version is slower, but also allows a minimum cut percentage to be specified. If the original is kept, I think it should also add that.
    4. SignalLoss - replace. The additional overhead of the GPU version appears minimal. I propose replacing for cleanliness.

    AudioSpectrogram

    Colab (Xeon, 2 Cores @ 2.20 GHz)

    device_name_plot

    Local (i5-4590, 4 Cores @ 3.30 GHz)

    device_name_plot

    Conclusion

    1. TfmResize - replace. The new implementation is comparable.
    2. Delta - replace. The new implementation is much faster.
    3. MaskTime - replace. The new implementation is comparable but does a lot more.
    4. MaskFreq - replace. The new implementation is much slower but does a lot more. Interestingly, this shows the overhead of the conversion operations in the original MaskTime implementation - they dwarf the underlying transform.

    GPU Performance

    I've also benchmarked the performance on GPU, to give an idea of how the new implementations scale and the relative overhead of the different operations.

    I'm suspicious of the CPU vs. GPU results on the GTX 970 box. I think the GPU should be performing dramatically better (those that I've used in a real training loop have negligible overhead compared to their CPU counterparts), so there may be a problem in the benchmarking script. I believe the 970 also has strange memory characteristics that mean the upper portion of its VRAM is slow compared to the rest - I don't know if that would be affecting things.

    GPU Only, Various Batch Sizes

    This is just to illustrate how each transform scales. Some transforms at larger batch sizes are missing due to CUDA memory errors.

    Tesla T4

    batch_size_plot batch_size_plot

    GTX 970

    batch_size_plot batch_size_plot

    GPU vs. CPU, Batch Size = 32

    Tesla T4

    device_name_plot device_name_plot

    GTX 970

    device_name_plot device_name_plot

    GPU vs. CPU, Batch Size = 64

    Tesla T4

    device_name_plot device_name_plot

    GTX 970

    device_name_plot device_name_plot

    Automatic Batching

    I've measured two dummy transforms that do nothing - one with the @auto_batch wrapper and one without. The wrapper is very cheap, adding minimal overhead.

    Colab (Tesla, Xeon)

    device_name_plot

    Local (970, i5-4590)

    device_name_plot

    Tests

    Tests are not final. I've currently just switched them over to the GPU versions of the transforms. Once a final set of transforms has been decided, I can concretize the tests.

    Docstrings

    Docstrings aren't final. I'll write them once the code is finalised. Let me know what format you'd prefer.

    FastAI API Integration

    I've currently set the transforms up as subclasses of the basic Transform class, but this might not be ideal. I'm not familiar enough with the subclasses of Transform to know if this is correct. Perhaps DisplayedTransform would be preferable?

    Conclusion

    Let me know whether these implementations are acceptable and which of the original transforms you would like to keep/discard. I think it makes sense to merge these here initially, then I can look at upstreaming relevant transforms (E.g. the new SpecAugment masking implementation) into torchaudio or torch-audiomentations.

    enhancement released 
    opened by jcaw 11
  • AudioSpectrogram failed to be plotted under ClassificationInterpretation

    AudioSpectrogram failed to be plotted under ClassificationInterpretation

    I have made a public kaggle kernel for reproducing the bug as your reference (look at session 3. Failed to Show AudioSpectrogram for the main point): https://www.kaggle.com/alexlwh/failed-to-show-audiospec-tensor

    Essentially, I tried to show the predictions v.s. ground truth using ClassificationInterpretation as follows:

    interp = ClassificationInterpretation.from_learner(learner)
    
    @patch
    def __getitem__(self: Interpretation, idxs):
        if not is_listy(idxs):
            idxs = [idxs]
        attrs = 'inputs,preds,targs,decoded,losses'
        res = L([getattr(self, attr)[idxs] for attr in attrs.split(',')])
        return res
    
    @patch
    @delegates(TfmdDL.show_results)
    def show_at(self: Interpretation, idxs, **kwargs):
        inp, _, targ,dec, _ = self[idxs]
        self.dl.show_results((inp, dec), targ, **kwargs)
    
    interp.show_at(0)
    

    And then I got the following error:

    /opt/conda/lib/python3.7/site-packages/fastaudio/core/spectrogram.py in show(self, ctx, ax, title, **kwargs)
         75     def show(self, ctx=None, ax=None, title="", **kwargs):
         76         "Show spectrogram using librosa"
    ---> 77         return show_spectrogram(self, ctx=ctx, ax=ax, title=title, **kwargs)
         78 
         79 
    
    /opt/conda/lib/python3.7/site-packages/fastaudio/core/spectrogram.py in show_spectrogram(sg, title, ax, ctx, **kwargs)
         87         ia = ax.inset_axes((i / sg.nchannels, 0.2, 1 / sg.nchannels, 0.7))
         88         z = specshow(
    ---> 89             channel.cpu().numpy(), ax=ia, **sg._all_show_args(show_y=i == 0), **kwargs
         90         )
         91         ia.set_title(f"Channel {i}")
    
    /opt/conda/lib/python3.7/site-packages/librosa/display.py in specshow(data, x_coords, y_coords, x_axis, y_axis, sr, hop_length, fmin, fmax, tuning, bins_per_octave, key, Sa, mela, thaat, ax, **kwargs)
        843     # Get the x and y coordinates
        844     y_coords = __mesh_coords(y_axis, y_coords, data.shape[0], **all_params)
    --> 845     x_coords = __mesh_coords(x_axis, x_coords, data.shape[1], **all_params)
        846 
        847     axes = __check_axes(ax)
    
    /opt/conda/lib/python3.7/site-packages/librosa/display.py in __mesh_coords(ax_type, coords, n, **kwargs)
        915     if ax_type not in coord_map:
        916         raise ParameterError("Unknown axis type: {}".format(ax_type))
    --> 917     return coord_map[ax_type](n, **kwargs)
        918 
        919 
    
    /opt/conda/lib/python3.7/site-packages/librosa/display.py in __coord_time(n, sr, hop_length, **_kwargs)
       1194 def __coord_time(n, sr=22050, hop_length=512, **_kwargs):
       1195     """Get time coordinates from frames"""
    -> 1196     return core.frames_to_time(np.arange(n + 1), sr=sr, hop_length=hop_length)
    
    /opt/conda/lib/python3.7/site-packages/librosa/core/convert.py in frames_to_time(frames, sr, hop_length, n_fft)
        186     samples = frames_to_samples(frames, hop_length=hop_length, n_fft=n_fft)
        187 
    --> 188     return samples_to_time(samples, sr=sr)
        189 
        190 
    
    /opt/conda/lib/python3.7/site-packages/librosa/core/convert.py in samples_to_time(samples, sr)
        304     """
        305 
    --> 306     return np.asanyarray(samples) / float(sr)
        307 
        308 
    
    TypeError: float() argument must be a string or a number, not 'NoneType'
    

    I suspect it is because at some point the AudioSpectrogram.sr failed to be propagated to ClassificationInterpretation, rendering interp.inputs.sr = None. (Not sure exactly at which point the issue happens yet):

    interp.inputs._all_show_args()
    >>
    {'x_coords': None,
     'y_coords': None,
     'x_axis': 'time',
     'y_axis': 'mel',
     'sr': None,
     'hop_length': 1024,
     'fmin': None,
     'fmax': None,
     'tuning': 0.0,
     'bins_per_octave': 12,
     'key': 'C:maj',
     'Sa': None,
     'mela': None,
     'thaat': None,
     'cmap': 'viridis'}
    
    bug released 
    opened by riven314 9
  • Test Coverage Improvement

    Test Coverage Improvement

    Various improvements to the tests

    Closes #18

    • Removal of the need to download data for most of the tests. We are now using a util method to generate sin waves.
    released 
    opened by mogwai 9
  • Cannot install fastai with fastaudio

    Cannot install fastai with fastaudio

    Hi. fastaudio with every update requires a specific version of fastai. This causes a problem each time if I install like this:

    pip install fastai==2.1.18 git+https://github.com/fastaudio/fastaudio.git
    

    Because currently fastaudio works with fastai 2.1.5

    Is there a recommended way to install it? (without a separate installation process)

    question 
    opened by turgut090 8
  • Limit show batch figure count

    Limit show batch figure count

    If the batch_size param is rather high (in my case it was 512), then show_batch() plots almost unusable plots.

    The suggestion would be to plot first n plots with an ability to override that.

    enhancement 
    opened by dvisockas 6
  • chore: Formatting notebooks

    chore: Formatting notebooks

    This pull request has the objective to clean small formatting problems on the tutorial notebooks so they render better on the docs page, and also remove some references to things from fastai v1 that don't make sense anymore, like using the full 10 speakers dataset when we only need one audio file.

    The only code change was updating the link of 10 speakers sample. As both it and ESC-50 downloaded a file called master.zip, there could be problems where both files got mixed in the fastai cache and you end up with the wrong dataset.

    For the notebook changes:

    ESC-50: * Removed empty cells * Save output of show_batch and the training so users know what to expect while reading the tutorial * Fix headings so Table of Contents is rendered correctly

    Training tutorial: * Removed, it's exactly the same file as ESC50

    Introduction to fastaudio: * Change data to 10 speakers sample from full 10 speakers

    Introduction to audio: * Removed Table of contents, as the docs page creates one * Fix headings * Remove reference to notebooks that don't exist * Change data to 10 speakers sample from full 10 speakers

    released 
    opened by scart97 5
  • Pypi release

    Pypi release

    • Fixed problem while testing notebooks, where the latest version from master would be installed during the testing potentially breaking the tests.
    • Reverted back to the package inside the src/ folder
    • Added a new action to publish on pypi every new release created. This was tested on a fork to work correctly: https://github.com/scart97/fastaudio/releases/tag/v1.0.0 https://test.pypi.org/project/fastaudio/1.0.0/
    released 
    opened by scart97 4
  • chore: Consolidate docs

    chore: Consolidate docs

    Changes:

    • Repository readme.md and docs index page now point to the same file, so they are equal
    • The learning resources present on the wiki have been moved inside the docs instead
    • Small changes to the wording in the README and fix broken colab link
    released 
    opened by scart97 4
  • AttributeError: 'Axes' object has no attribute 'get_array' in Training_tutorial.ipynb

    AttributeError: 'Axes' object has no attribute 'get_array' in Training_tutorial.ipynb

    I'm getting AttributeError: 'Axes' object has no attribute 'get_array' when executing dbunch.show_batch(figsize=(10, 5)) in the Training_tutorial.ipynb file.

    attribute_error

    bug 
    opened by TannerGilbert 4
  • Change AddNoise to RandTransform

    Change AddNoise to RandTransform

    Address to https://github.com/fastaudio/fastaudio/issues/101 Additionally, I have to add .pre-commit-config.yaml to be able to commit. Not sure if its correct

    released 
    opened by riven314 3
  • pip install doesn't install the correct versions of fastai

    pip install doesn't install the correct versions of fastai

    I see that fastai == 2.3.1 but when I run pip install fastaudio, fastai version 2.1.9 and fastaudio 0.1.4 gets installed and I don't understand why. It also happens when I have it in a requirements document and try to create a docker container.

    This leads to an error when I do from **from fastai.vision.all import ***

    When I try to force pip install fastaudio==1.0.2 I get

    #16 1.136 ERROR: Could not find a version that satisfies the requirement torchaudio<0.9,>=0.7 (from fastaudio) (from versions: 0.10.0, 0.10.1, 0.10.2, 0.11.0, 0.12.0, 0.12.1, 0.13.0) #16 1.136 ERROR: No matching distribution found for torchaudio<0.9,>=0.7

    Any ideas to help fix this would be appreciated :)

    opened by onedeeper 0
  • Installing fastaudio breaks fastai/ pytorch

    Installing fastaudio breaks fastai/ pytorch

    Fastai and fast core is currently at 2.5.3 and 1.3.27. Installing fastaudio breaks fastai, i guess that has to do with pytorch beeing downgraded.

    Is there any reasons for the hard version requirements?

    install_requires = fastai==2.3.1 torchaudio>=0.7,<0.9 librosa==0.8 colorednoise>=1.1 IPython #Temporary remove the bound on IPython fastcore==1.3.20

    opened by voibit 2
  • Need direction upgrade Fastaudio for Raspberry Pi 4 support (ARM64)

    Need direction upgrade Fastaudio for Raspberry Pi 4 support (ARM64)

    Hello,

    On aarch64 I got this error during inference: .... RuntimeError: fft: ATen not compiled with MKL support .... The issue is addressed in the Torch 1.10.0 release: https://github.com/pytorch/pytorch/releases/tag/v1.10.0

    Could someone,please, give direction on how to upgrade Fastaudio to support the framework (Torchaudion 0.10.0, ...) coming with Torch 1.10.0

    Another question: is there any potential issue in using the latest FastCore/FastAi version instead of 1.3.20/2.3.1?

    Thanks,

    Victor

    opened by WorkingClass 0
  • Model gets stuck during training

    Model gets stuck during training

    I am trying to run a FastAudio model with some downloaded song birds audio files found on the internet. When I trained it with the 10 most common species species, it worked fine. But when I downloaded more files, something happens and makes the model stop without crashing. It happens then I use de lr_find() method and fine_tune. It just gets stuck. I checked (with pydub and librosa) if I had any corrupted files, but couldn't find any. Does anyone know what I can do to overcome this? Maybe a different check for corrupted files? Thank you in advance

    opened by ffreller 0
  • Windowing operation on spectrograms

    Windowing operation on spectrograms

    I am working on cough detection, and using COUGHVID dataset, where most of the audio files are of 9-sec length, but the range is from 1 sec to 9 sec Also the cough score is from 0.0 to 1.0, and no particular threshold can be used, as there are cases where there is no cough in a sample with a score of around 0.3, but the mild cough is there with score 0.2.

    Now I want to keep my spectrogram window around 2-3 sec, how to use windowing in fastaudio? As once I will be using 2-3 sec clips then it is going to pollute labels, as may be in only one clip cough would be there, so kindly suggest to me what you think of it. And last but not the least, how to use label-smoothing in fastaudio? Thanks...

    opened by m-ali-awan 0
  • Frequency max in audio_spec.show() not aligned with AudioSpectrogram's metadata?

    Frequency max in audio_spec.show() not aligned with AudioSpectrogram's metadata?

    I noticed the frequency range (y-axis) of the displayed plot for audio_spec.show() is fixed regardless of the sampling rate/ f_max from audio_spec or SpectrogramTransform (i.e. its always capped at ~8192 Hz in y-axis).
    I think the frequency range should be dependent on these 2 parameters.

    Below kernel illustrates the issue and attaches my proposed solution, see if it makes sense. If so, I can raise a PR for that (my proposed solution is written as a patching, but in my PR, I will change the function in place): https://www.kaggle.com/alexlwh/rfcx-tmp?scriptVersionId=64349824

    bug 
    opened by riven314 0
Releases(v1.0.2)
The codebase for our paper "Generative Occupancy Fields for 3D Surface-Aware Image Synthesis" (NeurIPS 2021)

Generative Occupancy Fields for 3D Surface-Aware Image Synthesis (NeurIPS 2021) Project Page | Paper Xudong Xu, Xingang Pan, Dahua Lin and Bo Dai GOF

xuxudong 97 Nov 10, 2022
TensorFlow-based implementation of "ICNet for Real-Time Semantic Segmentation on High-Resolution Images".

ICNet_tensorflow This repo provides a TensorFlow-based implementation of paper "ICNet for Real-Time Semantic Segmentation on High-Resolution Images,"

HsuanKung Yang 406 Nov 27, 2022
PantheonRL is a package for training and testing multi-agent reinforcement learning environments.

PantheonRL is a package for training and testing multi-agent reinforcement learning environments. PantheonRL supports cross-play, fine-tuning, ad-hoc coordination, and more.

Stanford Intelligent and Interactive Autonomous Systems Group 57 Dec 28, 2022
3ds-Ghidra-Scripts - Ghidra scripts to help with 3ds reverse engineering

3ds Ghidra Scripts These are ghidra scripts to help with 3ds reverse engineering

Zak 7 May 23, 2022
PIGLeT: Language Grounding Through Neuro-Symbolic Interaction in a 3D World [ACL 2021]

piglet PIGLeT: Language Grounding Through Neuro-Symbolic Interaction in a 3D World [ACL 2021] This repo contains code and data for PIGLeT. If you like

Rowan Zellers 51 Oct 08, 2022
ReferFormer - Official Implementation of ReferFormer

The official implementation of the paper: Language as Queries for Referring Video Object Segmentation Language as Queries for Referring Video Object S

Jonas Wu 232 Dec 29, 2022
An end-to-end machine learning library to directly optimize AUC loss

LibAUC An end-to-end machine learning library for AUC optimization. Why LibAUC? Deep AUC Maximization (DAM) is a paradigm for learning a deep neural n

Andrew 75 Dec 12, 2022
[ICCV 2021 (oral)] Planar Surface Reconstruction from Sparse Views

Planar Surface Reconstruction From Sparse Views Linyi Jin, Shengyi Qian, Andrew Owens, David F. Fouhey University of Michigan ICCV 2021 (Oral) This re

Linyi Jin 89 Jan 05, 2023
an implementation of Revisiting Adaptive Convolutions for Video Frame Interpolation using PyTorch

revisiting-sepconv This is a reference implementation of Revisiting Adaptive Convolutions for Video Frame Interpolation [1] using PyTorch. Given two f

Simon Niklaus 59 Dec 22, 2022
EMNLP'2021: Simple Entity-centric Questions Challenge Dense Retrievers

EntityQuestions This repository contains the EntityQuestions dataset as well as code to evaluate retrieval results from the the paper Simple Entity-ce

Princeton Natural Language Processing 119 Sep 28, 2022
Split Variational AutoEncoder

Split-VAE Split Variational AutoEncoder Introduction This repository contains and implemementation of a Split Variational AutoEncoder (SVAE). In a SVA

Andrea Asperti 2 Sep 02, 2022
PyTorch implementation of ECCV 2020 paper "Foley Music: Learning to Generate Music from Videos "

Foley Music: Learning to Generate Music from Videos This repo holds the code for the framework presented on ECCV 2020. Foley Music: Learning to Genera

Chuang Gan 30 Nov 03, 2022
[NeurIPS 2021] A weak-shot object detection approach by transferring semantic similarity and mask prior.

[NeurIPS 2021] A weak-shot object detection approach by transferring semantic similarity and mask prior.

BCMI 49 Jul 27, 2022
Source code of our BMVC 2021 paper: AniFormer: Data-driven 3D Animation with Transformer

AniFormer This is the PyTorch implementation of our BMVC 2021 paper AniFormer: Data-driven 3D Animation with Transformer. Haoyu Chen, Hao Tang, Nicu S

24 Nov 02, 2022
Theory-inspired Parameter Control Benchmarks for Dynamic Algorithm Configuration

This repo is for the paper: Theory-inspired Parameter Control Benchmarks for Dynamic Algorithm Configuration The DAC environment is based on the Dynam

Carola Doerr 1 Aug 19, 2022
Code for our ICASSP 2021 paper: SA-Net: Shuffle Attention for Deep Convolutional Neural Networks

SA-Net: Shuffle Attention for Deep Convolutional Neural Networks (paper) By Qing-Long Zhang and Yu-Bin Yang [State Key Laboratory for Novel Software T

Qing-Long Zhang 199 Jan 08, 2023
PPLNN is a Primitive Library for Neural Network is a high-performance deep-learning inference engine for efficient AI inferencing

PPLNN is a Primitive Library for Neural Network is a high-performance deep-learning inference engine for efficient AI inferencing

943 Jan 07, 2023
Multi-task Learning of Order-Consistent Causal Graphs (NeuRIPs 2021)

Multi-task Learning of Order-Consistent Causal Graphs (NeuRIPs 2021) Authors: Xinshi Chen, Haoran Sun, Caleb Ellington, Eric Xing, Le Song Link to pap

Xinshi Chen 2 Dec 20, 2021
[CVPRW 21] "BNN - BN = ? Training Binary Neural Networks without Batch Normalization", Tianlong Chen, Zhenyu Zhang, Xu Ouyang, Zechun Liu, Zhiqiang Shen, Zhangyang Wang

BNN - BN = ? Training Binary Neural Networks without Batch Normalization Codes for this paper BNN - BN = ? Training Binary Neural Networks without Bat

VITA 40 Dec 30, 2022
Companion code for the paper "Meta-Learning the Search Distribution of Black-Box Random Search Based Adversarial Attacks" by Yatsura et al.

META-RS This is the companion code for the paper "Meta-Learning the Search Distribution of Black-Box Random Search Based Adversarial Attacks" by Yatsu

Bosch Research 7 Dec 09, 2022