VGG16的特点:
VGGNet使用了更深的结构, AlexNet只有8 层网络,而VGGNet 有16 层,不在使用大的卷积核,只使用3*3卷积核和2*2的池化层
之所以使用小的滤波器,是因为层叠很多小的滤波器的感受野和一个大的滤波器的感受野是相同的,还能减少参数,同时有更深的网络结构。其实他只是不断的对网络层进行叠加,并没有太多的创新,而增加深度确实可以一定程度改善模型的效果。
代码如下
- 导入必要的包
-
import torch from torch.autograd import Variable import numpy as np import matplotlib.pyplot as plt from torch import nn,optim from torch.utils.data import DataLoader from torchvision import datasets,transforms
- 定义模型结构
-
class VGG(nn.Module): def __init__(self,num_classes): super(VGG,self).__init__() self.features=nn.Sequential( nn.Conv2d(3,64,kernel_size=3,padding=1), nn.ReLU(True), nn.Conv2d(64,64,kernel_size=3,padding=1),