Initial commit.
[pytorch.git] / ae_size.py
index 25ecc4a..067a7fa 100755 (executable)
@@ -1,5 +1,10 @@
 #!/usr/bin/env python
 
+# Any copyright is dedicated to the Public Domain.
+# https://creativecommons.org/publicdomain/zero/1.0/
+
+# Written by Francois Fleuret <francois@fleuret.org>
+
 import math
 from torch import nn
 from torch import Tensor
@@ -12,9 +17,9 @@ def minimal_input_size(w, layer_specs):
         return w
     else:
         kernel_size, stride = layer_specs[0]
-        w = math.ceil((w - kernel_size) / stride) + 1
-        w = minimal_input_size(w, layer_specs[1:])
-        return int((w - 1) * stride + kernel_size)
+        v = int(math.ceil((w - kernel_size) / stride)) + 1
+        v = minimal_input_size(v, layer_specs[1:])
+        return (v - 1) * stride + kernel_size
 
 ######################################################################
 
@@ -22,9 +27,10 @@ def minimal_input_size(w, layer_specs):
 
 if __name__ == "__main__":
 
-    layer_specs = [ (11, 5), (5, 4), (3, 2), (3, 2) ]
+    layer_specs = [ (17, 5), (5, 4), (3, 2), (3, 2) ]
 
     layers = []
+
     for kernel_size, stride in layer_specs:
         layers.append(nn.Conv2d(1, 1, kernel_size, stride))