def __init__(self, **hyper_params): super(NADE, self).__init__() self.register_hyper_param('n_X', help='no. observed binary variables') self.register_hyper_param('n_Y', help='no. conditioning binary variables') self.register_hyper_param('n_hid', help='no. latent binary variables') self.register_hyper_param('unroll_scan', default=1) self.register_model_param('b', help='visible bias', default=lambda: np.zeros(self.n_X)) self.register_model_param('c', help='hidden bias', default=lambda: np.zeros(self.n_hid)) self.register_model_param( 'Ub', help='cond. weights Ub', default=lambda: default_weights(self.n_Y, self.n_X)) self.register_model_param( 'Uc', help='cond. weights Uc', default=lambda: default_weights(self.n_Y, self.n_hid)) self.register_model_param( 'W', help='encoder weights', default=lambda: default_weights(self.n_X, self.n_hid)) self.register_model_param( 'V', help='decoder weights', default=lambda: default_weights(self.n_hid, self.n_X)) self.set_hyper_params(hyper_params)
def __init__(self, **hyper_params): super(DSBN, self).__init__() self.register_hyper_param('n_X', help='no. lower-layer binary variables') self.register_hyper_param('n_Y', help='no. upper-layer binary variables') self.register_hyper_param('n_D', help='no. deterministic units') self.register_hyper_param('non_lin', default='sigmoid', help="nonlinearity for deterministic layer") # Sigmoid Belief Layer self.register_model_param('a', help='deterministic bias', default=lambda: -np.ones(self.n_D)) self.register_model_param( 'U', help='deterministic weights', default=lambda: default_weights(self.n_Y, self.n_D)) self.register_model_param('b', help='stochastic bias', default=lambda: -np.ones(self.n_X)) self.register_model_param( 'W', help='stochastic weights', default=lambda: default_weights(self.n_D, self.n_X)) self.set_hyper_params(hyper_params)
def __init__(self, **hyper_params): super(NADETop, self).__init__() self.register_hyper_param('n_X', help='no. observed binary variables') self.register_hyper_param('n_hid', help='no. latent binary variables') self.register_hyper_param('unroll_scan', default=1) self.register_model_param('b', help='visible bias', default=lambda: np.zeros(self.n_X)) self.register_model_param('c', help='hidden bias' , default=lambda: np.zeros(self.n_hid)) self.register_model_param('W', help='encoder weights', default=lambda: default_weights(self.n_X, self.n_hid) ) self.register_model_param('V', help='decoder weights', default=lambda: default_weights(self.n_hid, self.n_X) ) self.set_hyper_params(hyper_params)
def __init__(self, **hyper_params): super(DARN, self).__init__() # Hyper parameters self.register_hyper_param('n_X', help='no. binary variables') self.register_hyper_param('n_Y', help='no. conditioning binary variables') self.register_hyper_param('unroll_scan', default=1) # Model parameters self.register_model_param('b', help='sigmoid(b)-bias ', default=lambda: np.zeros(self.n_X)) self.register_model_param('W', help='weights (triangular)', default=lambda: default_weights(self.n_X, self.n_X) ) self.register_model_param('U', help='cond. weights U', default=lambda: default_weights(self.n_Y, self.n_X) ) self.set_hyper_params(hyper_params)
def __init__(self, **hyper_params): super(DiagonalGaussian, self).__init__() self.register_hyper_param('n_X', help='no. lower-layer binary variables') self.register_hyper_param('n_Y', help='no. upper-layer binary variables') self.register_hyper_param('n_hid', help='no. hidden variables') self.register_hyper_param('log_sigma2_min', help='log(sigma**2) cutoff', default=-np.inf) self.register_hyper_param('final_tanh', help='', default=False) self.register_hyper_param('initial_tanh', help='', default=False) self.set_hyper_params(hyper_params) # sanitize hyper params if isinstance(self.n_hid, int): self.n_hid = (self.n_hid, ) if isinstance(self.n_hid, list): self.n_hid = tuple(self.n_hid) self.n_layers = len(self.n_hid) hidden_size = self.n_hid + (self.n_Y, ) for i in reversed(xrange(self.n_layers)): W_name = "W%d" % i b_name = "b%d" % i n_upper = hidden_size[i + 1] n_lower = hidden_size[i] def create_W_init(n_upper, n_lower): return lambda: default_weights(n_upper, n_lower) def create_b_init(n_lower): return lambda: np.zeros(n_lower) self.register_model_param(W_name, default=create_W_init(n_upper, n_lower)) self.register_model_param(b_name, default=create_b_init(n_lower)) # lowers layer parametrization... higher layers will be parameterized in self.setup() self.register_model_param( 'W_mu', default=lambda: default_weights(hidden_size[0], self.n_X)) self.register_model_param( 'W_ls', default=lambda: default_weights(hidden_size[0], self.n_X)) self.register_model_param('b_mu', default=lambda: np.zeros(self.n_X)) self.register_model_param('b_ls', default=lambda: np.zeros(self.n_X))
def __init__(self, **hyper_params): super(DSBN, self).__init__() self.register_hyper_param('n_X', help='no. lower-layer binary variables') self.register_hyper_param('n_Y', help='no. upper-layer binary variables') self.register_hyper_param('n_D', help='no. deterministic units') self.register_hyper_param('non_lin', default='sigmoid', help="nonlinearity for deterministic layer") # Sigmoid Belief Layer self.register_model_param('a', help='deterministic bias', default=lambda: -np.ones(self.n_D)) self.register_model_param('U', help='deterministic weights', default=lambda: default_weights(self.n_Y, self.n_D) ) self.register_model_param('b', help='stochastic bias', default=lambda: -np.ones(self.n_X)) self.register_model_param('W', help='stochastic weights', default=lambda: default_weights(self.n_D, self.n_X) ) self.set_hyper_params(hyper_params)
def __init__(self, **hyper_params): super(SBN, self).__init__() self.register_hyper_param('n_X', help='no. lower-layer binary variables') self.register_hyper_param('n_Y', help='no. upper-layer binary variables') # Sigmoid Belief Layer self.register_model_param('b', help='P lower-layer bias', default=lambda: -np.ones(self.n_X)) self.register_model_param('W', help='P weights', default=lambda: default_weights(self.n_Y, self.n_X) ) self.set_hyper_params(hyper_params)
def __init__(self, **hyper_params): super(DARN, self).__init__() # Hyper parameters self.register_hyper_param('n_X', help='no. binary variables') self.register_hyper_param('n_Y', help='no. conditioning binary variables') self.register_hyper_param('unroll_scan', default=1) # Model parameters self.register_model_param('b', help='sigmoid(b)-bias ', default=lambda: np.zeros(self.n_X)) self.register_model_param( 'W', help='weights (triangular)', default=lambda: default_weights(self.n_X, self.n_X)) self.register_model_param( 'U', help='cond. weights U', default=lambda: default_weights(self.n_Y, self.n_X)) self.set_hyper_params(hyper_params)
def __init__(self, **hyper_params): super(GibbsSBN, self).__init__() # Hyper parameters self.register_hyper_param('n_X', help='no. lower-layer binary variables') self.register_hyper_param('n_Y', help='no. upper-layer binary variables') self.register_hyper_param('unroll_scan', default=1) # Model parameters self.register_model_param('b', help='P lower-layer bias', default=lambda: -np.ones(self.n_X)) self.register_model_param( 'W', help='P weights', default=lambda: default_weights(self.n_Y, self.n_X)) self.set_hyper_params(hyper_params)
def create_W_init(n_upper, n_lower): return lambda: default_weights(n_upper, n_lower)