summaryrefslogtreecommitdiff
path: root/include/caffe/vision_layers.hpp
diff options
context:
space:
mode:
authorJonathan L Long <jonlong@cs.berkeley.edu>2015-01-27 10:45:41 -0800
committerJonathan L Long <jonlong@cs.berkeley.edu>2015-01-27 13:17:50 -0800
commit408133ce4139a95960577e8d36daa16e9dd9e03a (patch)
treee50ea2dfe717b04fecffcd31ce3461b4cc1491d1 /include/caffe/vision_layers.hpp
parent3617352124ab97154d37534e4ba30d7a2b9b6d2f (diff)
downloadcaffeonacl-408133ce4139a95960577e8d36daa16e9dd9e03a.tar.gz
caffeonacl-408133ce4139a95960577e8d36daa16e9dd9e03a.tar.bz2
caffeonacl-408133ce4139a95960577e8d36daa16e9dd9e03a.zip
document DeconvolutionLayer
Diffstat (limited to 'include/caffe/vision_layers.hpp')
-rw-r--r--include/caffe/vision_layers.hpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/include/caffe/vision_layers.hpp b/include/caffe/vision_layers.hpp
index 646378de..fc178e4c 100644
--- a/include/caffe/vision_layers.hpp
+++ b/include/caffe/vision_layers.hpp
@@ -16,6 +16,10 @@
namespace caffe {
+/**
+ * @brief Abstract base class that factors out the BLAS code common to
+ * ConvolutionLayer and DeconvolutionLayer.
+ */
template <typename Dtype>
class BaseConvolutionLayer : public Layer<Dtype> {
public:
@@ -173,6 +177,20 @@ class ConvolutionLayer : public BaseConvolutionLayer<Dtype> {
virtual void compute_output_shape();
};
+/**
+ * @brief Convolve the input with a bank of learned filters, and (optionally)
+ * add biases, treating filters and convolution parameters in the
+ * opposite sense as ConvolutionLayer.
+ *
+ * ConvolutionLayer computes each output value by dotting an input window with
+ * a filter; DeconvolutionLayer multiplies each input value by a filter
+ * elementwise, and sums over the resulting output windows. In other words,
+ * DeconvolutionLayer is ConvolutionLayer with the forward and backward passes
+ * reversed. DeconvolutionLayer reuses ConvolutionParameter for its
+ * parameters, but they take the opposite sense as in ConvolutionLayer (so
+ * padding is removed from the output rather than added to the input, and
+ * stride results in upsampling rather than downsampling).
+ */
template <typename Dtype>
class DeconvolutionLayer : public BaseConvolutionLayer<Dtype> {
public: