コード例 #1
0
 def __call__(self, var):
     dot_output = BF.dot(self.w, var, reduce=False) + self.b
     output = var + self.u*BF.sigmoid(dot_output)
     d_sigmoid = lambda x: BF.sigmoid(x)*(1. - BF.sigmoid(x))
     psy = d_sigmoid(dot_output)*self.w
     log_det = -BF.log(BF.abs(1. + BF.dot(self.u, psy)) + self.shift)
     return DeterministicVariable(output,
                                  log_determinant=log_det,
                                  name="PlanarFlow {}".format(var.name))
コード例 #2
0
 def __init__(self, scale, jitter=0.):
     self.scale = var2link(scale)
     covariance = lambda x, y: BF.exp(-BF.abs(x - y) /
                                      (scale)) + BF.delta(x, y) * jitter
     super().__init__(covariance=covariance)
コード例 #3
0
 def __call__(self, var):
     output = BF.matmul(self.tri_matrix, var)
     log_det = -BF.sum(BF.log(BF.abs(self.tri_matrix[:, self.diag_indices[0], self.diag_indices[1]]) + self.shift), axis=1)
     return DeterministicVariable(output,
                                  log_determinant=log_det,
                                  name="L {}".format(var.name))
コード例 #4
0
 def __call__(self, var):
     return DeterministicVariable(self.s*var,
                                  log_determinant=-BF.log(BF.abs(DeterministicVariable(self.s,
                                                                                       learnable=self.learnable,
                                                                                       name="{}_scale".format(var.name)))),
                                  name="{}*{}".format(self.s, var.name))