MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / get_conv_output_size

Function get_conv_output_size

tensorflow/python/framework/common_shapes.py:118–157  ·  view source on GitHub ↗

Returns the spatial size of a n-d convolution/pooling output.

(input_size, filter_size, strides, padding_type)

Source from the content-addressed store, hash-verified

116
117
118def get_conv_output_size(input_size, filter_size, strides, padding_type):
119 """Returns the spatial size of a n-d convolution/pooling output."""
120 input_size = tuple([tensor_shape.as_dimension(x).value for x in input_size])
121 filter_size = tuple([tensor_shape.as_dimension(x).value for x in filter_size])
122 strides = [int(x) for x in strides]
123
124 if all(x == 1 for x in input_size) and all(x == 1 for x in filter_size):
125 return input_size
126
127 if any(x is not None and y is not None and x > y for x, y in
128 zip(filter_size, input_size)):
129 raise ValueError("Filter must not be larger than the input: "
130 "Filter: %r Input: %r" % (filter_size, input_size))
131
132 if padding_type == b"VALID":
133
134 def _valid(in_dim, k_dim, s_dim):
135 if in_dim is not None and k_dim is not None:
136 return (in_dim - k_dim + s_dim) // s_dim
137 else:
138 return None
139
140 output_size = [
141 _valid(in_dim, k_dim, s_dim)
142 for in_dim, k_dim, s_dim in zip(input_size, filter_size, strides)
143 ]
144 elif padding_type == b"SAME":
145
146 def _same(in_dim, s_dim):
147 if in_dim is not None:
148 return (in_dim + s_dim - 1) // s_dim
149 else:
150 return None
151
152 output_size = [_same(in_dim, s_dim)
153 for in_dim, s_dim in zip(input_size, strides)]
154 else:
155 raise ValueError("Invalid padding: %r" % padding_type)
156
157 return tuple(output_size)
158
159
160def get2d_conv_output_size(input_height, input_width, filter_height,

Callers 1

get2d_conv_output_sizeFunction · 0.85

Calls 5

tupleFunction · 0.85
allFunction · 0.85
anyFunction · 0.85
_validFunction · 0.85
_sameFunction · 0.85

Tested by

no test coverage detected