60 lines
2.1 KiB
Markdown
60 lines
2.1 KiB
Markdown
|
---
|
||
|
title: Inner Product / Fully Connected Layer
|
||
|
---
|
||
|
|
||
|
# Inner Product / Fully Connected Layer
|
||
|
|
||
|
* Layer type: `InnerProduct`
|
||
|
* [Doxygen Documentation](http://caffe.berkeleyvision.org/doxygen/classcaffe_1_1InnerProductLayer.html)
|
||
|
* Header: [`./include/caffe/layers/inner_product_layer.hpp`](https://github.com/BVLC/caffe/blob/master/include/caffe/layers/inner_product_layer.hpp)
|
||
|
* CPU implementation: [`./src/caffe/layers/inner_product_layer.cpp`](https://github.com/BVLC/caffe/blob/master/src/caffe/layers/inner_product_layer.cpp)
|
||
|
* CUDA GPU implementation: [`./src/caffe/layers/inner_product_layer.cu`](https://github.com/BVLC/caffe/blob/master/src/caffe/layers/inner_product_layer.cu)
|
||
|
|
||
|
* Input
|
||
|
- `n * c_i * h_i * w_i`
|
||
|
* Output
|
||
|
- `n * c_o * 1 * 1`
|
||
|
* Sample
|
||
|
|
||
|
layer {
|
||
|
name: "fc8"
|
||
|
type: "InnerProduct"
|
||
|
# learning rate and decay multipliers for the weights
|
||
|
param { lr_mult: 1 decay_mult: 1 }
|
||
|
# learning rate and decay multipliers for the biases
|
||
|
param { lr_mult: 2 decay_mult: 0 }
|
||
|
inner_product_param {
|
||
|
num_output: 1000
|
||
|
weight_filler {
|
||
|
type: "gaussian"
|
||
|
std: 0.01
|
||
|
}
|
||
|
bias_filler {
|
||
|
type: "constant"
|
||
|
value: 0
|
||
|
}
|
||
|
}
|
||
|
bottom: "fc7"
|
||
|
top: "fc8"
|
||
|
}
|
||
|
|
||
|
The `InnerProduct` layer (also usually referred to as the fully connected layer) treats the input as a simple vector and produces an output in the form of a single vector (with the blob's height and width set to 1).
|
||
|
|
||
|
|
||
|
## Parameters
|
||
|
|
||
|
* Parameters (`InnerProductParameter inner_product_param`)
|
||
|
- Required
|
||
|
- `num_output` (`c_o`): the number of filters
|
||
|
- Strongly recommended
|
||
|
- `weight_filler` [default `type: 'constant' value: 0`]
|
||
|
- Optional
|
||
|
- `bias_filler` [default `type: 'constant' value: 0`]
|
||
|
- `bias_term` [default `true`]: specifies whether to learn and apply a set of additive biases to the filter outputs
|
||
|
* From [`./src/caffe/proto/caffe.proto`](https://github.com/BVLC/caffe/blob/master/src/caffe/proto/caffe.proto):
|
||
|
|
||
|
{% highlight Protobuf %}
|
||
|
{% include proto/InnerProductParameter.txt %}
|
||
|
{% endhighlight %}
|
||
|
|