vgg网络相比于alexnet最大的改进就是使用堆叠的3*3卷积核代替原来的大卷积核,相比之下减少了模型的参数,而且也引入了更多的非线性因素。这篇文章也证明了增加网络的深度可以改善模型的性能。
from torchinfo import summary
import torch.nn as nn
import torch
#分类网络
class VGG(nn.Module):
def __init__(self, features, num_classes=1000, init_weights=False):
super(VGG, self).__init__()
self.features = features
#先会进行一个展平处理
self.classifier = nn.Sequential( #定义分类网络结构
nn.Dropout(p=0.5), #减少过拟合
nn.Linear(512*7*7, 2048),
nn.ReLU(True),
nn.Dropout(p=0.5),
nn.Linear(2048, 2048),