Deconvolution.md 1.9 KB
Newer Older
S
sunyanfang01 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
## Deconvolution


### [Deconvolution](http://caffe.berkeleyvision.org/tutorial/layers/deconvolution.html)
```
layer{
    name: "deconv"
    type: "Deconvolution"
    bottom: "data"
    top: "conv"
    #卷积核的局部学习率和权值衰减因子
    param{
	lr_mult: 1
	decay_mult: 1
    }
    #偏置项的局部学习率和权值衰减因子
    param{
	lr_mult: 2
	decay_mult: 0
    }
    convolution_param{
	num_output: 20	#必填项
	kernel_size: 3	#必填项
	stride: 1
	pad: 0
	group: 1
	bias_term: True
	weight_filler {
	    type: "gaussian"
	    value: 0.01
	}
	bias_filler {
	    type: "constant"
	    value: 0
	}
    }
}
```


### [paddle.fluid.layers.conv2d_transpose](http://paddlepaddle.org/documentation/docs/zh/1.3/api_cn/layers_cn.html#permalink-46-conv2d_transpose)
```python
paddle.fluid.layers.conv2d_transpose(
    input,
    num_filters,
    output_size,
    stride = 1,
    padding = 0,
    dilation = 1,
    groups = None,
    param_attr=None,
    bias_attr=None,
    use_cudnn=True,
    act=None,
    name=None
)
```  

### 功能差异
#### 参数初始化的差异

Caffe:第一个`param`负责设置卷积核的局部学习率和权值衰减因子,第二个`param`则负责设置偏置项的局部学习率和权值衰减因子;而卷积核和偏置项的在`convolution_param`中进行设置;是否使用偏置项可以使用`bias_term`进行设置。           
PaddlePaddle:卷积核和偏置项的多处设置均分别在一个参数——`param_attr`/`bias_attr`中完成所有操作。二者的默认值为None,而ParamAttr是一个初始化结果,其可以通过`paddle.fluid.ParamAttr(name=None, initializer=None, learning_rate=1.0, regularizer=None, trainable=True, gradient_clip=None, do_model_average=False)`获得;bias_attr同时可以是设置为布尔型,用来表示是否使用偏置项。
#### 空洞卷积的使用
Caffe:无法使用空洞卷积。                  
PaddlePaddle:使用`dilation`来设置空洞卷积。