aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/core/util/padding.h
diff options
context:
space:
mode:
Diffstat (limited to 'tensorflow/core/util/padding.h')
-rw-r--r--tensorflow/core/util/padding.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/tensorflow/core/util/padding.h b/tensorflow/core/util/padding.h
new file mode 100644
index 0000000000..66cd96abdb
--- /dev/null
+++ b/tensorflow/core/util/padding.h
@@ -0,0 +1,37 @@
+#ifndef TENSORFLOW_UTIL_PADDING_H_
+#define TENSORFLOW_UTIL_PADDING_H_
+
+// This file contains helper routines to deal with padding in various ops and
+// kernels.
+
+#include <string>
+
+#include "tensorflow/core/framework/graph.pb.h"
+#include "tensorflow/core/public/status.h"
+
+namespace tensorflow {
+
+// Padding: the padding we apply to the input tensor along the rows and columns
+// dimensions. This is usually used to make sure that the spatial dimensions do
+// not shrink when we progress with convolutions. Two types of padding are
+// supported:
+// VALID: No padding is carried out.
+// SAME: The pad value is computed so that the output will have the same
+// dimensions as the input.
+// The padded area is zero-filled.
+enum Padding {
+ VALID = 1, // No padding.
+ SAME = 2, // Input and output layers have the same size.
+};
+
+// Return the string containing the list of valid padding types, that can be
+// used as an Attr() in REGISTER_OP.
+string GetPaddingAttrString();
+
+// Specialization to parse an attribute directly into a Padding enum.
+Status GetNodeAttr(const NodeDef& node_def, const string& attr_name,
+ Padding* value);
+
+} // end namespace tensorflow
+
+#endif // TENSORFLOW_UTIL_PADDING_H_