# -*- coding: utf-8 -*-'''
Created on 2016年4月1日
@author: LIU
'''import sys
import numpy
import matplotlib.pylab as plt
import numpy as np
import random
from scipy.linalg import norm
import PIL.Image
from utils import *
classRBM(object):def__init__(self, input=None, n_visible=2, n_hidden=3, \
W=None, hbias=None, vbias=None, rng=None):
self.n_visible = n_visible # num of units in visible (input) layer
self.n_hidden = n_hidden # num of units in hidden layerif rng isNone:
rng = numpy.random.RandomState(1234)
if W isNone:
a = 1. / n_visible
initial_W = numpy.array(rng.uniform( # initialize W uniformly(随机生成实数在-a-a之间)
low=-a,
high=a,
size=(n_visible, n_hidden)))
W = initial_W
if hbias isNone:
hbias = numpy.zeros(n_hidden) # initialize h bias 0if vbias isNone:
vbias = numpy.zeros(n_visible) # initialize v bias 0