MCPcopy Create free account
hub / github.com/ZhengPeng7/BiRefNet / __init__

Method __init__

models/modules/deform_conv.py:7–48  ·  view source on GitHub ↗
(self,
                 in_channels,
                 out_channels,
                 kernel_size=3,
                 stride=1,
                 padding=1,
                 bias=False)

Source from the content-addressed store, hash-verified

5
6class DeformableConv2d(nn.Module):
7 def __init__(self,
8 in_channels,
9 out_channels,
10 kernel_size=3,
11 stride=1,
12 padding=1,
13 bias=False):
14
15 super(DeformableConv2d, self).__init__()
16
17 assert type(kernel_size) == tuple or type(kernel_size) == int
18
19 kernel_size = kernel_size if type(kernel_size) == tuple else (kernel_size, kernel_size)
20 self.stride = stride if type(stride) == tuple else (stride, stride)
21 self.padding = padding
22
23 self.offset_conv = nn.Conv2d(in_channels,
24 2 * kernel_size[0] * kernel_size[1],
25 kernel_size=kernel_size,
26 stride=stride,
27 padding=self.padding,
28 bias=True)
29
30 nn.init.constant_(self.offset_conv.weight, 0.)
31 nn.init.constant_(self.offset_conv.bias, 0.)
32
33 self.modulator_conv = nn.Conv2d(in_channels,
34 1 * kernel_size[0] * kernel_size[1],
35 kernel_size=kernel_size,
36 stride=stride,
37 padding=self.padding,
38 bias=True)
39
40 nn.init.constant_(self.modulator_conv.weight, 0.)
41 nn.init.constant_(self.modulator_conv.bias, 0.)
42
43 self.regular_conv = nn.Conv2d(in_channels,
44 out_channels=out_channels,
45 kernel_size=kernel_size,
46 stride=stride,
47 padding=self.padding,
48 bias=bias)
49
50 def forward(self, x):
51 #h, w = x.shape[2:]

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected