Exemplo n.º 1
0
encA = EncoderA(args.wseed, zShared_dim=args.n_shared)
decA = DecoderA(args.wseed, zShared_dim=args.n_shared)
encB = EncoderB(args.wseed, zShared_dim=args.n_shared)
decB = DecoderB(args.wseed, zShared_dim=args.n_shared)
if CUDA:
    encA.cuda()
    decA.cuda()
    encB.cuda()
    decB.cuda()
    cuda_tensors(encA)
    cuda_tensors(decA)
    cuda_tensors(encB)
    cuda_tensors(decB)

optimizer = torch.optim.Adam(
    list(encB.parameters()) + list(decB.parameters()) + list(encA.parameters()) + list(decA.parameters()),
    lr=args.lr)


#
# def elbo(q, pA, pB, lamb=1.0, annealing_factor=1.0):
#     muA_own = q['sharedA'].dist.loc.squeeze(0)
#     stdA_own = q['sharedA'].dist.scale.squeeze(0)
#     muB_own = q['sharedB'].dist.loc.squeeze(0)
#     stdB_own = q['sharedB'].dist.scale.squeeze(0)
#
#     # from each of modality
#     reconst_loss_A = pA['images_own'].loss.mean()
#     kl_A = 0.5 * torch.sum(1 + torch.log(stdA_own ** 2 + EPS) - muA_own ** 2 - stdA_own ** 2,
#                            dim=1).mean()
#
Exemplo n.º 2
0
encA = EncoderA(args.wseed, zPrivate_dim=args.n_private)
decA = DecoderA(args.wseed, zPrivate_dim=args.n_private)
encB = EncoderB(args.wseed)
decB = DecoderB(args.wseed)
if CUDA:
    encA.cuda()
    decA.cuda()
    encB.cuda()
    decB.cuda()
    cuda_tensors(encA)
    cuda_tensors(decA)
    cuda_tensors(encB)
    cuda_tensors(decB)

optimizer = torch.optim.Adam(list(encB.parameters()) +
                             list(decB.parameters()) +
                             list(encA.parameters()) + list(decA.parameters()),
                             lr=args.lr)


def elbo(q,
         pA,
         pB,
         lamb=1.0,
         beta1=(1.0, 1.0, 1.0),
         beta2=(1.0, 1.0, 1.0),
         bias=1.0):
    # from each of modality
    reconst_loss_A, kl_A = probtorch.objectives.mws_tcvae.elbo(
        q,