def __init__(self, num_classes):
self.pre = [
conv_layer(3, 64, 7, 7, stride=2, shift=False),#input image is 3 channels
bn_layer(64),
relu(),
max_pooling(3,3,2,same=True)
]
self.layer1 = self.stack_ResBlock(64, 64, 3, 1)
self.layer2 = self.stack_ResBlock(64, 128, 4, 2)
self.layer3 = self.stack_ResBlock(128, 256, 6, 2)
self.layer4 = self.stack_ResBlock(256, 512, 3, 2)
self.avg = global_average_pooling()
self.fc = fc_sigmoid(512, num_classes)
def train(self):
self.pre[1].train()
for l in self.layer1:
l.train()
for l in self.layer2:
l.train()
for l in self.layer3:
l.train()
for l in self.layer4:
l.train()
pre[1] pointed the bn_layer,why not run self.pre[0].train() to back propogation the conv_layer in self.pre? I found the code in train.py including ResBlock just bp the bn_layer ,no bp operation in conv layer?
hi, sir
class resnet34: