python狗图像识别_TensorFlow实践教程:使用神经网络对犬种进行图像识别分类

本文介绍了如何使用TensorFlow和转移学习来解决犬种识别问题。通过结合预训练的Inception模型和附加的分类层,训练一个模型以识别120个不同犬种。使用Stanford犬种数据集,通过转移学习和TensorFlow数据集API进行训练,最终得到一个准确率高的模型。
摘要由CSDN通过智能技术生成

问题

几天前,我注意到由Kaggle主办的犬种识别挑战赛。我们的目标是建立一个模型,能够通过“观察”图像来进行犬种分类。我开始考虑可能的方法来建立一个模型来对犬种进行分类,以及了解该模型可能达到的精度。在现代机器学习框架中,像TensorFlow,公开可用的数据集和预先训练的图像识别模型,可以在不应用过多的工作和花费过多的时间和资源的情况下,以相当好的准确性解决问题。我将分享使用TensorFlow构建犬种分类器的端到端流程。

训练数据集

拥有一个良好的培训数据集是向健壮的模型迈出的一大步。斯坦福的犬种数据集有20K图像,包含120个品种的狗。数据集里的每一个图像都标注了狗的品种。你可能已经注意到了,只有20K张的120个不同品种的图像(每品种200个图像)不足以训练一个深度神经网络。卷积神经网络(CNN)是图像分类中最好的机器学习模型,但在这种情况下,没有足够的训练实例来训练它。它将无法从这个数据集上学习到足够通用的模式来对不同的犬种进行分类。最可能的是,它会过度拟合这些少量的训练示例,这样测试集的精确度就会降低。有两种可能的方法来减缓训练示例缺乏的情况:

将犬种图像数据集与另一个更大的图像数据集(如ImageNet),并在合并的例子上训练CNN;

在更大的数据集上接受预先训练的深层神经网络,切入它,附加一个额外的“分类头[classification head]”,即带有Softmax的几个额外的完全连接的层。

第一种方法有两大缺点:需要分析大量的数据,而这个大数据集的训练将花费更多的时间和资源。第二种方法似乎更可行:训练必须在原始数据集上执行,并且训练的“分类头[classification head]”只有几个完全连接的层ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值