💡 Learnergy is a Python library for energy-based machine learning models.

Overview

Learnergy: Energy-based Machine Learners

Latest release DOI Build status Open issues License

Welcome to Learnergy.

Did you ever reach a bottleneck in your computational experiments? Are you tired of implementing your own techniques? If yes, Learnergy is the real deal! This package provides an easy-to-go implementation of energy-based machine learning algorithms. From datasets to fully-customizable models, from internal functions to external communications, we will foster all research related to energy-based machine learning.

Use Learnergy if you need a library or wish to:

  • Create your energy-based machine learning algorithm;
  • Design or use pre-loaded learners;
  • Mix-and-match different strategies to solve your problem;
  • Because it is incredible to learn things.

Read the docs at learnergy.readthedocs.io.

Learnergy is compatible with: Python 3.6+.


Package guidelines

  1. The very first information you need is in the very next section.
  2. Installing is also easy if you wish to read the code and bump yourself into, follow along.
  3. Note that there might be some additional steps in order to use our solutions.
  4. If there is a problem, please do not hesitate, call us.

Citation

If you use Learnergy to fulfill any of your needs, please cite us:

@misc{roder2020learnergy,
    title={Learnergy: Energy-based Machine Learners},
    author={Mateus Roder and Gustavo Henrique de Rosa and João Paulo Papa},
    year={2020},
    eprint={2003.07443},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}

Getting started: 60 seconds with Learnergy

First of all. We have examples. Yes, they are commented. Just browse to examples/, choose your subpackage, and follow the example. We have high-level examples for most of the tasks we could think.

Alternatively, if you wish to learn even more, please take a minute:

Learnergy is based on the following structure, and you should pay attention to its tree:

- learnergy
    - core
        - dataset
        - model
    - math
        - metrics
        - scale
    - models
        - bernoulli
            - conv_rbm
            - discriminative_rbm
            - dropout_rbm
            - e_dropout_rbm
            - rbm
        - deep
            - conv_dbn
            - dbn
            - residual_dbn
        - extra
            - sigmoid_rbm
        - gaussian
            - gaussian_conv_rbm        
            - gaussian_rbm
    - utils
        - constants
        - exception
        - logging
    - visual
        - convergence
        - image
        - tensor

Core

Core is the core. Essentially, it is the parent of everything. You should find parent classes defining the basis of our structure. They should provide variables and methods that will help to construct other modules.

Math

Just because we are computing stuff, it does not means that we do not need math. Math is the mathematical package, containing low-level math implementations. From random numbers to distributions generation, you can find your needs on this module.

Models

This is the heart. All models are declared and implemented here. We will offer you the most fantastic implementation of everything we are working with. Please take a closer look into this package.

Utils

This is a utility package. Common things shared across the application should be implemented here. It is better to implement once and use as you wish than re-implementing the same thing over and over again.

Visual

Everyone needs images and plots to help visualize what is happening, correct? This package will provide every visual-related method for you. Check a specific image, your fitness function convergence, plot reconstructions, weights, and much more.


Installation

We believe that everything has to be easy. Not tricky or daunting, Learnergy will be the one-to-go package that you will need, from the very first installation to the daily-tasks implementing needs. If you may just run the following under your most preferred Python environment (raw, conda, virtualenv, whatever):

pip install learnergy

Alternatively, if you prefer to install the bleeding-edge version, please clone this repository and use:

pip install -e .

Environment configuration

Note that sometimes, there is a need for additional implementation. If needed, from here, you will be the one to know all of its details.

Ubuntu

No specific additional commands needed.

Windows

No specific additional commands needed.

MacOS

No specific additional commands needed.


Support

We know that we do our best, but it is inevitable to acknowledge that we make mistakes. If you ever need to report a bug, report a problem, talk to us, please do so! We will be available at our bests at this repository or [email protected] and [email protected].


Comments
  • Naming of models' class attributes

    Naming of models' class attributes

    The variable names used in the getters and setters of each model class are different than what is initialized in the constructor.

    Screen Shot 2021-06-14 at 7 37 42 PM

    Note that the name 'W' is used in init, but '_W' is used as the variable name in the getters and setters, both of which have the same name as the variable initialized in init 'W'. This issue is the same for all member variables. I have tested the DBN and GaussianVarianceRBM subclasses as well, and it looks like the issue persists across all other subclasses.

    Screen Shot 2021-06-14 at 7 38 32 PM
    • OS: CentOS 7.8
    • Virtual Environment conda 4.10.1
    • Python Version 3.8

    This causes issues when trying to make copies of classes for things like multi-GPU training via torch.nn.DistributedDataParallel

    bug 
    opened by nlahaye 14
  • Probabilistic Max Pooling

    Probabilistic Max Pooling

    Hi Gustavo!

    I hope you are doing well!

    I was wondering if you had looked into / planned to add probabilistic max-pooling, as descibed in: H. Lee, et al., Convolutional Deep Belief Networksfor Scalable Unsupervised Learning of Hierarchical Representations Proceedings of the 26th annual international conference on machine learning (2009).

    I am happy to help, but figured it would be best to consult you first.

    Thanks! Nick

    enhancement 
    opened by nlahaye 7
  • probability bug

    probability bug

    When I use GaussianRBM to run rbm_classification.py on GPU, these errors appear.

    11%|█ | 51/469 [00:01<00:07, 58.24it/s]C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [416,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [417,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [418,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [419,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [420,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [421,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [422,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [423,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [424,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [425,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [426,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [427,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [428,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [429,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [430,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [431,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [432,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [433,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [434,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [435,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [436,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [437,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [438,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [439,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [440,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [441,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [442,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [443,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [444,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [445,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [446,0,0] Assertion 0 <= p4 && p4 <= 1 failed. C:/cb/pytorch_1000000000000/work/aten/src\ATen/native/cuda/DistributionTemplates.h:591: block: [6,0,0], thread: [447,0,0] Assertion 0 <= p4 && p4 <= 1 failed.

    RuntimeError: CUDA error: device-side assert triggered

    But if I run it on cpu, the error while like this: RuntimeError: Expected p_in >= 0 && p_in <= 1 to be true, but got false.

    It seems like the function hidden_sampling dosen't run correctly.

    bug question 
    opened by kyyongh 6
  • nan in probs

    nan in probs

    Hello,

    Thank you very much for developing this superb library!!

    I believe that I found an issue, but I am not able to find the root cause.

    From time to time I receive this error:

    Traceback (most recent call last): File "/Users/supermario/LNIssue/run_rbm.py", line 26, in epochs=1000000) File "/Users/supermario/LNIssue/venv/lib/python3.7/site-packages/learnergy/models/bernoulli/rbm.py", line 495, in fit _, _, _, _, visible_states = self.gibbs_sampling(samples) File "/Users/supermario/LNIssue/venv/lib/python3.7/site-packages/learnergy/models/bernoulli/rbm.py", line 379, in gibbs_sampling neg_hidden_states, True) File "/Users/supermario/LNIssue/venv/lib/python3.7/site-packages/learnergy/models/bernoulli/rbm.py", line 352, in visible_sampling states = torch.bernoulli(probs) RuntimeError: Expected p_in >= 0 && p_in <= 1 to be true, but got false. (Could this error message be improved? If so, please report an enhancement request to PyTorch.)

    Here is the code to reproduce the error:

    import numpy as np import torch from torch.utils.data import Dataset from learnergy.models.bernoulli.rbm import RBM

    np.random.seed(16) torch.manual_seed(16)

    class CustomDataset(Dataset):

    def __init__(self, custom_data):
        self.custom_data = torch.from_numpy(custom_data)
        self.dummy_y = torch.from_numpy(np.array([0.0]))
    
    def __getitem__(self, index):
        return self.custom_data[index], self.dummy_y[0]
    
    def __len__(self):
        return self.custom_data.shape[0]
    

    rbm = RBM(n_visible=32, n_hidden=64, steps=1, learning_rate=0.0001, momentum=0.9, decay=0.00001, temperature=0, use_gpu=False)

    data = np.random.choice(a=[False, True], size=(5755, 32)).astype(np.float32) data_train = CustomDataset(data)

    rbm.fit(dataset=data_train, batch_size=20, epochs=1000000)

    And requirements: astroid==2.8.4 attrs==21.2.0 coverage==6.1.1 cycler==0.11.0 imageio==2.10.3 importlib-metadata==4.8.2 iniconfig==1.1.1 isort==5.10.1 kiwisolver==1.3.2 lazy-object-proxy==1.6.0 learnergy==1.1.1 matplotlib==3.4.3 mccabe==0.6.1 networkx==2.6.3 numpy==1.21.4 packaging==21.2 Pillow==8.4.0 platformdirs==2.4.0 pluggy==1.0.0 py==1.11.0 pylint==2.11.1 pyparsing==2.4.7 pytest==6.2.5 python-dateutil==2.8.2 PyWavelets==1.2.0 scikit-image==0.18.3 scipy==1.7.2 six==1.16.0 tifffile==2021.11.2 toml==0.10.2 torch==1.9.0 tqdm==4.62.3 typed-ast==1.4.3 typing-extensions==3.10.0.2 wrapt==1.13.3 zipp==3.6.0

    The error should appear at epoch 221/1000000.

    If I add the following torch.nan_to_num in visible_sampling() method, then the error is not present anymore.

    probs = torch.nan_to_num(probs, nan=0.0) Sampling current states states = torch.bernoulli(probs)

    macosx, python 3.7.0

    Thank you! Please let me know if you need additional info.

    bug 
    opened by citizenn19 4
  • [REG] Basis for classification architecture

    [REG] Basis for classification architecture

    Regarding the basic Bernoulli RBM for classification, could I check what is the basis of your implementation? From what I can tell, the training is broken up in two sections:

    1. RBM will perform unsupervised learning to minimize energy (RBM::fit), basically like a feature extractor.
    2. The whole model is then considered as a 2-layer neural network with a sigmoid layer (RBM::forward) and linear transformation layer.

    So, it seems like the RBM is just used as an initializer for the neural network.

    In addition, I noticed that RBM::fit's epoch defaults to 1. Increasing the epoch number does not seem to improve performance. Does this mean that there is no use in training the RBM?

    Lastly, was there any prior work that implemented RBM in this way, or is this your original idea? Are there any published results or study into this architecture? Thank you!

    general 
    opened by shotnothing 3
  • [REG] The purpose of applying Softplus function in RBM

    [REG] The purpose of applying Softplus function in RBM

    I found in the comments of file learnergy/learnergy/models/bernoulli/rbm.py (line 401), you said

    Creating a Softplus function for numerical stability

    The form of Softplus function is f(x) = log(1+exp(x)), which fits the form of the log term of marginal energy of RBM

    E(v)= \sum_i a_i v_i + \sum_j ( log( 1 + exp( \sum_i v_i \lambda_{ij} +b_j ) ) ).

    So I suppose the Softplus function is not used to ensure the numerical stability, but to calculate the marginal energy. I am a beginner to RBM, if I have any wrong perceptions, please point it out.

    Thank you!

    general 
    opened by YemingMeng 3
  • Bump sphinx from 5.2.3 to 5.3.0

    Bump sphinx from 5.2.3 to 5.3.0

    Bumps sphinx from 5.2.3 to 5.3.0.

    Release notes

    Sourced from sphinx's releases.

    v5.3.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    Changelog

    Sourced from sphinx's changelog.

    Release 5.3.0 (released Oct 16, 2022)

    • #10759: LaTeX: add :confval:latex_table_style and support the 'booktabs', 'borderless', and 'colorrows' styles. (thanks to Stefan Wiehler for initial pull requests #6666, #6671)
    • #10840: One can cross-reference including an option value like :option:`--module=foobar```, :option:--module[=foobar]``` or ``:option:--module foobar```. Patch by Martin Liska.
    • #10881: autosectionlabel: Record the generated section label to the debug log.
    • #10268: Correctly URI-escape image filenames.
    • #10887: domains: Allow sections in all the content of all object description directives (e.g. :rst:dir:py:function). Patch by Adam Turner
    Commits

    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)
    opened by dependabot[bot] 2
  • Bump sphinx from 5.2.3 to 5.3.0 in /docs

    Bump sphinx from 5.2.3 to 5.3.0 in /docs

    Bumps sphinx from 5.2.3 to 5.3.0.

    Release notes

    Sourced from sphinx's releases.

    v5.3.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    Changelog

    Sourced from sphinx's changelog.

    Release 5.3.0 (released Oct 16, 2022)

    • #10759: LaTeX: add :confval:latex_table_style and support the 'booktabs', 'borderless', and 'colorrows' styles. (thanks to Stefan Wiehler for initial pull requests #6666, #6671)
    • #10840: One can cross-reference including an option value like :option:`--module=foobar```, :option:--module[=foobar]``` or ``:option:--module foobar```. Patch by Martin Liska.
    • #10881: autosectionlabel: Record the generated section label to the debug log.
    • #10268: Correctly URI-escape image filenames.
    • #10887: domains: Allow sections in all the content of all object description directives (e.g. :rst:dir:py:function). Patch by Adam Turner
    Commits

    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)
    opened by dependabot[bot] 2
  • Gaussian RBM with hidden layer SELU activation

    Gaussian RBM with hidden layer SELU activation

    Hi Gustavo, I hope you are having a great week. Over the last few months, I have made a couple of additions to my fork, and I figured I would share them to see if you found them useful for the base repo. No worries if not!

    The first one was adding Gaussian RBM with hidden layer SELU activation. I have had some success using this model for my research, and figured it may be useful for others.

    In addition to the SELU addition, added boolean flags to indicate whether or not to batch normalize and normalize the input within parent GaussianRBM class.

    The batch normalization is removed for SELU RBM, as it self-normalizes. Also, I use a scaling functionality outside of learnergy for the input, so it would be useful to have the normalization internal to learnergy as an option.

    By default input and batch normalization are turned on, as to not cause issues for other users.

    Thanks! Nick

    opened by nlahaye 2
  • Bump sphinx from 5.2.3 to 6.0.0

    Bump sphinx from 5.2.3 to 6.0.0

    Bumps sphinx from 5.2.3 to 6.0.0.

    Release notes

    Sourced from sphinx's releases.

    v6.0.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.0.0b2

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.0.0b1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.3.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    Changelog

    Sourced from sphinx's changelog.

    Release 6.0.0 (released Dec 29, 2022)

    Dependencies

    • #10468: Drop Python 3.6 support
    • #10470: Drop Python 3.7, Docutils 0.14, Docutils 0.15, Docutils 0.16, and Docutils 0.17 support. Patch by Adam Turner

    Incompatible changes

    • #7405: Removed the jQuery and underscore.js JavaScript frameworks.

      These frameworks are no longer be automatically injected into themes from Sphinx 6.0. If you develop a theme or extension that uses the jQuery, $, or $u global objects, you need to update your JavaScript to modern standards, or use the mitigation below.

      The first option is to use the sphinxcontrib.jquery_ extension, which has been developed by the Sphinx team and contributors. To use this, add sphinxcontrib.jquery to the extensions list in conf.py, or call app.setup_extension("sphinxcontrib.jquery") if you develop a Sphinx theme or extension.

      The second option is to manually ensure that the frameworks are present. To re-add jQuery and underscore.js, you will need to copy jquery.js and underscore.js from the Sphinx repository_ to your static directory, and add the following to your layout.html:

      .. code-block:: html+jinja

      {%- block scripts %} {{ super() }} {%- endblock %}

      .. _sphinxcontrib.jquery: https://github.com/sphinx-contrib/jquery/

      Patch by Adam Turner.

    • #10471, #10565: Removed deprecated APIs scheduled for removal in Sphinx 6.0. See :ref:dev-deprecated-apis for details. Patch by Adam Turner.

    • #10901: C Domain: Remove support for parsing pre-v3 style type directives and roles. Also remove associated configuration variables c_allow_pre_v3 and c_warn_on_allowed_pre_v3. Patch by Adam Turner.

    Features added

    ... (truncated)

    Commits

    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)
    opened by dependabot[bot] 1
  • Bump sphinx from 5.2.3 to 6.0.0 in /docs

    Bump sphinx from 5.2.3 to 6.0.0 in /docs

    Bumps sphinx from 5.2.3 to 6.0.0.

    Release notes

    Sourced from sphinx's releases.

    v6.0.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.0.0b2

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.0.0b1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.3.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    Changelog

    Sourced from sphinx's changelog.

    Release 6.0.0 (released Dec 29, 2022)

    Dependencies

    • #10468: Drop Python 3.6 support
    • #10470: Drop Python 3.7, Docutils 0.14, Docutils 0.15, Docutils 0.16, and Docutils 0.17 support. Patch by Adam Turner

    Incompatible changes

    • #7405: Removed the jQuery and underscore.js JavaScript frameworks.

      These frameworks are no longer be automatically injected into themes from Sphinx 6.0. If you develop a theme or extension that uses the jQuery, $, or $u global objects, you need to update your JavaScript to modern standards, or use the mitigation below.

      The first option is to use the sphinxcontrib.jquery_ extension, which has been developed by the Sphinx team and contributors. To use this, add sphinxcontrib.jquery to the extensions list in conf.py, or call app.setup_extension("sphinxcontrib.jquery") if you develop a Sphinx theme or extension.

      The second option is to manually ensure that the frameworks are present. To re-add jQuery and underscore.js, you will need to copy jquery.js and underscore.js from the Sphinx repository_ to your static directory, and add the following to your layout.html:

      .. code-block:: html+jinja

      {%- block scripts %} {{ super() }} {%- endblock %}

      .. _sphinxcontrib.jquery: https://github.com/sphinx-contrib/jquery/

      Patch by Adam Turner.

    • #10471, #10565: Removed deprecated APIs scheduled for removal in Sphinx 6.0. See :ref:dev-deprecated-apis for details. Patch by Adam Turner.

    • #10901: C Domain: Remove support for parsing pre-v3 style type directives and roles. Also remove associated configuration variables c_allow_pre_v3 and c_warn_on_allowed_pre_v3. Patch by Adam Turner.

    Features added

    ... (truncated)

    Commits

    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)
    opened by dependabot[bot] 1
Releases(v1.1.3)
  • v1.1.3(Oct 21, 2022)

    Changelog

    Description

    Welcome to v1.1.3 release.

    In this release, we have added the MaxPooling2D for convolutional models and optimized the training procedure for deeper models, i.e., DBNs. Such an optimization enables the DBN to train without loading all the dataset on the memory for each hidden layer in this phase.

    Please read the docs at: learnergy.readthedocs.io

    Also, stay tuned for our next updates!

    Includes (or changes)

    • learnergy
    Source code(tar.gz)
    Source code(zip)
  • v1.1.2(Apr 26, 2022)

  • v1.1.1(Dec 23, 2020)

    Changelog

    Description

    Welcome to v1.1.1 release.

    In this release, we added the DropConnectRBM and fixed some nasty bugs, as well as improved some unitary tests.

    Please read the docs at: learnergy.readthedocs.io

    Also, stay tuned for our next updates!

    Includes (or changes)

    • models.bernoulli.dropout_rbm
    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Dec 2, 2020)

    Changelog

    Description

    Welcome to v1.1.0 release.

    In this release, we renamed some packages for a clearer description. Additionally, we have added a GaussianConvRBM class and made some minor adjustments along the package.

    Note that this release might cause incompatibility with previous versions due to some packages being renamed.

    Please read the docs at: learnergy.readthedocs.io

    Also, stay tuned for our next updates!

    Includes (or changes)

    • models
    Source code(tar.gz)
    Source code(zip)
  • v1.0.7(Nov 25, 2020)

  • v1.0.6(Jul 10, 2020)

    Changelog

    Description

    Welcome to v1.0.6 release.

    In this release, we have added a new model, known as Convolutional RBM. Additionally, we have reworked our modules to provide a cleaner environment.

    Please read the docs at: learnergy.readthedocs.io

    Also, stay tuned for our next updates!

    Includes (or changes)

    • learnergy
    Source code(tar.gz)
    Source code(zip)
  • v1.0.5(May 28, 2020)

    Changelog

    Description

    Welcome to v1.0.5 release.

    In this release, we have added a new model, known as Gaussian ReLU RBM. Additionally, we have added progress bars in an attempt to construct a clearer visualization of the training process.

    Please read the docs at: learnergy.readthedocs.io

    Also, stay tuned for our next updates!

    Includes (or changes)

    • learnergy.models.gaussian_rbm
    Source code(tar.gz)
    Source code(zip)
  • v1.0.4(May 7, 2020)

    Changelog

    Description

    Welcome to v1.0.4 release.

    In this release, we have facilitated some classes imports, added the Residual DBN, and corrected some nasty bugs.

    Please read the docs at: learnergy.readthedocs.io

    Also, stay tuned for our next updates!

    Includes (or changes)

    • learnergy
    • learnergy.models.residual_dbn
    Source code(tar.gz)
    Source code(zip)
  • v1.0.3(Mar 31, 2020)

  • v1.0.2(Feb 18, 2020)

    Changelog

    Description

    Welcome to v1.0.2 release.

    In this release, we have rebranded the package to Learnergy. We have also improved all of your packages, including GPU-based versions of our models.

    Please read the docs at: learnergy.readthedocs.io

    Also, stay tuned for our next updates!

    Includes (or changes)

    • learnergy
    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Sep 12, 2019)

    Changelog

    Description

    Welcome to Recogners v1.0.1. We fixed some issues related to the auto docstringing API, added the Dropout-based RBM and a method to dump important information to the model's history.

    Note that the Gaussian RBM is not yet guaranteed to work. Please await for our next release.

    Includes (or changes)

    • models/dropout_rbm
    • tests
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Jul 4, 2019)

    Changelog

    Description

    This is the initial release of Recogners. It includes all basic modules in order to work with it. One can create and use a Restricted Boltzmann Machine, along with some extra functionalities. Please check examples folder or read the docs in order to know how to use this library.

    Includes

    • core
    • datasets
    • math
    • models
    • utils
    • visual
    Source code(tar.gz)
    Source code(zip)
Owner
Gustavo Rosa
There are no programming languages that can match up to programming logic. Machine learning researcher on work time and software engineer on free time.
Gustavo Rosa
Top #1 Submission code for the first https://alphamev.ai MEV competition with best AUC (0.9893) and MSE (0.0982).

alphamev-winning-submission Top #1 Submission code for the first alphamev MEV competition with best AUC (0.9893) and MSE (0.0982). The code won't run

70 Oct 29, 2022
code from "Tensor decomposition of higher-order correlations by nonlinear Hebbian plasticity"

Code associated with the paper "Tensor decomposition of higher-order correlations by nonlinear Hebbian learning," Ocker & Buice, Neurips 2021. "plot_f

Gabriel Koch Ocker 4 Oct 16, 2022
Official implementation of UTNet: A Hybrid Transformer Architecture for Medical Image Segmentation

UTNet (Accepted at MICCAI 2021) Official implementation of UTNet: A Hybrid Transformer Architecture for Medical Image Segmentation Introduction Transf

110 Jan 01, 2023
Practical Single-Image Super-Resolution Using Look-Up Table

Practical Single-Image Super-Resolution Using Look-Up Table [Paper] Dependency Python 3.6 PyTorch glob numpy pillow tqdm tensorboardx 1. Training deep

Younghyun Jo 116 Dec 23, 2022
Pytorch implementation of paper "Efficient Nearest Neighbor Language Models" (EMNLP 2021)

Pytorch implementation of paper "Efficient Nearest Neighbor Language Models" (EMNLP 2021)

Junxian He 57 Jan 01, 2023
StorSeismic: An approach to pre-train a neural network to store seismic data features

StorSeismic: An approach to pre-train a neural network to store seismic data features This repository contains codes and resources to reproduce experi

Seismic Wave Analysis Group 11 Dec 05, 2022
Simple streamlit app to demonstrate HERE Tour Planning

Table of Contents About the Project Built With Getting Started Prerequisites Installation Usage Roadmap Contributing License Acknowledgements About Th

Amol 8 Sep 05, 2022
Official code for 'Pixel-wise Energy-biased Abstention Learning for Anomaly Segmentationon Complex Urban Driving Scenes'

PEBAL This repo contains the Pytorch implementation of our paper: Pixel-wise Energy-biased Abstention Learning for Anomaly Segmentation on Complex Urb

Yu Tian 117 Jan 03, 2023
ObsPy: A Python Toolbox for seismology/seismological observatories.

ObsPy is an open-source project dedicated to provide a Python framework for processing seismological data. It provides parsers for common file formats

ObsPy 979 Jan 07, 2023
EEGEyeNet is benchmark to evaluate ET prediction based on EEG measurements with an increasing level of difficulty

Introduction EEGEyeNet EEGEyeNet is a benchmark to evaluate ET prediction based on EEG measurements with an increasing level of difficulty. Overview T

Ard Kastrati 23 Dec 22, 2022
T-LOAM: Truncated Least Squares Lidar-only Odometry and Mapping in Real-Time

T-LOAM: Truncated Least Squares Lidar-only Odometry and Mapping in Real-Time The first Lidar-only odometry framework with high performance based on tr

Pengwei Zhou 183 Dec 01, 2022
A reimplementation of DCGAN in PyTorch

DCGAN in PyTorch A reimplementation of DCGAN in PyTorch. Although there is an abundant source of code and examples found online (as well as an officia

Diego Porres 6 Jan 08, 2022
The code of “Similarity Reasoning and Filtration for Image-Text Matching” [AAAI2021]

SGRAF PyTorch implementation for AAAI2021 paper of “Similarity Reasoning and Filtration for Image-Text Matching”. It is built on top of the SCAN and C

Ronnie_IIAU 149 Dec 22, 2022
YoloAll is a collection of yolo all versions. you you use YoloAll to test yolov3/yolov5/yolox/yolo_fastest

官方讨论群 QQ群:552703875 微信群:15158106211(先加作者微信,再邀请入群) YoloAll项目简介 YoloAll是一个将当前主流Yolo版本集成到同一个UI界面下的推理预测工具。可以迅速切换不同的yolo版本,并且可以针对图片,视频,摄像头码流进行实时推理,可以很方便,直观

DL-Practise 244 Jan 01, 2023
Norm-based Analysis of Transformer

Norm-based Analysis of Transformer Implementations for 2 papers introducing to analyze Transformers using vector norms: Kobayashi+'20 Attention is Not

Goro Kobayashi 52 Dec 05, 2022
RL agent to play μRTS with Stable-Baselines3

Gym-μRTS with Stable-Baselines3/PyTorch This repo contains an attempt to reproduce Gridnet PPO with invalid action masking algorithm to play μRTS usin

Oleksii Kachaiev 24 Nov 11, 2022
A collection of metrics for evaluating timbre dissimilarity using the TorchMetrics API

Timbre Dissimilarity Metrics A collection of metrics for evaluating timbre dissimilarity using the TorchMetrics API Installation pip install -e . Usag

Ben Hayes 21 Jan 05, 2022
Source code of article "Towards Toxic and Narcotic Medication Detection with Rotated Object Detector"

Towards Toxic and Narcotic Medication Detection with Rotated Object Detector Introduction This is the source code of article: Towards Toxic and Narcot

Woody. Wang 3 Oct 29, 2022
LSTC: Boosting Atomic Action Detection with Long-Short-Term Context

LSTC: Boosting Atomic Action Detection with Long-Short-Term Context This Repository contains the code on AVA of our ACM MM 2021 paper: LSTC: Boosting

Tencent YouTu Research 9 Oct 11, 2022
SegNet-like Autoencoders in TensorFlow

SegNet SegNet is a TensorFlow implementation of the segmentation network proposed by Kendall et al., with cool features like strided deconvolution, a

Andrea Azzini 66 Nov 05, 2021