• 复杂网络
    • 1.simple_img_conv_pool
    • 2.img_conv_group
    • 3.sequence_conv_pool
    • 4.glu
    • 5.scaled_dot_product_attention

    复杂网络

    在处理复杂功能时,我们通常需要写大量的代码来构建复杂的 神经网络 。因此,为了方便用户更加容易地搭建复杂网络模型,我们提供了一些比较常用的基本函数模块,以此来简化用户的代码量,从而降低开发成本。这些模块通常是由细粒度的函数根据一定的逻辑拼接组合而成,实现代码请参考 nets.py 。

    1.simple_img_conv_pool

    simple_img_conv_pool 是由 conv2d 与 pool2d 串联而成。该模块在图像分类模型中广泛使用,比如应用在 MNIST 数字分类的问题。

    API Reference 请参考 simple_img_conv_pool

    2.img_conv_group

    img_conv_group 是由 conv2d , batch_norm, dropout 和 pool2d 组成。该模块可以实现多个 conv2d , batch_norm 和 dropout 的串联单元与一个 pool2d 的组合。其中, conv2d , batch_norm 和 dropout 的数量都可以分别控制,从而得到多样的组合。该模块广泛使用在比较复杂的图像分类任务中,比如 VGG 。

    API Reference 请参考 img_conv_group

    3.sequence_conv_pool

    sequence_conv_pool 是由 sequence_conv 与 sequence_pool 串联而成。该模块在 自然语言处理 以及 语音识别 等领域均有广泛应用,比如 文本分类模型 ,TagSpace 以及Multi-view Simnet 等模型。

    API Reference 请参考 sequence_conv_pool

    4.glu

    glu 全称 Gated Linear Units, 来源于论文 Language Modeling with Gated Convolutional Networks ,由 split , sigmoid 和 elementwise_mul 组成。它会把输入数据均分为2等份,并对第二部分求 Sigmoid , 然后再与第一部分数据求点乘得到输出。

    API Reference 请参考 glu

    5.scaled_dot_product_attention

    scaled_dot_product_attention 来源于论文 Attention Is All You Need ,主要是由 fc 和 softmax 组成。对于输入数据 Queries , KeyValues 按照如下公式求出 Attention

    复杂网络 - 图1

    该模块广泛使用在 机器翻译 的模型中,比如 Transformer 。

    API Reference 请参考 scaled_dot_product_attention