Safemotion Lib
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
fastreid.modeling.backbones.resnest.Bottleneck Class Reference
Inheritance diagram for fastreid.modeling.backbones.resnest.Bottleneck:

Public Member Functions

 __init__ (self, inplanes, planes, bn_norm, with_ibn=False, stride=1, downsample=None, radix=1, cardinality=1, bottleneck_width=64, avd=False, avd_first=False, dilation=1, is_first=False, rectified_conv=False, rectify_avg=False, dropblock_prob=0.0, last_gamma=False)
 
 forward (self, x)
 

Public Attributes

 conv1
 
 bn1
 
 dropblock_prob
 
 radix
 
 avd
 
 avd_first
 
 avd_layer
 
 conv2
 
 bn2
 
 conv3
 
 bn3
 
 relu
 
 downsample
 
 dilation
 
 stride
 

Static Public Attributes

int expansion = 4
 

Detailed Description

ResNet Bottleneck

Definition at line 43 of file resnest.py.

Constructor & Destructor Documentation

◆ __init__()

fastreid.modeling.backbones.resnest.Bottleneck.__init__ ( self,
inplanes,
planes,
bn_norm,
with_ibn = False,
stride = 1,
downsample = None,
radix = 1,
cardinality = 1,
bottleneck_width = 64,
avd = False,
avd_first = False,
dilation = 1,
is_first = False,
rectified_conv = False,
rectify_avg = False,
dropblock_prob = 0.0,
last_gamma = False )

Definition at line 49 of file resnest.py.

53 dropblock_prob=0.0, last_gamma=False):
54 super(Bottleneck, self).__init__()
55 group_width = int(planes * (bottleneck_width / 64.)) * cardinality
56 self.conv1 = nn.Conv2d(inplanes, group_width, kernel_size=1, bias=False)
57 if with_ibn:
58 self.bn1 = IBN(group_width, bn_norm)
59 else:
60 self.bn1 = get_norm(bn_norm, group_width)
61 self.dropblock_prob = dropblock_prob
62 self.radix = radix
63 self.avd = avd and (stride > 1 or is_first)
64 self.avd_first = avd_first
65
66 if self.avd:
67 self.avd_layer = nn.AvgPool2d(3, stride, padding=1)
68 stride = 1
69
70 if radix > 1:
71 self.conv2 = SplAtConv2d(
72 group_width, group_width, kernel_size=3,
73 stride=stride, padding=dilation,
74 dilation=dilation, groups=cardinality, bias=False,
75 radix=radix, rectify=rectified_conv,
76 rectify_avg=rectify_avg,
77 norm_layer=bn_norm,
78 dropblock_prob=dropblock_prob)
79 elif rectified_conv:
80 from rfconv import RFConv2d
81 self.conv2 = RFConv2d(
82 group_width, group_width, kernel_size=3, stride=stride,
83 padding=dilation, dilation=dilation,
84 groups=cardinality, bias=False,
85 average_mode=rectify_avg)
86 self.bn2 = get_norm(bn_norm, group_width)
87 else:
88 self.conv2 = nn.Conv2d(
89 group_width, group_width, kernel_size=3, stride=stride,
90 padding=dilation, dilation=dilation,
91 groups=cardinality, bias=False)
92 self.bn2 = get_norm(bn_norm, group_width)
93
94 self.conv3 = nn.Conv2d(
95 group_width, planes * 4, kernel_size=1, bias=False)
96 self.bn3 = get_norm(bn_norm, planes * 4)
97
98 if last_gamma:
99 from torch.nn.init import zeros_
100 zeros_(self.bn3.weight)
101 self.relu = nn.ReLU(inplace=True)
102 self.downsample = downsample
103 self.dilation = dilation
104 self.stride = stride
105

Member Function Documentation

◆ forward()

fastreid.modeling.backbones.resnest.Bottleneck.forward ( self,
x )

Definition at line 106 of file resnest.py.

106 def forward(self, x):
107 residual = x
108
109 out = self.conv1(x)
110 out = self.bn1(out)
111 if self.dropblock_prob > 0.0:
112 out = self.dropblock1(out)
113 out = self.relu(out)
114
115 if self.avd and self.avd_first:
116 out = self.avd_layer(out)
117
118 out = self.conv2(out)
119 if self.radix == 1:
120 out = self.bn2(out)
121 if self.dropblock_prob > 0.0:
122 out = self.dropblock2(out)
123 out = self.relu(out)
124
125 if self.avd and not self.avd_first:
126 out = self.avd_layer(out)
127
128 out = self.conv3(out)
129 out = self.bn3(out)
130 if self.dropblock_prob > 0.0:
131 out = self.dropblock3(out)
132
133 if self.downsample is not None:
134 residual = self.downsample(x)
135
136 out += residual
137 out = self.relu(out)
138
139 return out
140
141

Member Data Documentation

◆ avd

fastreid.modeling.backbones.resnest.Bottleneck.avd

Definition at line 63 of file resnest.py.

◆ avd_first

fastreid.modeling.backbones.resnest.Bottleneck.avd_first

Definition at line 64 of file resnest.py.

◆ avd_layer

fastreid.modeling.backbones.resnest.Bottleneck.avd_layer

Definition at line 67 of file resnest.py.

◆ bn1

fastreid.modeling.backbones.resnest.Bottleneck.bn1

Definition at line 58 of file resnest.py.

◆ bn2

fastreid.modeling.backbones.resnest.Bottleneck.bn2

Definition at line 86 of file resnest.py.

◆ bn3

fastreid.modeling.backbones.resnest.Bottleneck.bn3

Definition at line 96 of file resnest.py.

◆ conv1

fastreid.modeling.backbones.resnest.Bottleneck.conv1

Definition at line 56 of file resnest.py.

◆ conv2

fastreid.modeling.backbones.resnest.Bottleneck.conv2

Definition at line 71 of file resnest.py.

◆ conv3

fastreid.modeling.backbones.resnest.Bottleneck.conv3

Definition at line 94 of file resnest.py.

◆ dilation

fastreid.modeling.backbones.resnest.Bottleneck.dilation

Definition at line 103 of file resnest.py.

◆ downsample

fastreid.modeling.backbones.resnest.Bottleneck.downsample

Definition at line 102 of file resnest.py.

◆ dropblock_prob

fastreid.modeling.backbones.resnest.Bottleneck.dropblock_prob

Definition at line 61 of file resnest.py.

◆ expansion

int fastreid.modeling.backbones.resnest.Bottleneck.expansion = 4
static

Definition at line 47 of file resnest.py.

◆ radix

fastreid.modeling.backbones.resnest.Bottleneck.radix

Definition at line 62 of file resnest.py.

◆ relu

fastreid.modeling.backbones.resnest.Bottleneck.relu

Definition at line 101 of file resnest.py.

◆ stride

fastreid.modeling.backbones.resnest.Bottleneck.stride

Definition at line 104 of file resnest.py.


The documentation for this class was generated from the following file: