第三次作业代码部分

CIFAR 10数据分类

对于视觉神经,PyTorch创建了一个totchvision的包,这个包含有支持加载Imagenet,CIFAR10等数据集的数据加载模块torchvision.datasets和数据转换模块torch.utils.data.DataLoader。

首先,我们要加载CIFAR10使用torchvision。

 

 

展示CIFAR10里面的一些图片

 

然后我们要定义一下网络,损失函数和优化器,将网络放到GPU上

 

 

进行训练网络:

 

 

训练结果:

 

 

接下来我们可以看一下整个网络在整个数据集上的表现,可以看出准确率在64%,我们可以通过改进网络结构,使得其准确率进一步提升

 

 

 

使用VGG16对CIFAR10进行分类

VGG是一种新的卷积神经网络模型,具有非常良好的准确率。

首先我们还是有定义dataloader

 

 

然后我们要定义一下VGG网络模型

经过老师修改,该模型的参数结构变了,所以在VGG网络模型里我们需要修改一些参数值,即将self.classifier=nn.Linear(2048,10)修改为self.classifier=nn.Linear(512,10)。

 

 

将网络放在GPU上

 

 

进行网络训练,训练代码和之前的网络训练代码一样。

 

 

训练结果:

 

 

测试验证其准确率:

测试代码和之前一样,我们可以看出使用一个VGG网络便可以将其准确率提升到83.37%,若是在Kaggle的LeaderBoard上,准确率可以达到95%以上。

 

posted @ 2021-10-16 14:47  qiaa  阅读(34)  评论(0编辑  收藏  举报