Skip to content
/ RBM Public

Restricted Boltzmann Machine implementation in Python for pre-training deep neural networks

Notifications You must be signed in to change notification settings

ramarlina/RBM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Restricted Boltzmann Machines

This is a simple Python implementation of Restricted Boltzmann Machine (RBM). It handles Numpy arrays as well as Scipy sparse matrices. I am using the moment method to update the weights.

To use this module, make sure the following Python libraries are installed:

  • Numpy
  • Scipy
  • PIL
  • Matplotlib

Given an input vector X, the RBM algorithm learns a set of internal values H that would produce the data X.

Sample Features Learned:

The following is an example of Weights rbm library learned from grayscaled Galaxy images from the Kaggle Galaxy Zoo challenge:

Deep Neural Networks

This module can be used to build deep neural networks by training one layer after another.

The following example shows how to train two consecutive layers of a neural network using an arbitrary data vector X:

# import the rbm library
import rbm

# The first step is to initialize the RBM:
r1 = rbm.RBM(<input_size>, <output_size>)

# Next train the RBM layer using the "fit" method:
r1.fit(X, max_epochs=1000)


# Call "activate" to get the output of a given layer
V = r1.activate(X)

# Now, a second layer can be built from the output of the first layer:
r2 = rbm.RBM(V.shape[1], <output_size>)
r2.fit(V, max_epochs=1000)

About

Restricted Boltzmann Machine implementation in Python for pre-training deep neural networks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages