VggNet训练cifar-10数据集

文章探讨了在VGG网络中,通过降低学习率(从0.1到0.005)、使用Xavier初始化和SGD优化器来改善模型训练。尽管学习率下降能暂时提高测试精度,但全连接层的大规模导致过拟合。尝试增加dropout比例至0.4并未取得理想效果,未来计划转向ResNet结构来缓解过拟合问题。
摘要由CSDN通过智能技术生成

一开始实现了vgg网络使用Adam优化器设置的学习率0.1,测试的loss毫无变化,原因是学习率learning rate太搞了后来设置成0.005,并且使用xavier_normal初始化卷积层和全连接层的参数,loss才开始慢慢下降,但是精度达到0.71就开始overfitting了。

def initial(layer):
    if isinstance(layer, nn.Linear) or isinstance(layer, nn.Conv2d):
        nn.init.xavier_normal_(layer.weight.data)

之后改变优化器使用SGD

optimizer = torch.optim.SGD(net.parameters(), lr=lr,
                             momentum=0.9, weight_decay=0.0005)

同时在这里采用学习率下降的策略,全部训练数据集大概每迭代5轮就进行一次学习的衰退。
这里迭代了26轮就结束,训练的loss,测试的loss和测试精度如下图所示。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到在第8个epoch, 测试loss开始上升,但是训练loss还在不断下降,大概率是过拟合,但是奇怪的测试精度在不断的上升。这里可以看见每次学习率下降时,测试精度会有小幅度提升,调小学习率可以改善过拟合,可以看见在25轮后学习下降了,26轮后的测试精度又开始小幅度上升,大概可以上升到0.77。
所以在我试着把学习率下降频率调高,每隔2个epoch就下降0.1,并且vggnent的全连接层通道太大、参数过多,非常容易过拟合,这里我们把全连接层后的dropout参数改为0.4。结果不太好,大概原因是vgg的全连接层太大了,非常容易过拟合,接下来使用resnet看看。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值