常用数据库

CIFAR10 小图片分类数据集

该数据库具有50,000个32*32的彩色图片作为训练集,10,000个图片作为测试集。图片一共有10个类别。

使用方法

from keras.datasets import cifar10

(X_train, y_train), (X_test, y_test) = cifar10.load_data()

返回值:

两个Tuple

X_trainX_test是形如(nb_samples, 3, 32, 32)的RGB三通道图像数据,数据类型是无符号8位整形(uint8)

Y_trainY_test是形如(nb_samples,)标签数据,标签的范围是0~9


CIFAR100 小图片分类数据库

该数据库具有50,000个32*32的彩色图片作为训练集,10,000个图片作为测试集。图片一共有100个类别,每个类别有600张图片。这100个类别又分为20个大类。

使用方法

from keras.datasets import cifar100

(X_train, y_train), (X_test, y_test) = cifar100.load_data(label_mode='fine')

参数

  • label_mode:为‘fine’或‘coarse’之一,控制标签的精细度,‘fine’获得的标签是100个小类的标签,‘coarse’获得的标签是大类的标签

返回值

两个Tuple,(X_train, y_train), (X_test, y_test),其中

  • X_train和X_test:是形如(nb_samples, 3, 32, 32)的RGB三通道图像数据,数据类型是无符号8位整形(uint8)

  • y_train和y_test:是形如(nb_samples,)标签数据,标签的范围是0~9


IMDB影评倾向分类

本数据库含有来自IMDB的25,000条影评,被标记为正面/负面两种评价。影评已被预处理为词下标构成的序列。方便起见,单词的下标基于它在数据集中出现的频率标定,例如整数3所编码的词为数据集中第3常出现的词。这样的组织方法使得用户可以快速完成诸如“只考虑最常出现的10,000个词,但不考虑最常出现的20个词”这样的操作

按照惯例,0不代表任何特定的词,而用来编码任何未知单词

使用方法

from keras.datasets import imdb

(X_train, y_train), (X_test, y_test) = imdb.load_data(path="imdb_full.pkl",
                                                      nb_words=None,
                                                      skip_top=0,
                                                      maxlen=None,
                                                      test_split=0.1)
                                                      seed=113,
                                                      start_char=1,
                                                      oov_char=2,
                                                      index_from=3)

参数

  • path:如果你在本机上已有此数据集(位于'~/.keras/datasets/'+path),则载入。否则数据将下载到该目录下

  • nb_words:整数或None,要考虑的最常见的单词数,任何出现频率更低的单词将会被编码到0的位置。

  • skip_top:整数,忽略最常出现的若干单词,这些单词将会被编码为0

  • maxlen:整数,最大序列长度,任何长度大于此值的序列将被截断

  • seed:整数,用于数据重排的随机数种子

  • start_char:字符,序列的起始将以该字符标记,默认为1因为0通常用作padding

  • oov_char:字符,因nb_wordsskip_top限制而cut掉的单词将被该字符代替

  • index_from:整数,真实的单词(而不是类似于start_char的特殊占位符)将从这个下标开始

返回值

两个Tuple,(X_train, y_train), (X_test, y_test),其中

  • X_train和X_test:序列的列表,每个序列都是词下标的列表。如果指定了nb_words,则序列中可能的最大下标为nb_words-1。如果指定了maxlen,则序列的最大可能长度为maxlen

  • y_train和y_test:为序列的标签,是一个二值list


路透社新闻主题分类

本数据库包含来自路透社的11,228条新闻,分为了46个主题。与IMDB库一样,每条新闻被编码为一个词下标的序列。

使用方法

from keras.datasets import reuters


(X_train, y_train), (X_test, y_test) = reuters.load_data(path="reuters.pkl",
                                                         nb_words=None,
                                                         skip_top=0,
                                                         maxlen=None,
                                                         test_split=0.2,
                                                         seed=113,
                                                         start_char=1,
                                                         oov_char=2,
                                                         index_from=3)

参数的含义与IMDB同名参数相同,唯一多的参数是: test_split,用于指定从原数据中分割出作为测试集的比例。该数据库支持获取用于编码序列的词下标:

word_index = reuters.get_word_index(path="reuters_word_index.pkl")

上面代码的返回值是一个以单词为关键字,以其下标为值的字典。例如,word_index['giraffe']的值可能为1234

数据库将会被下载到'~/.keras/datasets/'+path


MNIST手写数字识别

本数据库有60,000个用于训练的28*28的灰度手写数字图片,10,000个测试图片

使用方法

from keras.datasets import mnist

(X_train, y_train), (X_test, y_test) = mnist.load_data()

返回值

两个Tuple,(X_train, y_train), (X_test, y_test),其中

  • X_train和X_test:是形如(nb_samples, 28, 28)的灰度图片数据,数据类型是无符号8位整形(uint8)

  • y_train和y_test:是形如(nb_samples,)标签数据,标签的范围是0~9

数据库将会被下载到'~/.keras/datasets/'+path