MCPcopy Create free account
hub / github.com/Tang1705/Baidu-Rot-Validate / EncoderBlock

Class EncoderBlock

VisionTransformer.py:102–127  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

100
101
102class EncoderBlock(nn.Module):
103 def __init__(self, in_dim, mlp_dim, num_heads, dropout_rate=0.1, attn_dropout_rate=0.1):
104 super(EncoderBlock, self).__init__()
105
106 self.norm1 = nn.LayerNorm(in_dim)
107 self.attn = SelfAttention(in_dim, heads=num_heads, dropout_rate=attn_dropout_rate)
108 if dropout_rate > 0:
109 self.dropout = nn.Dropout(dropout_rate)
110 else:
111 self.dropout = None
112 self.norm2 = nn.LayerNorm(in_dim)
113 self.mlp = MlpBlock(in_dim, mlp_dim, in_dim, dropout_rate)
114
115 def forward(self, x):
116 residual = x
117 out = self.norm1(x)
118 out = self.attn(out)
119 if self.dropout:
120 out = self.dropout(out)
121 out += residual
122 residual = out
123
124 out = self.norm2(out)
125 out = self.mlp(out)
126 out += residual
127 return out
128
129
130class Encoder(nn.Module):

Callers 1

__init__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected