conv、conv_transpose and pool support NHWC and asymmetric padding in MKLDNN
Created by: luotao1
背景
- Paddle之前仅部分OP支持channel_last(NHWC)格式输入。TensorFlow目前CV模型默认均为channel_last格式输入, 但支持NHWC和NCHW两种格式输入。以
fluid.layers.conv2d_transpose(input, num_filters, filter_size=None, ..., data_format='NCHW')
为例,用户通过设置data_format
参数指定输入和输出的格式。 - Padding之前涉及到Paddlnng操作的OP,如conv, pool都只支持对称的Padding方式,不支持两侧Padding size不同。
需求
- conv_mkldnn_op, conv_transpose_mkldnn_op, pool_mkldnn_op需要支持NHWC和非对称padding。
序号 | Paddle接口 | 升级功能点 | 使用建议 |
---|---|---|---|
1 | paddle.fluid.layers.pool2d(input, pool_size=-1, pool_type='max', pool_stride=1, pool_padding=0 , global_pooling=False, use_cudnn=True, ceil_mode=False, name=None, exclusive=True, data_format="NCHW" ) |
(1)pool_padding :支持非对称padding和"SAME" "VALID";(2)新增 data_format 参数,可支持NHWC格式 |
使用 data_format 指定数据格式 |
2 | paddle.fluid.layers.pool3d(input, pool_size=-1, pool_type='max', pool_stride=1, pool_padding=0 , global_pooling=False, use_cudnn=True, ceil_mode=False, name=None, exclusive=True, data_format="NCDHW" ) |
(1)pool_padding :支持非对称padding和"SAME" "VALID";(2)新增 data_format 参数,可支持NDHWC格式 |
使用 data_format 指定数据格式 |
3 | paddle.fluid.layers.conv2d(input, num_filters, filter_size, stride=1, padding=0 , dilation=1, groups=None, param_attr=None, bias_attr=None, use_cudnn=True, act=None, name=None,data_format="NCHW" ) |
(1)padding :支持非对称padding和"SAME" "VALID";(2)新增 data_format 参数,可支持NHWC格式 |
使用 data_format 指定数据格式 |
4 | paddle.fluid.layers.conv3d(input, num_filters, filter_size, stride=1, padding=0 , dilation=1, groups=None, param_attr=None, bias_attr=None, use_cudnn=True, act=None, name=None,data_format="NCDHW" ) |
(1)padding :支持非对称padding和"SAME" "VALID";(2)新增 data_format 参数,可支持NDHWC格式 |
使用 data_format 指定数据格式 |
5 | paddle.fluid.layers.conv2d_transpose(input, num_filters, filter_size, stride=1, padding=0 , dilation=1, groups=None, param_attr=None, bias_attr=None, use_cudnn=True, act=None, name=None,data_format="NCHW" ) |
1)padding :支持非对称padding和"SAME" "VALID";(2)新增 data_format 参数,可支持NDHWC格式 |
使用 data_format 指定数据格式 |
6 | paddle.fluid.layers.conv3d_transpose(input, num_filters, filter_size, stride=1, padding=0 , dilation=1, groups=None, param_attr=None, bias_attr=None, use_cudnn=True, act=None, name=None,data_format="NCDHW" ) |
(1)padding :支持非对称padding和"SAME" "VALID";(2)新增 data_format 参数,可支持NDHWC格式 |
使用 data_format 指定数据格式 |
- NHWC如果mkldnn不能支持,需要强制报错
- 在1.6.2版本 中发布此增强功能。