summaryrefslogtreecommitdiff
path: root/docs/tutorial/layers/reshape.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/tutorial/layers/reshape.md')
-rw-r--r--docs/tutorial/layers/reshape.md51
1 files changed, 51 insertions, 0 deletions
diff --git a/docs/tutorial/layers/reshape.md b/docs/tutorial/layers/reshape.md
new file mode 100644
index 00000000..92d23f2c
--- /dev/null
+++ b/docs/tutorial/layers/reshape.md
@@ -0,0 +1,51 @@
+---
+title: Reshape Layer
+---
+
+# Reshape Layer
+* Layer type: `Reshape`
+* [Doxygen Documentation](http://caffe.berkeleyvision.org/doxygen/classcaffe_1_1ReshapeLayer.html)
+* Header: [`./include/caffe/layers/reshape_layer.hpp`](https://github.com/BVLC/caffe/blob/master/include/caffe/layers/reshape_layer.hpp)
+* Implementation: [`./src/caffe/layers/reshape_layer.cpp`](https://github.com/BVLC/caffe/blob/master/src/caffe/layers/reshape_layer.cpp)
+
+* Input
+ - a single blob with arbitrary dimensions
+* Output
+ - the same blob, with modified dimensions, as specified by `reshape_param`
+
+* Sample
+
+ layer {
+ name: "reshape"
+ type: "Reshape"
+ bottom: "input"
+ top: "output"
+ reshape_param {
+ shape {
+ dim: 0 # copy the dimension from below
+ dim: 2
+ dim: 3
+ dim: -1 # infer it from the other dimensions
+ }
+ }
+ }
+
+The `Reshape` layer can be used to change the dimensions of its input, without changing its data. Just like the `Flatten` layer, only the dimensions are changed; no data is copied in the process.
+
+Output dimensions are specified by the `ReshapeParam` proto. Positive numbers are used directly, setting the corresponding dimension of the output blob. In addition, two special values are accepted for any of the target dimension values:
+
+* **0** means "copy the respective dimension of the bottom layer". That is, if the bottom has 2 as its 1st dimension, the top will have 2 as its 1st dimension as well, given `dim: 0` as the 1st target dimension.
+* **-1** stands for "infer this from the other dimensions". This behavior is similar to that of -1 in *numpy*'s or `[]` for *MATLAB*'s reshape: this dimension is calculated to keep the overall element count the same as in the bottom layer. At most one -1 can be used in a reshape operation.
+
+As another example, specifying `reshape_param { shape { dim: 0 dim: -1 } }` makes the layer behave in exactly the same way as the `Flatten` layer.
+
+## Parameters
+
+* Parameters (`ReshapeParameter reshape_param`)
+ - Optional: (also see detailed description below)
+ - `shape`
+* From [`./src/caffe/proto/caffe.proto`](https://github.com/BVLC/caffe/blob/master/src/caffe/proto/caffe.proto):
+
+{% highlight Protobuf %}
+{% include proto/ReshapeParameter.txt %}
+{% endhighlight %}