2.4 总结

在本章中,首先介绍了CIFAR-10数据集。借助CIFAR-10介绍了TensorFlow读写数据的原理、数据增强的原理等,还使用TensorFlow训练了一个CIFAR-10识别模型,取得了较高的识别准确率。最后介绍了ImageNet数据集及在该数据集上比较重要的几类模型。尽管ImageNet数据集使用的模型比较复杂,但读者可以类比CIFAR-10数据集使用的方法进行理解,它们的原理是共通的。

拓展阅读

✪ 关于CIFAR-10数据集,读者可以访问它的官方网站https://www.cs.toronto.edu/~kriz/cifar.html了解更多细节。此外,网站http://rodrigob.github.io/are_we_there_yet/build/classification_datasets_results.html#43494641522d3130中收集了在CIFAR-10数据集上表现最好的若干模型,包括这些模型对应的论文。

✪ ImageNet数据集上的表现较好的几个著名的模型是深度学习的基石,值得仔细研读。建议先阅读下面几篇论文:ImageNet Classification with Deep Convolutional Neural Networks(AlexNet的提出)、Very Deep Convolutional Networks for Large-Scale Image Recognition(VGGNet)、Going Deeper with Convolutions(GoogLeNet)、Deep Residual Learning for Image Recognition(ResNet)。

✪ 在第2.1.3节中,简要介绍了TensorFlow的一种数据读入机制。事实上,目前在TensorFlow中读入数据大致有三种方法:(1)用占位符(即placeholder)读入,这种方法比较简单;(2)用队列的形式建立文件到Tensor的映射;(3)用Dataset API读入数据,Dataset API是TensorFlow 1.3版本新引入的一种读取数据的机制,可以参考这篇中文教程:https://zhuanlan.zhihu.com/p/30751039