Crop.md 1.6 KB
Newer Older
S
sunyanfang01 已提交
1 2 3 4 5 6 7 8 9 10 11
## Crop


### [Crop](http://caffe.berkeleyvision.org/tutorial/layers/crop.html)
```
layer {
    name: "crop"
    type: "Crop"
    bottom: "data1"
    bottom: "data2"
    top: “crop"
S
SunAhong1993 已提交
12
    crop_param {
S
sunyanfang01 已提交
13 14 15 16 17 18 19 20
        axis: 1
        offset: 0
        offset: 2
    }
}
```


S
SunAhong1993 已提交
21
### [paddle.fluid.layers.crop](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#permalink-51-crop)
S
sunyanfang01 已提交
22 23 24
```python
paddle.fluid.layers.crop(
    x, 
S
SunAhong1993 已提交
25 26 27
    shape=None, 
    offsets=None, 
    name=None
S
sunyanfang01 已提交
28 29 30 31
)
```  

### 功能差异
J
Jason 已提交
32
#### 输出大小
J
Jason 已提交
33 34
Caffe:输入为`data1`,裁剪的输出大小与`data2`(Variable类型)一致;              
PaddlePaddle:`shape`参数支持python list的方式传入输出大小,同时也支持`Variable`类型的输入。当`shape``Variable`类型时,用法与Caffe类似,裁剪输出大小与`shape`参数的大小一致。
J
Jason 已提交
35 36

#### 裁剪偏移量
S
sunyanfang01 已提交
37 38 39 40 41
Caffe:只需要设置需要裁剪的维度的偏移量。             
PaddlePaddle:每一个维度需要设置偏移量。
### 代码示例
```  
# Caffe示例: 
J
Jason 已提交
42 43
# data1 shape:(20,3,128,128)
# data2 shape:(20,2,64,64)
S
sunyanfang01 已提交
44 45 46 47 48 49
layer {
    name: "crop"
    type: "Crop"
    bottom: "data1"
    bottom: "data2"
    top: ”crop"
S
SunAhong1993 已提交
50
    crop_param {
S
sunyanfang01 已提交
51 52 53 54 55 56 57 58 59 60 61
        axis: 1
        offset: 0
        offset: 25
        offset: 25
    }
}
# 输出shape:(20,2,64,64)
```  
```python
# PaddlePaddle示例:  
# inputs1输入shape:(20,3,128,128)
S
SunAhong1993 已提交
62
output1 = fluid.layers.crop(x=inputs1, shape=inputs2, offsets=[0,0,25,25])
S
sunyanfang01 已提交
63
# 输出shape:(20,2,64,64)
S
SunAhong1993 已提交
64
output = fluid.layers.crop(x=inputs1, shape=[20,2,64,64], offsets=[0,0,25,25])
S
sunyanfang01 已提交
65
```