A GPU-optional modular synthesizer in pytorch, 16200x faster than realtime, for audio ML researchers.

Overview

torchsynth

The fastest synth in the universe.

Introduction

torchsynth is based upon traditional modular synthesis written in pytorch. It is GPU-optional and differentiable.

Most synthesizers are fast in terms of latency. torchsynth is fast in terms of throughput. It synthesizes audio 16200x faster than realtime (714MHz) on a single GPU. This is of particular interest to audio ML researchers seeking large training corpora.

Additionally, all synthesized audio is returned with the underlying latent parameters used for generating the corresponding audio. This is useful for multi-modal training regimes.

Installation

pip3 install torchsynth

Note that torchsynth requires PyTorch version 1.8 or greater.

Listen

If you'd like to hear torchsynth, check out synth1K1, a dataset of 1024 4-second sounds rendered from the Voice synthesizer, or listen on SoundCloud.

Citation

If you use this work in your research, please cite:

@inproceedings{turian2021torchsynth,
	title        = {One Billion Audio Sounds from {GPU}-enabled Modular Synthesis},
	author       = {Joseph Turian and Jordie Shier and George Tzanetakis and Kirk McNally and Max Henry},
	year         = 2021,
	month        = Sep,
	booktitle    = {Proceedings of the 23rd International Conference on Digital Audio Effects (DAFx2020)},
	location     = {Vienna, Austria}
}
Comments
  • Device modifications

    Device modifications

    Some updates to make sure things are on the correct device.

    Things I learned while doing this -- having 0d tensors on the GPU does not necessarily lead to a speed up. I think creating a scalar tensor on the GPU is slower than just using a native Number type for most operations and comparisons. Especially if those tensors are different dtypes. Having parameter ranges on the GPU did not improve performance and actually resulted in worse performance (~ 15ms on batch size of 64) . Same with have the buffer size and batch size on the GPU. Having sample rate as a float did help a little bit though. Some of the assertions are slow. Especially the one I marked in the Parameters.

    opened by jorshi 8
  • Updating torch.range to torch.arange

    Updating torch.range to torch.arange

    torch.range is now deprecated and should be replaced with torch.arange, which is consistent with pythons built-in range. torch.range also was producing errors with high-valued ranges, see #377

    Merge #380 into this first.

    opened by jorshi 7
  • fixed buffer_size for renders

    fixed buffer_size for renders

    Introducing buffer_size, which is also a global default BUFFER_SIZE.

    Now SynthModule and TorchSynthModule have this property, and a method to_buffer_size(). I've placed this at the return for every foward/call:

    def forward # or npyforward...
      # ...
      out_ = # previous output
      return self.to_buffer_size(out_)
    

    There might be a cleaner way of doing this, like making a "pre-forward" method, and then having "forward" always be: return self.to_buffer_size(self.pre_forward) or some such thing, but that seems confusing and over-engineered.

    I fixed up all of module.py, and adapted all of torchmodule.py that currently exists.

    Lmk.

    opened by maxsolomonhenry 7
  • Torch ADSR + SineVCO

    Torch ADSR + SineVCO

    This PR is diff'ed against #37 for better understanding.

    In this PR, I am converting ADSR and SineVCO to torch. I make sure that torch and numpy modules give the same values on forward. Gradients are computed in example.py but not in unit tests. Why are we getting nan gradient for alpha?

    There's a lot to hate in this port.

    ~~In general, before we address the nitty-gritty (below), I think the biggest issue to consider is that I don't know if standard ADSR will be differentiable on the adsr parameters, since it involves a lot of discontinuities and padding. I think we have two options~~ ~~1) don't make anything differentiable and just focus on rendering speed. this is quite lame, of course~~ ~~2) work on the subproblem of just creating a differentiable ADSR. ignore our complicated abstractions for now, and just focus on differentiable ADSR, maybe to minimize a simple l2 distance. maybe we have to use splines?~~

    Update: It turns out I can differentiate through ADSR parameters? Except alpha which is nan. Why? Check out example.py

    Here's some TODO:

    • examples.py should have a torch section doing the exact thing as above, but with the torch versions.
    • Internally, we want to be storing all nn.Parameter in the 0/1 range, not the human readable range. Since that is what will be used for backprop.
    • The modparameter abstraction needs to be cleaned up, since each nn.Parameter stores its own value. I think the cleanest thing is a TorchModParameter which inherits from nn.Parameter but adds some helper methods around it.
    • torch.linspace doesn't have an endpoint param.
    • gradients should be a unit test
    opened by turian 7
  • Randomize modparameter

    Randomize modparameter

    This allows you to create randomized parameters for the synth. I'd like this for unit-testing numpy vs torch.

    Depends upon #33

    What's weird is that the note_on_duration is sometimes disregarded and you get like 16 second samples. Is this because of the one-hit thing @maxsolomonhenry ? That seems like a problem to me. You should be able to hillclimb the synth by setting random params to try to get a similar audio of the same duration :\

    opened by turian 6
  • added convenience import

    added convenience import

    You can take this or leave it. I've been exploring a bit the python package structure.

    in essence, this allows for the example.py import:

    from ddspdrum.module import ADSR # etc...

    to become:

    from ddrpdrum import ADSR # etc...

    opened by maxsolomonhenry 6
  • SynthConfig as non-Tensors

    SynthConfig as non-Tensors

    https://github.com/turian/torchsynth/pull/267https://github.com/turian/torchsynth/pull/267 should be merged first for a smaller diff

    I am trying to simplify the synth configuration, and it will be a sequence of linear PRs. Here is one that turns most of the configs back into Python native values.

    @jorshi can you profile quickly to make sure this is okay before we merge?

    opened by turian 5
  • Fm vco

    Fm vco

    Made FmVCO class, which basically has to process the modulation signal in a slightly different way. Typically the mod signal is applied in midi-space (log frequency), but FM operates on modulations in Hz space. Also changed the modulation depth to reflect the classic 'modulation index' of FM literature. It's a bit more intuitive this way.

    Had to slightly refactor VCO to make this smooth.

    Note, this is only work on the numpy modules. torchmodule.py would have to be updated accordingly.

    opened by maxsolomonhenry 5
  • TorchParameter

    TorchParameter

    Parameters for TorchSynthModules that have an internal range from 0 to 1 and can hold a ParameterRange object to convert to and from a user specified range

    opened by jorshi 5
  • Profiling script

    Profiling script

    Not sure if we want to include this, but this has been mega helpful for me in profiling. Also used this with line profiler to look at line-by-line profiles https://github.com/pyutils/line_profiler

    opened by jorshi 4
  • Reproducibility Issue

    Reproducibility Issue

    If you received an Error or Warning regarding reproducibility while using torchsynth please leave a comment here with details about your CPU architecture and what random results you got.

    opened by jorshi 4
  • [Snyk] Fix for 2 vulnerabilities

    [Snyk] Fix for 2 vulnerabilities

    This PR was automatically created by Snyk using the credentials of a real user.


    Snyk has created this PR to fix one or more vulnerable packages in the `pip` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • docs/requirements.txt
    ⚠️ Warning
    unofficial-pt-lightning-sphinx-theme 0.0.27.4 requires sphinx, which is not installed.
    sphinx-rtd-theme 1.1.1 requires sphinx, which is not installed.
    librosa 0.7.2 requires scikit-learn, which is not installed.
    librosa 0.7.2 requires resampy, which is not installed.
    librosa 0.7.2 requires numba, which is not installed.
    ipython 5.10.0 requires pygments, which is not installed.
    ipython 5.10.0 requires simplegeneric, which is not installed.
    
    

    Vulnerabilities that will be fixed

    By pinning:

    Severity | Priority Score (*) | Issue | Upgrade | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 551/1000
    Why? Recently disclosed, Has a fix available, CVSS 5.3 | Regular Expression Denial of Service (ReDoS)
    SNYK-PYTHON-SETUPTOOLS-3180412 | setuptools:
    39.0.1 -> 65.5.1
    | No | No Known Exploit medium severity | 551/1000
    Why? Recently disclosed, Has a fix available, CVSS 5.3 | Regular Expression Denial of Service (ReDoS)
    SNYK-PYTHON-WHEEL-3180413 | wheel:
    0.30.0 -> 0.38.0
    | No | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the affected dependencies could be upgraded.

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: 🧐 View latest project report

    🛠 Adjust project settings

    📚 Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    🦉 Regular Expression Denial of Service (ReDoS) 🦉 Regular Expression Denial of Service (ReDoS)

    opened by turian 1
  • [Snyk] Fix for 2 vulnerabilities

    [Snyk] Fix for 2 vulnerabilities

    This PR was automatically created by Snyk using the credentials of a real user.


    Snyk has created this PR to fix one or more vulnerable packages in the `pip` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • requirements.txt
    ⚠️ Warning
    unofficial-pt-lightning-sphinx-theme 0.0.27.4 requires sphinx, which is not installed.
    sphinx-rtd-theme 1.1.1 requires sphinx, which is not installed.
    librosa 0.7.2 requires scikit-learn, which is not installed.
    librosa 0.7.2 requires resampy, which is not installed.
    librosa 0.7.2 requires numba, which is not installed.
    ipython 5.10.0 requires pygments, which is not installed.
    ipython 5.10.0 requires simplegeneric, which is not installed.
    
    

    Vulnerabilities that will be fixed

    By pinning:

    Severity | Priority Score (*) | Issue | Upgrade | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 551/1000
    Why? Recently disclosed, Has a fix available, CVSS 5.3 | Regular Expression Denial of Service (ReDoS)
    SNYK-PYTHON-SETUPTOOLS-3180412 | setuptools:
    39.0.1 -> 65.5.1
    | No | No Known Exploit medium severity | 551/1000
    Why? Recently disclosed, Has a fix available, CVSS 5.3 | Regular Expression Denial of Service (ReDoS)
    SNYK-PYTHON-WHEEL-3180413 | wheel:
    0.30.0 -> 0.38.0
    | No | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the affected dependencies could be upgraded.

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: 🧐 View latest project report

    🛠 Adjust project settings

    📚 Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    🦉 Regular Expression Denial of Service (ReDoS) 🦉 Regular Expression Denial of Service (ReDoS)

    opened by turian 1
  • Bump black from 22.6.0 to 22.12.0

    Bump black from 22.6.0 to 22.12.0

    Bumps black from 22.6.0 to 22.12.0.

    Release notes

    Sourced from black's releases.

    22.12.0

    Preview style

    • Enforce empty lines before classes and functions with sticky leading comments (#3302)
    • Reformat empty and whitespace-only files as either an empty file (if no newline is present) or as a single newline character (if a newline is present) (#3348)
    • Implicitly concatenated strings used as function args are now wrapped inside parentheses (#3307)
    • Correctly handle trailing commas that are inside a line's leading non-nested parens (#3370)

    Configuration

    • Fix incorrectly applied .gitignore rules by considering the .gitignore location and the relative path to the target file (#3338)
    • Fix incorrectly ignoring .gitignore presence when more than one source directory is specified (#3336)

    Parser

    • Parsing support has been added for walruses inside generator expression that are passed as function args (for example, any(match := my_re.match(text) for text in texts)) (#3327).

    Integrations

    • Vim plugin: Optionally allow using the system installation of Black via let g:black_use_virtualenv = 0(#3309)

    22.10.0

    Highlights

    • Runtime support for Python 3.6 has been removed. Formatting 3.6 code will still be supported until further notice.

    Stable style

    • Fix a crash when # fmt: on is used on a different block level than # fmt: off (#3281)

    Preview style

    ... (truncated)

    Changelog

    Sourced from black's changelog.

    22.12.0

    Preview style

    • Enforce empty lines before classes and functions with sticky leading comments (#3302)
    • Reformat empty and whitespace-only files as either an empty file (if no newline is present) or as a single newline character (if a newline is present) (#3348)
    • Implicitly concatenated strings used as function args are now wrapped inside parentheses (#3307)
    • Correctly handle trailing commas that are inside a line's leading non-nested parens (#3370)

    Configuration

    • Fix incorrectly applied .gitignore rules by considering the .gitignore location and the relative path to the target file (#3338)
    • Fix incorrectly ignoring .gitignore presence when more than one source directory is specified (#3336)

    Parser

    • Parsing support has been added for walruses inside generator expression that are passed as function args (for example, any(match := my_re.match(text) for text in texts)) (#3327).

    Integrations

    • Vim plugin: Optionally allow using the system installation of Black via let g:black_use_virtualenv = 0(#3309)

    22.10.0

    Highlights

    • Runtime support for Python 3.6 has been removed. Formatting 3.6 code will still be supported until further notice.

    Stable style

    • Fix a crash when # fmt: on is used on a different block level than # fmt: off (#3281)

    ... (truncated)

    Commits
    • 2ddea29 Prepare release 22.12.0 (#3413)
    • 5b1443a release: skip bad macos wheels for now (#3411)
    • 9ace064 Bump peter-evans/find-comment from 2.0.1 to 2.1.0 (#3404)
    • 19c5fe4 Fix CI with latest flake8-bugbear (#3412)
    • d4a8564 Bump sphinx-copybutton from 0.5.0 to 0.5.1 in /docs (#3390)
    • 2793249 Wordsmith current_style.md (#3383)
    • d97b789 Remove whitespaces of whitespace-only files (#3348)
    • c23a5c1 Clarify that Black runs with --safe by default (#3378)
    • 8091b25 Correctly handle trailing commas that are inside a line's leading non-nested ...
    • ffaaf48 Compare each .gitignore found with an appropiate relative path (#3338)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • [Snyk] Security upgrade protobuf from 3.20.1 to 3.20.2

    [Snyk] Security upgrade protobuf from 3.20.1 to 3.20.2

    Snyk has created this PR to fix one or more vulnerable packages in the `pip` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • docs/requirements.txt
    ⚠️ Warning
    unofficial-pt-lightning-sphinx-theme 0.0.27.4 requires sphinx, which is not installed.
    sphinx-rtd-theme 1.1.1 requires sphinx, which is not installed.
    librosa 0.7.2 requires scikit-learn, which is not installed.
    librosa 0.7.2 requires resampy, which is not installed.
    librosa 0.7.2 requires numba, which is not installed.
    ipython 5.10.0 requires simplegeneric, which is not installed.
    ipython 5.10.0 requires pygments, which is not installed.
    
    

    Vulnerabilities that will be fixed

    By pinning:

    Severity | Priority Score (*) | Issue | Upgrade | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 499/1000
    Why? Has a fix available, CVSS 5.7 | Denial of Service (DoS)
    SNYK-PYTHON-PROTOBUF-3031740 | protobuf:
    3.20.1 -> 3.20.2
    | No | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the affected dependencies could be upgraded.

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: 🧐 View latest project report

    🛠 Adjust project settings

    📚 Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    🦉 Learn about vulnerability in an interactive lesson of Snyk Learn.

    opened by snyk-bot 1
  • [Snyk] Security upgrade protobuf from 3.20.1 to 3.20.2

    [Snyk] Security upgrade protobuf from 3.20.1 to 3.20.2

    This PR was automatically created by Snyk using the credentials of a real user.


    Snyk has created this PR to fix one or more vulnerable packages in the `pip` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • requirements.txt
    ⚠️ Warning
    unofficial-pt-lightning-sphinx-theme 0.0.27.4 requires sphinx, which is not installed.
    sphinx-rtd-theme 1.1.1 requires sphinx, which is not installed.
    librosa 0.7.2 requires scikit-learn, which is not installed.
    librosa 0.7.2 requires resampy, which is not installed.
    librosa 0.7.2 requires numba, which is not installed.
    ipython 5.10.0 requires simplegeneric, which is not installed.
    ipython 5.10.0 requires pygments, which is not installed.
    
    

    Vulnerabilities that will be fixed

    By pinning:

    Severity | Priority Score (*) | Issue | Upgrade | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 499/1000
    Why? Has a fix available, CVSS 5.7 | Denial of Service (DoS)
    SNYK-PYTHON-PROTOBUF-3031740 | protobuf:
    3.20.1 -> 3.20.2
    | No | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the affected dependencies could be upgraded.

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: 🧐 View latest project report

    🛠 Adjust project settings

    📚 Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    🦉 Learn about vulnerability in an interactive lesson of Snyk Learn.

    opened by turian 1
  • [Snyk] Fix for 2 vulnerabilities

    [Snyk] Fix for 2 vulnerabilities

    This PR was automatically created by Snyk using the credentials of a real user.


    Snyk has created this PR to fix one or more vulnerable packages in the `pip` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • docs/requirements.txt
    ⚠️ Warning
    unofficial-pt-lightning-sphinx-theme 0.0.27.4 requires sphinx, which is not installed.
    sphinx-rtd-theme 1.1.1 requires sphinx, which is not installed.
    scipy 1.2.3 requires numpy, which is not installed.
    pytest-cov 2.12.1 requires coverage, which is not installed.
    matplotlib 2.2.5 requires numpy, which is not installed.
    librosa 0.7.2 requires numpy, which is not installed.
    librosa 0.7.2 requires scikit-learn, which is not installed.
    librosa 0.7.2 requires resampy, which is not installed.
    librosa 0.7.2 requires numba, which is not installed.
    ipython 5.10.0 requires simplegeneric, which is not installed.
    ipython 5.10.0 requires pygments, which is not installed.
    
    

    Vulnerabilities that will be fixed

    By pinning:

    Severity | Priority Score (*) | Issue | Upgrade | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:-------------------------|:------------------------- low severity | 441/1000
    Why? Recently disclosed, Has a fix available, CVSS 3.1 | Regular Expression Denial of Service (ReDoS)
    SNYK-PYTHON-SETUPTOOLS-3113904 | setuptools:
    39.0.1 -> 65.5.1
    | No | No Known Exploit medium severity | 551/1000
    Why? Recently disclosed, Has a fix available, CVSS 5.3 | Regular Expression Denial of Service (ReDoS)
    SNYK-PYTHON-WHEEL-3092128 | wheel:
    0.30.0 -> 0.38.0
    | No | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the affected dependencies could be upgraded.

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: 🧐 View latest project report

    🛠 Adjust project settings

    📚 Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    🦉 Regular Expression Denial of Service (ReDoS) 🦉 Regular Expression Denial of Service (ReDoS)

    opened by turian 1
Releases(v1.0.2)
  • v1.0.2(Aug 19, 2022)

    This update includes some bug fixes and an update to the Signal class to enable checkpointing.

    What's Changed

    • Adding the drum nebula to docs by @jorshi in https://github.com/torchsynth/torchsynth/pull/374
    • Sphinx fixs by @turian in https://github.com/torchsynth/torchsynth/pull/379
    • Codecov Action Fix by @jorshi in https://github.com/torchsynth/torchsynth/pull/380
    • Updating torch.range to torch.arange by @jorshi in https://github.com/torchsynth/torchsynth/pull/378 - torch.range, which is deprecated, was producing incorrect values for larger batch_ids passed into a synth voice.
    • Fix floordiv by @turian in https://github.com/torchsynth/torchsynth/pull/382
    • Add new_empty to Signal by @turian in https://github.com/torchsynth/torchsynth/pull/384 - this enables deepcopy on torchsynth Signals and allows for checkpointing

    Full Changelog: https://github.com/torchsynth/torchsynth/compare/v1.0.1...v1.0.2

    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Jun 29, 2021)

  • v1.0.0(Apr 27, 2021)

    • All AbstractSynth now return multi-modal tuples: (audio batch, parameter batch, is_train batch)
    • Batch sizes that are multiples of 32 are now supported for any reproducible output. (128 is still the default.)
    • More detailed documentation, including documentation fix proposed by @daisukelab.
    • Default voice nebula added, as well as a drum nebula.
    • modulation signal input on VCO and LFO is now optional
    Source code(tar.gz)
    Source code(zip)
  • v0.9.2(Apr 13, 2021)

  • v0.9.1(Apr 11, 2021)

Owner
torchsynth
The fastest synthesizer in the universe
torchsynth
1st Solution For ICDAR 2021 Competition on Mathematical Formula Detection

This project releases our 1st place solution on ICDAR 2021 Competition on Mathematical Formula Detection. We implement our solution based on MMDetection, which is an open source object detection tool

yuxzho 94 Dec 25, 2022
Sharpness-Aware Minimization for Efficiently Improving Generalization

Sharpness-Aware-Minimization-TensorFlow This repository provides a minimal implementation of sharpness-aware minimization (SAM) (Sharpness-Aware Minim

Sayak Paul 54 Dec 08, 2022
Explore the Expression: Facial Expression Generation using Auxiliary Classifier Generative Adversarial Network

Explore the Expression: Facial Expression Generation using Auxiliary Classifier Generative Adversarial Network This is the official implementation of

azad 2 Jul 09, 2022
NCVX (NonConVeX): A User-Friendly and Scalable Package for Nonconvex Optimization in Machine Learning.

The source code is temporariy removed, as we are solving potential copyright and license issues with GRANSO (http://www.timmitchell.com/software/GRANS

SUN Group @ UMN 28 Aug 03, 2022
DvD-TD3: Diversity via Determinants for TD3 version

DvD-TD3: Diversity via Determinants for TD3 version The implementation of paper Effective Diversity in Population Based Reinforcement Learning. Instal

3 Feb 11, 2022
这是一个yolox-pytorch的源码,可以用于训练自己的模型。

YOLOX:You Only Look Once目标检测模型在Pytorch当中的实现 目录 性能情况 Performance 实现的内容 Achievement 所需环境 Environment 小技巧的设置 TricksSet 文件下载 Download 训练步骤 How2train 预测步骤

Bubbliiiing 613 Jan 05, 2023
How to train a CNN to 99% accuracy on MNIST in less than a second on a laptop

Training a NN to 99% accuracy on MNIST in 0.76 seconds A quick study on how fast you can reach 99% accuracy on MNIST with a single laptop. Our answer

Tuomas Oikarinen 42 Dec 10, 2022
Named Entity Recognition with Small Strongly Labeled and Large Weakly Labeled Data

Named Entity Recognition with Small Strongly Labeled and Large Weakly Labeled Data arXiv This is the code base for weakly supervised NER. We provide a

Amazon 92 Jan 04, 2023
Fast and scalable uncertainty quantification for neural molecular property prediction, accelerated optimization, and guided virtual screening.

Evidential Deep Learning for Guided Molecular Property Prediction and Discovery Ava Soleimany*, Alexander Amini*, Samuel Goldman*, Daniela Rus, Sangee

Alexander Amini 75 Dec 15, 2022
Image Segmentation with U-Net Algorithm on Carvana Dataset using AWS Sagemaker

Image Segmentation with U-Net Algorithm on Carvana Dataset using AWS Sagemaker This is a full project of image segmentation using the model built with

Htin Aung Lu 1 Jan 04, 2022
X-VLM: Multi-Grained Vision Language Pre-Training

X-VLM: learning multi-grained vision language alignments Multi-Grained Vision Language Pre-Training: Aligning Texts with Visual Concepts. Yan Zeng, Xi

Yan Zeng 286 Dec 23, 2022
Geometric Algebra package for JAX

JAXGA - JAX Geometric Algebra GitHub | Docs JAXGA is a Geometric Algebra package on top of JAX. It can handle high dimensional algebras by storing onl

Robin Kahlow 36 Dec 22, 2022
Simple Baselines for Human Pose Estimation and Tracking

Simple Baselines for Human Pose Estimation and Tracking News Our new work High-Resolution Representations for Labeling Pixels and Regions is available

Microsoft 2.7k Jan 05, 2023
Vector.ai assignment

fabio-tests-nisargatman Low Level Approach: ###Tables: continents: id*, name, population, area, createdAt, updatedAt countries: id*, name, population,

Ravi Pullagurla 1 Nov 09, 2021
Google Landmark Recogntion and Retrieval 2021 Solutions

Google Landmark Recogntion and Retrieval 2021 Solutions In this repository you can find solution and code for Google Landmark Recognition 2021 and Goo

Vadim Timakin 5 Nov 25, 2022
StellarGraph - Machine Learning on Graphs

StellarGraph Machine Learning Library StellarGraph is a Python library for machine learning on graphs and networks. Table of Contents Introduction Get

S T E L L A R 2.6k Jan 05, 2023
TransFGU: A Top-down Approach to Fine-Grained Unsupervised Semantic Segmentation

TransFGU: A Top-down Approach to Fine-Grained Unsupervised Semantic Segmentation Zhaoyun Yin, Pichao Wang, Fan Wang, Xianzhe Xu, Hanling Zhang, Hao Li

DamoCV 25 Dec 16, 2022
LAMDA: Label Matching Deep Domain Adaptation

LAMDA: Label Matching Deep Domain Adaptation This is the implementation of the paper LAMDA: Label Matching Deep Domain Adaptation which has been accep

Tuan Nguyen 9 Sep 06, 2022
NEATEST: Evolving Neural Networks Through Augmenting Topologies with Evolution Strategy Training

NEATEST: Evolving Neural Networks Through Augmenting Topologies with Evolution Strategy Training

Göktuğ Karakaşlı 16 Dec 05, 2022
This is the official PyTorch implementation for "Mesa: A Memory-saving Training Framework for Transformers".

A Memory-saving Training Framework for Transformers This is the official PyTorch implementation for Mesa: A Memory-saving Training Framework for Trans

Zhuang AI Group 105 Dec 06, 2022