MCPcopy Create free account
hub / github.com/buaacxf/VIPTR / __init__

Method __init__

modules/SVTR.py:201–252  ·  view source on GitHub ↗
(self,
                 dim,
                 num_heads,
                 local_rank=-1,
                 mixer='Global',
                 local_mixer=[7, 11],
                 HW=None,
                 mlp_ratio=4.,
                 qkv_bias=False,
                 qk_scale=None,
                 drop=0.,
                 attn_drop=0.,
                 drop_path=0.,
                 act_layer=nn.GELU,
                 norm_layer='nn.LayerNorm',
                 epsilon=1e-6,
                 prenorm=False)

Source from the content-addressed store, hash-verified

199
200class Block(nn.Module):
201 def __init__(self,
202 dim,
203 num_heads,
204 local_rank=-1,
205 mixer='Global',
206 local_mixer=[7, 11],
207 HW=None,
208 mlp_ratio=4.,
209 qkv_bias=False,
210 qk_scale=None,
211 drop=0.,
212 attn_drop=0.,
213 drop_path=0.,
214 act_layer=nn.GELU,
215 norm_layer='nn.LayerNorm',
216 epsilon=1e-6,
217 prenorm=False):
218 super().__init__()
219 if isinstance(norm_layer, str):
220 self.norm1 = eval(norm_layer)(dim, eps=epsilon)
221 else:
222 self.norm1 = norm_layer(dim)
223 if mixer == 'Global' or mixer == 'Local':
224 self.mixer = Attention(
225 dim,
226 local_rank=local_rank,
227 num_heads=num_heads,
228 mixer=mixer,
229 HW=HW,
230 local_k=local_mixer,
231 qkv_bias=qkv_bias,
232 qk_scale=qk_scale,
233 attn_drop=attn_drop,
234 proj_drop=drop)
235 elif mixer == 'Conv':
236 self.mixer = ConvMixer(
237 dim, num_heads=num_heads, HW=HW, local_k=local_mixer)
238 else:
239 raise TypeError("The mixer must be one of [Global, Local, Conv]")
240
241 self.drop_path = DropPath(local_rank, drop_path) if drop_path > 0. else Identity()
242 if isinstance(norm_layer, str):
243 self.norm2 = eval(norm_layer)(dim, eps=epsilon)
244 else:
245 self.norm2 = norm_layer(dim)
246 mlp_hidden_dim = int(dim * mlp_ratio)
247 self.mlp_ratio = mlp_ratio
248 self.mlp = Mlp(in_features=dim,
249 hidden_features=mlp_hidden_dim,
250 act_layer=act_layer,
251 drop=drop)
252 self.prenorm = prenorm
253
254 def forward(self, x):
255 if self.prenorm:

Callers

nothing calls this directly

Calls 6

ConvMixerClass · 0.85
DropPathClass · 0.85
IdentityClass · 0.85
MlpClass · 0.85
AttentionClass · 0.70
__init__Method · 0.45

Tested by

no test coverage detected