2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > python狗图像识别_TensorFlow实践教程:使用神经网络对犬种进行图像识别分类

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

时间:2020-12-20 23:23:31

相关推荐

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

问题

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

训练数据集

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

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

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。