From 80012945f935e259f84dc746bd2b82dd193cdfe7 Mon Sep 17 00:00:00 2001
From: Devashish Lohani <devashish.lohani@univ-lyon2.fr>
Date: Wed, 19 Oct 2022 13:46:40 +0000
Subject: [PATCH] Upload New File

---
 models/ae_3dconv.py | 46 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)
 create mode 100644 models/ae_3dconv.py

diff --git a/models/ae_3dconv.py b/models/ae_3dconv.py
new file mode 100644
index 0000000..43929f3
--- /dev/null
+++ b/models/ae_3dconv.py
@@ -0,0 +1,46 @@
+# baseline AE models for video data
+from __future__ import absolute_import, print_function
+import torch
+from torch import nn
+
+class AutoEncoderCov3D(nn.Module):
+    def __init__(self, chnum_in):
+        super(AutoEncoderCov3D, self).__init__()
+        self.chnum_in = chnum_in # input channel number is 1;
+        feature_num = 128
+        feature_num_2 = 96
+        feature_num_x2 = 256
+        self.encoder = nn.Sequential(
+            nn.Conv3d(self.chnum_in, feature_num_2, (3,3,3), stride=(1, 2, 2), padding=(1, 1, 1),),
+            nn.BatchNorm3d(feature_num_2),
+            nn.LeakyReLU(0.2, inplace=True),
+            nn.Conv3d(feature_num_2, feature_num, (3,3,3), stride=(2,2,2), padding=(1,1,1)),
+            nn.BatchNorm3d(feature_num),
+            nn.LeakyReLU(0.2, inplace=True),
+            nn.Conv3d(feature_num, feature_num_x2, (3,3,3), stride=(2,2,2), padding=(1,1,1)),
+            nn.BatchNorm3d(feature_num_x2),
+            nn.LeakyReLU(0.2, inplace=True),
+            nn.Conv3d(feature_num_x2, feature_num_x2, (3,3,3), stride=(2, 2, 2), padding=(1, 1, 1)),
+            nn.BatchNorm3d(feature_num_x2),
+            nn.LeakyReLU(0.2, inplace=True)
+        )
+        self.decoder = nn.Sequential(
+            nn.ConvTranspose3d(feature_num_x2, feature_num_x2, (3, 3, 3), stride=(2, 2, 2), padding=(1, 1, 1), output_padding=(1, 1, 1)),
+            nn.BatchNorm3d(feature_num_x2),
+            nn.LeakyReLU(0.2, inplace=True),
+            nn.ConvTranspose3d(feature_num_x2, feature_num, (3,3,3), stride=(2,2,2), padding=(1,1,1), output_padding=(1,1,1)),
+            nn.BatchNorm3d(feature_num),
+            nn.LeakyReLU(0.2, inplace=True),
+            nn.ConvTranspose3d(feature_num, feature_num_2, (3,3,3), stride=(2,2,2), padding=(1,1,1), output_padding=(1,1,1)),
+            nn.BatchNorm3d(feature_num_2),
+            nn.LeakyReLU(0.2, inplace=True),
+            nn.ConvTranspose3d(feature_num_2, self.chnum_in, (3,3,3), stride=(1,2,2), padding=(1,1,1), output_padding=(0,1,1))
+        )
+
+    def forward(self, x):
+        f = self.encoder(x)
+        out =f
+        #out = self.decoder(f)
+        return out
+
+
-- 
GitLab