'Constructor.
:param num_hidden: number of hidden units
:param loss_function: type of loss function
:param visible_unit_type: type of the visible units (bin or gauss)
:param gibbs_sampling_steps: optional, default 1
:param stddev: default 0.1. Ignored if visible_unit_type is not \'gauss\''

def __init__(self, num_hidden, visible_unit_type='bin', name='rbm', loss_func='mse', learning_rate=0.01, regcoef=0.0005, regtype='none', gibbs_sampling_steps=1, batch_size=10, num_epochs=10, stddev=0.1):

    UnsupervisedModel.__init__(self, name)
    self.loss_func = loss_func
    self.learning_rate = learning_rate
    self.num_epochs = num_epochs
    self.batch_size = batch_size
    self.regtype = regtype
    self.regcoef = regcoef
    self.loss = Loss(self.loss_func)
    self.num_hidden = num_hidden
    self.visible_unit_type = visible_unit_type
    self.gibbs_sampling_steps = gibbs_sampling_steps
    self.stddev = stddev
    self.W = None
    self.bh_ = None
    self.bv_ = None
    self.w_upd8 = None
    self.bh_upd8 = None
    self.bv_upd8 = None
    self.cost = None
    self.input_data = None
    self.hrand = None
    self.vrand = None
