Source code for towhee.models.perceiver.create_self_attention_block

# original code from https://github.com/krasserm/perceiver-io
# modified by Zilliz


from towhee.models.perceiver.create_self_attention import create_self_attention
from towhee.models.perceiver.sequential import Sequential


[docs]def create_self_attention_block( num_layers: int, num_channels: int, num_heads: int, dropout: float, activation_checkpoint: bool = False ): """ Self attention block for Perceiver https://arxiv.org/pdf/2103.03206.pdf. Args: num_layers (`int`): Number of layers. num_channels (`int`): Number of channels. num_heads (`int`): Number of parallel attention heads. dropout (`nn.Module`): Dropout probability. activation_checkpoint (`bool`): Use activation checkpointing. """ layers = [create_self_attention(num_channels, num_heads, dropout, activation_checkpoint) for _ in range(num_layers)] return Sequential(*layers)