#encoding:utf-8
import matplotlib.pylab as plt
import numpy as np
import random
from scipy.linalg import norm
import PIL.Image
class Rbm:
def __init__(self,n_visul, n_hidden, max_epoch = 50, batch_size = 110, penalty = 2e-4, anneal = False, w = None, v_bias = None, h_bias = None):
self.n_visible = n_visul
self.n_hidden = n_hidden
self.max_epoch = max_epoch
self.batch_size = batch_size
self.penalty = penalty
self.anneal = anneal
if w is None:
self.w = np.random.random((self.n_visible, self.n_hidden)) * 0.1 #初始化可见层到隐层的权重矩阵
if v_bias is None:
self.v_bias = np.zeros((1, self.n_visible))
if h_bias is None:
self.h_bias = np.zeros((1, self.n_hidden))
def sigmod(self, z):
return 1.0 / (1.0 + np.exp( -z )) #定义一个激活函数
def forward(self, vis):
#if(len(vis.shape) == 1):
#vis = np.array([vis])
#vis
使用CD-K算法实现RBM
最新推荐文章于 2019-06-20 09:21:36 发布