def __init__(self, dim, hid_dim, context_dim, num_layers, activation=nn.ELU(), fixed_order=False, num_ds_dim=4, num_ds_layers=1, num_ds_multiplier=3): super(IAF_DSF, self).__init__() self.dim = dim self.context_dim = context_dim self.num_ds_dim = num_ds_dim self.num_ds_layers = num_ds_layers if type(dim) is int: self.mdl = iaf_modules.cMADE( dim, hid_dim, context_dim, num_layers, num_ds_multiplier * (hid_dim // dim) * num_ds_layers, activation, fixed_order) self.out_to_dsparams = nn.Conv1d( num_ds_multiplier * (hid_dim // dim) * num_ds_layers, 3 * num_ds_layers * num_ds_dim, 1) self.reset_parameters() self.sf = SigmoidFlow(num_ds_dim)
def __init__(self, dim, hid_dim, context_dim, num_layers, activation=nn.ELU(), realify=nn_.sigmoid, fixed_order=False): super(IAF, self).__init__() self.realify = realify self.dim = dim self.context_dim = context_dim if type(dim) is int: self.mdl = iaf_modules.cMADE( dim, hid_dim, context_dim, num_layers, 2, activation, fixed_order) self.reset_parameters()
def __init__(self, dim, hid_dim, context_dim, num_layers, activation=nn.ELU(), fixed_order=False, num_ds_dim=4, num_ds_layers=1, num_ds_multiplier=3): super(IAF_DDSF, self).__init__() self.dim = dim self.context_dim = context_dim self.num_ds_dim = num_ds_dim self.num_ds_layers = num_ds_layers if type(dim) is int: self.mdl = iaf_modules.cMADE( dim, hid_dim, context_dim, num_layers, num_ds_multiplier * (hid_dim / dim) * num_ds_layers, activation, fixed_order) num_dsparams = 0 for i in range(num_ds_layers): if i == 0: in_dim = 1 else: in_dim = num_ds_dim if i == num_ds_layers - 1: out_dim = 1 else: out_dim = num_ds_dim u_dim = in_dim w_dim = num_ds_dim a_dim = b_dim = num_ds_dim num_dsparams += u_dim + w_dim + a_dim + b_dim self.add_module('sf{}'.format(i), DenseSigmoidFlow(in_dim, num_ds_dim, out_dim)) if type(dim) is int: self.out_to_dsparams = nn.Conv1d( num_ds_multiplier * (hid_dim / dim) * num_ds_layers, num_dsparams, 1) else: self.out_to_dsparams = nn.Conv1d( num_ds_multiplier * (hid_dim / dim[0]) * num_ds_layers, num_dsparams, 1) self.reset_parameters()
def __init__(self, dim, hid_dim, context_dim, num_layers, activation=nn.ELU(), fixed_order=True): super(IAF_VP, self).__init__() self.dim = dim self.context_dim = context_dim if type(dim) is int: self.mdl = iaf_modules.cMADE(dim, hid_dim, context_dim, num_layers, 1, activation, fixed_order) self.reset_parameters()