summaryrefslogtreecommitdiff
path: root/models/auto_encoder.py
diff options
context:
space:
mode:
authorJordan Gong <jordan.gong@protonmail.com>2021-03-05 20:08:22 +0800
committerJordan Gong <jordan.gong@protonmail.com>2021-03-05 20:08:22 +0800
commit06e9a53673fb193f8287d9d9b95463a5d1b044bb (patch)
treea9ba1f37ee3688beee21864616d9b672f1e76d9d /models/auto_encoder.py
parentecb8d8d750cd4a81494feb5dcb582641f73d67ff (diff)
Calculate losses outside modules
Diffstat (limited to 'models/auto_encoder.py')
-rw-r--r--models/auto_encoder.py15
1 files changed, 3 insertions, 12 deletions
diff --git a/models/auto_encoder.py b/models/auto_encoder.py
index e6a3e60..0694ff1 100644
--- a/models/auto_encoder.py
+++ b/models/auto_encoder.py
@@ -151,27 +151,18 @@ class AutoEncoder(nn.Module):
x_c1_t2_pred_ = self.decoder(f_a_c1_t1_, f_c_c1_t1_, f_p_c1_t2_)
x_c1_t2_pred = x_c1_t2_pred_.view(n, t, c, h, w)
- xrecon_loss = torch.stack([
- F.mse_loss(x_c1_t2[:, i, :, :, :], x_c1_t2_pred[:, i, :, :, :])
- for i in range(t)
- ]).sum()
-
f_c_c1_t1 = f_c_c1_t1_.view(n, t, -1)
f_c_c1_t2 = f_c_c1_t2_.view(n, t, -1)
f_c_c2_t2 = f_c_c2_t2_.view(n, t, -1)
- cano_cons_loss = torch.stack([
- F.mse_loss(f_c_c1_t1[:, i, :], f_c_c1_t2[:, i, :])
- + F.mse_loss(f_c_c1_t2[:, i, :], f_c_c2_t2[:, i, :])
- for i in range(t)
- ]).mean()
f_p_c1_t2 = f_p_c1_t2_.view(n, t, -1)
f_p_c2_t2 = f_p_c2_t2_.view(n, t, -1)
- pose_sim_loss = F.mse_loss(f_p_c1_t2.mean(1), f_p_c2_t2.mean(1))
return (
(f_a_c1_t2_, f_c_c1_t2_, f_p_c1_t2_),
- torch.stack((xrecon_loss, cano_cons_loss, pose_sim_loss * 10))
+ (x_c1_t2_pred,
+ (f_c_c1_t1, f_c_c1_t2, f_c_c2_t2),
+ (f_p_c1_t2, f_p_c2_t2))
)
else: # evaluating
return f_c_c1_t2_, f_p_c1_t2_