In [1]:
def unpack_maybe_tuple(x):
if hasattr(x, '__getitem__'):
return x
return (x, x)
In [2]:
def out_size(in_size, k, stride=1, pad=0):
in_h, in_w = unpack_maybe_tuple(in_size)
k_h, k_w = unpack_maybe_tuple(k)
s_h, s_w = unpack_maybe_tuple(stride)
p_h, p_w = unpack_maybe_tuple(pad)
out_w = (in_w + 2 * p_w - k_w) / s_w + 1
out_h = (in_h + 2 * p_h - k_h) / s_h + 1
return (out_h, out_w)
In [3]:
in_size = (96, 192)
In [4]:
c1 = out_size(in_size, 11, stride=3, pad=1)
print(c1)
In [64]:
p1 = out_size(c1, (3, 5), stride=2)
print(p1)
In [65]:
c2 = out_size(p1, (1, 2), stride=(1, 2))
print(c2)
In [66]:
c3 = out_size(c2, 5, stride=2, pad=1)
print(c3)
In [67]:
p3 = out_size(c3, 3, stride=2, pad=1)
print(p3)
In [68]:
c4 = out_size(p3, 3, pad=1)
print(c4)
In [69]:
c5 = out_size(c4, 3, stride=2, pad=1)
print(c5)
In [70]:
c6 = out_size(c5, 2)
print(c6)