北大人工智能网课攻略[4]:基于VGG16的迁移学习


个人程序如下:
链接: https://pan.baidu.com/s/1mi99CsgRvolkXUb-UoW3Gw 提取码: kyrp


北大人工智能网课考试二是训练VGG16模型,并对老师给出的10张图片进行识别。如果使用老师给出的已经训练好的VGG16模型参数和调用程序,稳定满分。该模型参数与VGG16论文当时提供的一致。
在这里插入图片描述之后我随便玩了一下,原来我的头像是persian cat,波斯猫80%概率,还有13%概率是安哥拉兔。
在这里插入图片描述
本题题目要求在使用自己编程训练VGG16模型并调用模型识别。那么问题来了,ILSVRC-2012数据集多大?仅训练集138G,此时我的电脑硬盘是110G。所以说北大人工智能网课想满分,我得先买个服务器吧。
买完后下载数据集。
https://blog.csdn.net/xingchengmeng/article/details/58135148
再安装好GPU,编好程序就可以开始攻略了。

所以我决定现在做一个使用VGG16已有模型的迁移学习实践。

斯坦福迁移学习解释:http://cs231n.github.io/transfer-learning/
我首先使用莫烦的迁移学习程序开始修改,莫烦的迁移学习程序是使用vgg千种分类迁移到猫和老虎的长度判断。在修改的时候我发现了一些问题。
如下程序:
在这里插入图片描述
这里返回的resize_img应该是一个训练batch,然而其实际值为一个1×224×224×3的数组,即一张图片:
在这里插入图片描述
这个非batch的情况在训练程序中也显示了出来:
在这里插入图片描述
如果这个是一个batch的话,输入集的长度len(xs)应该是一次训练的图片数,如20这样,然而这里b_idx只有0和1,说明cat和tiger集各自只有一张图片被带进来训练:
在这里插入图片描述
在修改完程序后,我将vgg16用于了之前的cifar-10分类问题,程序在上面,结果如图。两张结果都正确。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/unlimitedai/article/details/83956010