view sandbox/rbm/parameters.py @ 472:69c800af1370

changed weight initialization for logistic regression
author James Bergstra <bergstrj@iro.umontreal.ca>
date Thu, 23 Oct 2008 13:26:42 -0400
parents c2e6a8fcc35e
children
line wrap: on
line source

"""
Parameters (weights) used by the L{Model}.
"""

import numpy

class Parameters:
    """
    Parameters used by the L{Model}.
    """
    def __init__(self, input_dimension, hidden_dimension, randomly_initialize, random_seed):
        """
        Initialize L{Model} parameters.
        @param randomly_initialize: If True, then randomly initialize
        according to the given random_seed. If False, then just use zeroes.
        """
        if randomly_initialize:
            numpy.random.random_seed(random_seed)
            self.w = (numpy.random.rand(input_dimension, hidden_dimension)-0.5)/input_dimension
            self.b = numpy.zeros((1, hidden_dimension))
            self.c = numpy.zeros((1, input_dimension))
        else:
            self.w = numpy.zeros((input_dimension, hidden_dimension))
            self.b = numpy.zeros((1, hidden_dimension))
            self.c = numpy.zeros((1, input_dimension))

    def __str__(self):
        s = ""
        s += "w: %s\n" % self.w
        s += "b: %s\n" % self.b
        s += "c: %s\n" % self.c
        return s