    def __init__(self,
                 ch_in,
                 ch_out,
                 name,
                 drop_block=False,
                 block_size=3,
                 keep_prob=1.0,
                 data_format='NCHW'):
        """
        PPYOLO Tiny DetBlock layer
        Args:
            ch_in (list): input channel number
            ch_out (list): output channel number
            name (str): block name
            drop_block: whether user DropBlock
            block_size: drop block size
            keep_prob: probability to keep block in DropBlock
            data_format (str): data format, NCHW or NHWC
        """
        super(PPYOLOTinyDetBlock, self).__init__()
        self.drop_block_ = drop_block
        self.conv_module = nn.Sequential()

        cfgs = [
            # name, in channels, out channels, filter_size,
            # stride, padding, groups
            ['_0', ch_in, ch_out, 1, 1, 0, 1],
            ['_1', ch_out, ch_out, 5, 1, 2, ch_out],
            ['_', ch_out, ch_out, 1, 1, 0, 1],
            ['_route', ch_out, ch_out, 5, 1, 2, ch_out],
        ]
        for cfg in cfgs:
            conv_name, conv_ch_in, conv_ch_out, filter_size, stride, padding, \
                    groups = cfg
            # self.conv_module.add_sublayer(
            #     name + conv_name,
            #     ConvBNLayer(
            #         ch_in=conv_ch_in,
            #         ch_out=conv_ch_out,
            #         filter_size=filter_size,
            #         stride=stride,
            #         padding=padding,
            #         groups=groups,
            #         name=name + conv_name))
            self.conv_module.add_module(name + conv_name,
                                        ConvBNLayer(
                                            ch_in=conv_ch_in,
                                            ch_out=conv_ch_out,
                                            filter_size=filter_size,
                                            stride=stride,
                                            padding=padding,
                                            groups=groups,
                                            name=name + conv_name)
                                        )

        self.tip = ConvBNLayer(
            ch_in=ch_out,
            ch_out=ch_out,
            filter_size=1,
            stride=1,
            padding=0,
            groups=1,
            name=name + conv_name)

        if self.drop_block_:
            self.drop_block = DropBlock(
                block_size=block_size,
                keep_prob=keep_prob,
                data_format=data_format,
                name=name + '_dropblock')
PPYOLO Tiny DetBlock layer
Args:
ch_in (list): input channel number
ch_out (list): output channel number
name (str): block name
drop_block: whether user DropBlock
block_size: drop block size
keep_prob: probability to keep block in DropBlock
data_format (str): data format, NCHW or NHWC
ptstructure/layout/ptppyolov2/ppyolov2_yolo_fpn.py