深度学习的典型任务一般认为是分类,检测和分割。
CNN的复兴可以说就是从图像分类开始,imagenet的出现极大推动了这一领域的进步。在这之前,cifar10和mnist也对这个领域的发展起到了极大的推动作用,时至今日,cifar10和mnist也依然不过时,cifar10依旧是一个中等难度的数据集,很多网络在cifar10上的performance已经足以说明该网络的优异了,当年在imagenet上达到sota的resnet同样在cifar10上同样也能达到sota。mnist的作用也一直重要,它是很多人入门深度学习的基础数据集,它的数据集很小,很方便下载存储,几乎可以即下即用,它的训练和收敛速度也非常快,基本全数据集上一个epoch就能达到90%以上的精确率,它的存在还有其他意义 ,如果你实现了一个新的网络结构或者损失函数,在它上面测试一次能帮你很快的定位到bug,一些开发工作,比如量化训练,分布式训练都可以拿它调试bug。
好了,这些数据集都是分类用的,另外两类任务,目前没有特别通用的小型的数据集,对于检测任务,voc,kitti数据集是比较常用的数据集,但是它们都很大,通常达数G甚至数十G,下载缓慢,存储代价高,运行时需要性能极高的机器,不适合用来教学和debug,一些很小的细节也抬高了初学者使用的门槛,就比如voc的数据组织和数据结构,如果没有人带路也不太容易明白。
我在kaggle上搜索了一圈,发现了一个小的分割数据集,名为m2nist,它是mnist的升级版,每张图像包含多余一个数字