Skip to main content
. 2021 Nov 6;21(21):7392. doi: 10.3390/s21217392
Algorithm 1 Training Contrasitive AutoEncoder.
  • 1:

    for  epoch=1,total_epochs do

  • 2:

        for i,datainenumerate(train_loader) do

  • 3:

       Extract online triplets and ground truth.

  • 4:

       ra, rp, rn = train_loader[triplet]

  • 5:

       ea, ep, en = Encoder(ra,rp,rn)

  • 6:

       dec_ea, dec_ep, dec_en = Decoder(ea,ep,en)

  • 7:

       Compute Chamfer Loss and triplet loss.

  • 8:

       triplet_loss = compute_triplet_loss(ea,ep,en)

  • 9:

       anchor_ch = compute_chamfer(r_a,dec_ea)

  • 10:

       pos_ch = compute_chamfer(r_p,dec_ep)

  • 11:

       negative_ch = compute_chamfer(r_n,dec_en)

  • 12:

       Calculate and backpropogate the total loss.

  • 13:

       chamfer_losses = positive_ch + negative_ch + anchor_ch

  • 14:

       total_loss = triplet_loss + chamfer_losses

  • 15:

       total_loss.backward()

  • 16:

        end for

  • 17:

    end for