【深度学习】深度学习经典数据集汇总
?深度學習數據集
Author:louwill
From:深度學習筆記
很多朋友在學習了神經網絡和深度學習之后,早已迫不及待要開始動手實戰了。第一個遇到的問題通常就是數據。作為個人學習和實驗來說,很難獲得像工業界那樣較高質量的貼近實際應用的大量數據集,這時候一些公開數據集往往就成了大家通往AI路上的反復摩擦的對象。
計算機視覺(CV)方向的經典數據集包括MNIST手寫數字數據集、Fashion MNIST數據集、CIFAR-10和CIFAR-100數據集、ILSVRC競賽的ImageNet數據集、用于檢測和分割的PASCAL VOC和COCO數據集等。而自然語言處理(NLP)方向的經典數據集包括IMDB電影評論數據集、Wikitext維基百科數據集、Amazon reviews(亞馬遜評論)數據集和Sogou news(搜狗新聞)數據等。
本講就分別對這些經典數據集和使用進行一個概述。
?
CV經典數據集
1.MNIST
MNIST(Mixed National Institute of Standards andTechnology database)數據集大家可以說是耳熟能詳。可以說是每個入門深度學習的人都會使用MNIST進行實驗。作為領域內最早的一個大型數據集,MNIST于1998年由Yann LeCun等人設計構建。MNIST數據集包括60000個示例的訓練集以及10000個示例的測試集,每個手寫數字的大小均為28*28。在本書的前面一些章節,我們曾多次使用到了MNIST數據集。
MNIST數據集官網地址為http://yann.lecun.com/exdb/mnist/。
MNIST在TensorFlow中可以直接導入使用。在TensorFlow 2.0中使用示例如代碼1所示。
代碼1 導入MNIST
# 導入mnist模塊 from tensorflow.keras.datasets import mnist # 導入數據 (x_train,y_train), (x_test, y_test) = mnist.load_data() # 輸出數據維度 print(x_train.shape,y_train.shape, x_test.shape, y_test.shape)輸出結果如下。
(60000, 28, 28) (60000,) (10000, 28, 28)(10000,)可視化展示MNIST 0-9十個數字,如代碼2所示,繪制結果如圖1。
代碼2 繪制MNIST
# 導入相關模塊 import matplotlib.pyplot as plt import numpy as np # 指定繪圖尺寸 plt.figure(figsize=(12,8)) # 繪制10個數字 fori in range(10):plt.subplot(2,5,i+1)plt.xticks([])plt.yticks([])img = x_train[y_train == i][0].reshape(28,28)plt.imshow(img, cmap=plt.cm.binary)?
?? ? ? ? ? ? ? ? 圖1 MNIST數據示例
?
2.Fashion MNIST
可能是見MNIST太爛大街了,德國的一家名為Zalando的時尚科技公司提供了Fashion-MNIST來作為MNIST數據集的替代數據集。Fashion MNIST包含了10種類別70000個不同時尚穿戴品的圖像,整體數據結構上跟MNIST完全一致。每張圖像的尺寸同樣是28*28。
Fashion MNIST數據集地址為:
https://research.zalando.com/welcome/mission/research-projects/fashion-mnist/。
Fashion MNIST同樣也可以在TensorFlow中直接導入。如代碼3所示。
代碼3 導入Fashion MNIST
# 導入fashion mnist模塊 from tensorflow.keras.datasets import fashion_mnist # 導入數據 (x_train,y_train), (x_test, y_test) = fashion_mnist.load_data() # 輸出數據維度 print(x_train.shape,y_train.shape, x_test.shape, y_test.shape)輸出結果如下。
(60000, 28, 28) (60000,) (10000, 28, 28)(10000,)可視化展示Fashion MNIST 10種類別,如代碼4所示。繪制結果如2所示。
代碼21.4 繪制Fashion MNIST
# 繪圖尺寸 plt.figure(figsize=(12,8)) # 繪制10個示例 fori in range(10):plt.subplot(2,5,i+1)plt.xticks([])plt.yticks([])plt.grid(False)img = x_train[y_train == i][0].reshape(28,28)plt.imshow(x_train[i], cmap=plt.cm.binary)?
圖2 Fashion MNIST數據示例展示
?
3.CIFAR-10
相較于MNIST和Fashion MNIST的灰度圖像,CIFAR-10數據集由10個類的60000個32*32彩色圖像組成,每個類有6000個圖像。有50000個訓練圖像和10000個測試圖像。
CIFAR-10是由Hinton的學生Alex Krizhevsky(AlexNet的作者)和Ilya Sutskever 整理的一個用于識別普適物體的彩色圖像數據集。一共包含10個類別的RGB彩色圖片:飛機(airplane)、汽車(automobile)、鳥類(bird)、貓(cat)、鹿(deer)、狗(dog)、蛙類(frog)、馬(horse)、船(ship)和卡車(truck)。
CIFAR-10的官方地址為https://www.cs.toronto.edu/~kriz/cifar.html。
CIFAR-10在TensorFlow中導入方式如代碼5所示。
代碼5 導入CIFAR-10
# 導入cifar10模塊 from tensorflow.keras.datasets import cifar10 # 讀取數據 (x_train,y_train), (x_test, y_test) = cifar10.load_data() # 輸出數據維度 print(x_train.shape,y_train.shape, x_test.shape, y_test.shape)?輸出結果如下。
(50000,32, 32, 3) (50000, 1) (10000, 32, 32, 3) (10000, 1)CIFAR-10的可視化展示如代碼6所示。圖像示例如圖3所示。
代碼21.6 繪制CIFAR-10
# 指定繪圖尺寸 plt.figure(figsize=(12,8)) # 繪制10個示例 fori in range(10):plt.subplot(2,5,i+1)plt.xticks([])plt.yticks([])plt.grid(False)plt.imshow(x_train[i], cmap=plt.cm.binary)?
圖3 CIFAR-10示例展示
4.CIFAR-100
CIFAR-100可以看作是CIFAR-10的擴大版,CIFAR-100將類別擴大到100個類,每個類包含了600張圖像,分別有500張訓練圖像和100張測試圖像。CIFAR-100的100個類被分為20個大類,每個大類又有一定數量的小類,大類和大類之間區分度較高,但小類之間有些圖像具有較高的相似度,這對于分類模型來說會更具挑戰性。
CIFAR-100數據集地址為https://www.cs.toronto.edu/~kriz/cifar.html。
CIFAR-10在TensorFlow中導入方式如代碼7所示。
代碼21.7 導入CIFAR-100
# 導入cifar100模塊 from tensorflow.keras.datasets import cifar100 # 導入數據 (x_train,y_train), (x_test, y_test) = cifar100.load_data() # 輸出數據維度 print(x_train.shape,y_train.shape, x_test.shape, y_test.shape)輸出結果如下。
(50000,32, 32, 3) (50000, 1) (10000, 32, 32, 3) (10000, 1)CIFAR-100的可視化展示如代碼8所示,示例結果如圖4所示。
代碼8 繪制CIFAR-100
# 指定繪圖尺寸 plt.figure(figsize=(12,8)) # 繪制100個示例 fori in range(100):plt.subplot(10,10,i+1)plt.xticks([])plt.yticks([])plt.grid(False)plt.imshow(x_train[i], cmap=plt.cm.binary)圖4 CIFAR-100示例
5.ImageNet
ImageNet圖像數據集是在2009年由斯坦福的李飛飛主導的一個項目形成的一個數據集。李飛飛在CVPR2009上發表了一篇名為《ImageNet: A Large-Scale Hierarchical Image Database》的論文,之后從2010年開始基于ImageNet數據集的7屆ILSVRC大賽,這使得ImageNet極大的推動了深度學習和計算機視覺的發展。ILSVRC大賽歷屆經典網絡如表1所示。
表1 ILSVRC歷年冠軍解決方案
年份 | 網絡名稱 | Top5成績 | 論文 |
2012 | AlexNet | 16.42% | ImageNet Classification with Deep Convolutional Neural Networks |
2013 | ZFNet | 13.51% | Visualizing and understanding convolutional networks |
2014 | GoogLeNet | 6.67% | Going Deeper with Convolutions |
VGG | 6.8% | Very deep convolutional networks for large-scale image recognition | |
2015 | ResNet | 3.57% | Deep Residual Learning for Image Recognition |
2016 | ResNeXt | 3.03% | Aggregated Residual Transformations for Deep Neural Networks |
2017 | SENet | 2.25% | Squeeze-and-Excitation Networks |
?
目前ImageNet中總共有14197122張圖像,分為21841個類別,數據官網地址為:http://www.image-net.org/
ImageNet數據集示例如圖5所示。
圖5 ImageNet數據示例
?
6.PASCAL VOC
PASCAL VOC挑戰賽(The PASCAL Visual Object Classes)是一個世界級的計算機視覺挑戰賽, 其全稱為Pattern Analysis, Statical Modeling andComputational Learning,從2005年開始到2012年結束,PASCAL VOC最初主要用于目標檢測,很多經典的目標檢測網絡都是在PASCAL VOC上訓練出來的,例如,Fast R-CNN系列的各種網絡。后來逐漸增加了分類、分割、動作識別和人體布局等五類比賽。目前PASCAL VOC主要分為VOC2007和VOC2012兩個版本的數據集。PASCAL VOC數據示例如圖6所示。
圖6 PASCAL VOC數據示例
?
7.COCO
COCO數據集是微軟在ImageNet和PASCAL VOC數據集標注上的基礎上產生的,主要是用于圖像分類、檢測和分割等任務。COCO全稱為Common Objects in Context,2014年微軟在ECCV Workshops里發表了Microsoft COCO: Common Objects in Context。文章中說明了COCO數據集以場景理解為目標,主要從復雜的日常場景中截取,圖像中的目標通過精確的分割進行位置的標定。COCO包括91個類別目標,其中有82個類別的數據量都超過了5000張。
COCO數據集主頁地址為http://cocodataset.org/#home。
COCO數據集示例如圖7所示。
圖7 COCO數據集示例
?
除了以上這些公開的經典數據集以外,我們也可以通過數據采集和圖像標注工具制作數據集。常用的圖像標注工具包括Labelme、LabelImg、Vatic、Sloth、ImageJ、CVAT、Yolo_mark、RectLabel和Labelbox等。圖8所示是Labelme圖像標注示例。
圖8 Labelme圖像標注
?
NLP經典數據集
1.IMDB
IMDB本身是一家在線收集各種電影信息的網站,跟國內的豆瓣較為類似,用戶可以在上面發表對電影的影評。IMDB數據集是斯坦福整理的一套用于情感分析的IMDB電影評論二分類數據集,包含了25000個訓練樣本和25000個測試樣本,所有影評被標記為正面和負面兩種評價。IMDB數據集的一個示例如圖9所示。
圖9 IMDB數據示例
?
IMDB數據集在TensorFlow中讀取方法跟MNIST等數據集較為類似,如代碼9所示。
代碼9?導入IMDB
# 導入imdb模塊 from tensorflow.keras.datasets import imdb # 導入數據 (x_train,y_train), (x_test, y_test) = imdb.load_data() # 輸出數據維度 print(x_train.shape,y_train.shape, x_test.shape, y_test.shape)輸出結果如下。
Downloadingdata from https://storage.googleapis.com/tensorflow/tf-keras-datasets/imdb.npz 17465344/17464789[==============================] - 2s 0us/step (25000,)(25000,) (25000,) (25000,)IMDB數據集地址為https://www.imdb.com/interfaces/。
?
2.Wikitext
WikiText 英語詞庫數據(The WikiText Long Term Dependency Language ModelingDataset)是由Salesforce MetaMind 策劃的包含1億個詞匯的大型語言建模語料庫。這些詞匯都是從維基百科一些經典文章中提取得到,包括WikiText-103和WikiText-2兩個版本,其中WikiText-2是WikiText-103的一個子集,常用于測試小型數據集的語言模型訓練效果。值得一提的是,WikiText保持了產生每個詞匯的原始文章,非常適用于長時依賴的大文本建模問題。
WikiText數據集地址為https://metamind.io/research/the-wikitext-long-term-dependency-language-modeling-dataset。
?
3.Amazon reviews
Amazon Reviews數據集是2013年由康奈爾大學[1]發布的、從斯坦福網絡分析項目(SNAP)中構建的Amazon評論數據集,分為Full和Polarity兩個版本。Full版本每個類別包含600000個訓練樣本和130000個測試樣本,Polarity版本每個類別則包含1800000個訓練樣本和200000個測試樣本。評論的商品包括書籍、電子產品、電影、日常家用產品、衣服、手機、玩具等各類常用物品。
Amazon Reviews數據集地址為http://jmcauley.ucsd.edu/data/amazon/。
Amazon Reviews數據集的一個樣本示例如圖10所示。
圖10 Amazon Reviews數據示例
?
4.Sogou news
Sogou news 數據集是來自SogouCA和SogouCS新聞語料庫總共包含運動、金融、娛樂、汽車和技術5個類別2909551篇新聞文章構成的數據集。每個類別分別包含90000個訓練樣本和12000個測試樣本。
Sogou news 數據集地址為:
http://academictorrents.com/details/b2b847b5e1946b0479baa838a0b0547178e5ebe8。
?
NLP領域還有一些像Ag News、Yelp等經典數據集,這里限于篇幅就不再進行更多的介紹,感興趣的讀者可以自行查閱。
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯獲取一折本站知識星球優惠券,復制鏈接直接打開:https://t.zsxq.com/662nyZF本站qq群704220115。加入微信群請掃碼進群(如果是博士或者準備讀博士請說明):總結
以上是生活随笔為你收集整理的【深度学习】深度学习经典数据集汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【小白学PyTorch】17.TFrec
- 下一篇: 李飞飞的斯坦福 HAI 招人了,薪资丰厚