构建一个基于 ResNet-50 的神经网络,其中包含了分类器。CAM
类则扩展了 Net
类,实现了类激活映射(Class Activation Mapping)的功能,通过权重的操作产生可视化的效果。
Net类
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
''' 调用resnet50.py中的resnet50函数进行初始化,其中使用预训练模型 '''
self.resnet50 = resnet50.resnet50(pretrained=True, strides)
''' 将 resnet50 模型的不同阶段(stage1、stage2、stage3、stage4)和分类器(classifier)分别提取出来。 '''
self.stage1 = nn.Sequential(self.resnet50.conv1, self.resnet50.bn1, self.resnet50.relu, self.resnet50.maxpool,
self.resnet50.layer1)
self.stage2 = nn.Sequential(self.resnet50.layer2)
self.stage3 = nn.Sequential(self.resnet50.layer3)
self.stage4 = nn.Sequential(self.resnet50.layer4)
self.classifier