MCPcopy Create free account
hub / github.com/Mattdl/ContinualPrototypeEvolution / ResNet

Class ResNet

model/common.py:74–106  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

72
73
74class ResNet(nn.Module):
75 def __init__(self, block, num_blocks, num_classes, nf, bias):
76 super(ResNet, self).__init__()
77 self.in_planes = nf
78
79 self.conv1 = conv3x3(3, nf * 1)
80 self.bn1 = nn.BatchNorm2d(nf * 1)
81 self.layer1 = self._make_layer(block, nf * 1, num_blocks[0], stride=1)
82 self.layer2 = self._make_layer(block, nf * 2, num_blocks[1], stride=2)
83 self.layer3 = self._make_layer(block, nf * 4, num_blocks[2], stride=2)
84 self.layer4 = self._make_layer(block, nf * 8, num_blocks[3], stride=2)
85 print("BIAS IS", bias)
86 self.linear = nn.Linear(nf * 8 * block.expansion, num_classes, bias=bias)
87
88 def _make_layer(self, block, planes, num_blocks, stride):
89 strides = [stride] + [1] * (num_blocks - 1)
90 layers = []
91 for stride in strides:
92 layers.append(block(self.in_planes, planes, stride))
93 self.in_planes = planes * block.expansion
94 return nn.Sequential(*layers)
95
96 def forward(self, x):
97 bsz = x.size(0)
98 out = relu(self.bn1(self.conv1(x.view(bsz, 3, 32, 32))))
99 out = self.layer1(out)
100 out = self.layer2(out)
101 out = self.layer3(out)
102 out = self.layer4(out)
103 out = avg_pool2d(out, 4)
104 out = out.view(out.size(0), -1)
105 out = self.linear(out)
106 return out
107
108
109def ResNet18(nclasses, nf=20, bias=True):

Callers 1

ResNet18Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected