项目作者: MateusRoder

项目描述 :
📄 Official implementation regarding the paper "Energy-based Dropout in Restricted Boltzmann Machines: Why not go random".
高级语言: Python
项目地址: git://github.com/MateusRoder/e_dropout_rbm.git
创建时间: 2020-06-03T18:03:11Z
项目社区:https://github.com/MateusRoder/e_dropout_rbm

开源协议:MIT License

下载


Energy-based Dropout in Restricted Boltzmann Machines: Why not go random

This repository holds all the necessary code to run the very-same experiments described in the paper “Energy-based Dropout in Restricted Boltzmann Machines: Why not go random”.


References

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

  1. @article{roder2020edrop,
  2. author={M. {Roder} and G. H. {de Rosa} and V. H. C. {de Albuquerque} and A. L. D. {Rossi} and J. P. {Papa}},
  3. journal={IEEE Transactions on Emerging Topics in Computational Intelligence},
  4. title={Energy-Based Dropout in Restricted Boltzmann Machines: Why Not Go Random},
  5. year={2020},
  6. volume={},
  7. number={},
  8. pages={1-11},
  9. doi={10.1109/TETCI.2020.3043764}}
  10. }

Structure

  • utils
    • loader.py: Utility to load datasets and split them into training, validation and testing sets;
    • objects.py: Wraps objects instantiation for command line usage;

Package Guidelines

Installation

Install all the pre-needed requirements using:

  1. pip install -r requirements.txt

If you encounter any problems with the automatic installation of the learnergy package, contact us.

Data configuration

In order to run the experiments, you can use torchvision to load pre-implemented datasets.


Usage

Model Training and Reconstruction

The experiment is conducted by pre-training an RBM architecture and post-evaluating them. To accomplish such a step, one needs to use the following script:

  1. python rbm_reconstruction.py -h

Note that -h invokes the script helper, which assists users in employing the appropriate parameters.

Bash Script

Instead of invoking every script to conduct the experiments, it is also possible to use the provided shell script, as follows:

  1. ./pipeline.sh

Such a script will conduct every step needed to accomplish the experimentation used throughout this paper. Furthermore, one can change any input argument that is defined in the script.


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 mateus.roder@unesp.br and gustavo.rosa@unesp.br.