--- title: Concat Layer --- # Concat Layer * Layer type: `Concat` * [Doxygen Documentation](http://caffe.berkeleyvision.org/doxygen/classcaffe_1_1ConcatLayer.html) * Header: [`./include/caffe/layers/concat_layer.hpp`](https://github.com/BVLC/caffe/blob/master/include/caffe/layers/concat_layer.hpp) * CPU implementation: [`./src/caffe/layers/concat_layer.cpp`](https://github.com/BVLC/caffe/blob/master/src/caffe/layers/concat_layer.cpp) * CUDA GPU implementation: [`./src/caffe/layers/concat_layer.cu`](https://github.com/BVLC/caffe/blob/master/src/caffe/layers/concat_layer.cu) * Input - `n_i * c_i * h * w` for each input blob i from 1 to K. * Output - if `axis = 0`: `(n_1 + n_2 + ... + n_K) * c_1 * h * w`, and all input `c_i` should be the same. - if `axis = 1`: `n_1 * (c_1 + c_2 + ... + c_K) * h * w`, and all input `n_i` should be the same. * Sample layer { name: "concat" bottom: "in1" bottom: "in2" top: "out" type: "Concat" concat_param { axis: 1 } } The `Concat` layer is a utility layer that concatenates its multiple input blobs to one single output blob. ## Parameters * Parameters (`ConcatParameter concat_param`) - Optional - `axis` [default 1]: 0 for concatenation along num and 1 for channels. * From [`./src/caffe/proto/caffe.proto`](https://github.com/BVLC/caffe/blob/master/src/caffe/proto/caffe.proto)): {% highlight Protobuf %} {% include proto/ConcatParameter.txt %} {% endhighlight %}