前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >keras中的数据集

keras中的数据集

作者头像
云水木石
发布2019-07-01 17:28:06
1.7K0
发布2019-07-01 17:28:06
举报

数据在深度学习中的重要性怎么说都不为过,无论是训练模型,还是性能调优,都离不开大量的数据。有人曾经断言中美在人工智能领域的竞赛,中国将胜出,其依据就是中国拥有更多的数据。像Google、amazon、腾讯、阿里巴巴之类的巨头,其产品属性天然拥有大量的数据,那对于个人和小型创业公司,数据从哪儿来呢?

除了自行搜集数据,还有一条捷径就是获得公开的数据集,这些数据集往往是研究机构或大公司出于研究的目的而创建的,提供免费下载,可以很好的弥补个人开发者和小型创业公司数据不足的问题。不过由于这些数据集由不同的组织创建,其格式也各不相同,往往需要针对不同的数据集编写解析代码。

keras作为一个高层次的深度学习框架,提供了友好的用户接口,其内置了一些公共数据集的支持。具体说来,keras.datasets模块包含了加载和获取流行的参考数据集的方法。通过这些数据集接口,开发者不需要考虑数据集格式上的不同,全部由keras统一处理,下面就来看看keras中集成的数据集。

注意

keras.datasets模块包含了从网络下载数据的功能,下载后的数据集保存于 ~/.keras/datasets/ 目录。因为这些数据集来源各有不同,有些需要访问外国网站才能访问。我将这些数据收集起来放到了百度网盘 https://pan.baidu.com/s/1sUV6oQ7mUplTCoXKulA9Sw,有需要的朋友可以自行下载,将下载的数据文件放到 ~/.keras/datasets/ 目录即可。

以下是keras.datasets包含的数据集清单

  1. 波士顿房价数据
  2. CIFAR10 (十种类别的图片集)
  3. CIFAR100 (100种类别的图片集)
  4. MNIST (手写数字图片集)
  5. Fashion-MNIST (10种时尚类别的图片集)
  6. IMDB电影点评数据
  7. 路透社新闻数据
1. 波士顿房价数据

本数据集取自由卡内基梅隆大学维护的StatLib库。这个数据集包含了19世纪70年代末波士顿郊区不同地点的房屋信息数据,每条数据包含13个属性,目标属性是某地点房屋的售价(单位为k$)。

这个数据集的数据较老,再加上房价与很多因素有关,不具有通用性。它可用于练习回归算法,对于实际项目的作用有限,如果用它来预测中国的房价,绝对谬之千里。

加载数据集的代码如下:

代码语言:javascript
复制
from keras.datasets import boston_housing(x_train, y_train), (x_test, y_test) = boston_housing.load_data()

2. CIFAR10

本数据集包含50,000个32x32彩色训练图像和10,000个测试图像,一共10个类别的标签。

加载数据集的代码:

代码语言:javascript
复制
from keras.datasets import cifar10
(x_train, y_train), (x_test, y_test) = cifar10.load_data()

返回一个二元组:

  • x_train和x_test: uint8数组类型的RGB图像数据,其形状为(num_samples, 32, 32, 3)。其中3代表RGB三个通道。
  • y_train和y_test: uint8数组类型的类别标签,类别编号为数字,类别标签值为0-9之间的数字,数组形状(num_samples, ).
3. CIFAR100

和CIFAR10数据集类似,只是标签类别扩充到100个,也就是有100个类别的图像。

4. MNIST

本数据集包含10个数字的60,000个28x28灰度图像,以及10,000个图像的测试集。

加载数据集的代码:

代码语言:javascript
复制
from keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()

返回一个二元组:

  • x_train和x_test: uint8数组类型的灰度图像数据,其形状为(num_samples, 28, 28)。
  • y_train和y_test: uint8数组类型的类别标签,0-9之间的数字,数组形状(num_samples, ).
5. Fashion-MNIST

本数据集包含10个时尚类别的60,000个28x28灰度图像,以及10,000个图像的测试集。此数据集可用作MNIST的替代品。类别标签定义如下:

标签

描述

0

T恤/上衣

1

裤子

2

套头衫

3

连衣裙

4

外套

5

凉鞋

6

衬衣

7

运动鞋

8

包包

9

短靴

加载数据集的代码:

代码语言:javascript
复制
from keras.datasets import fashion_mnist
(x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()

返回的二元组和MNIST数据集类似。

6. IMDB电影点评数据

来自IMDB的25,000个电影评论的数据集,标记为正面评价和负面评价。数据集并不是直接包含单词字符串,而是已经过预处理,每个评论都被编码为一系列单词索引(整数)。出于方便起见,单词根据数据集中的总体词频进行索引,这样整数“3”就是数据中第3个最频繁的单词的编码。这样做的目的是允许快速过滤操作,例如:“仅考虑前10,000个最常见的单词,但去掉前20个最常见的单词”。

作为惯例,“0”不代表特定单词,

加载数据集的代码:

代码语言:javascript
复制
from keras.datasets import imdb
(x_train, y_train), (x_test, y_test) = imdb.load_data()

返回一个二元组:

  • x_train和x_test: 序列列表,整数类型的索引列表。
  • y_train和y_test: 整数标签列表(1或0)。

训练数据集的数据样例如下:

代码语言:javascript
复制
[1, 307, 5, 1301, 20, 1026, 2511, 87, 2775, 52, 116, 5, 31, 7, 4, 91, 1220, 102, 13, 28, 110, 11, 6, 137, 13, 115, 219, 141, 35, 221, 956, 54, 13, 16, 11, 2714, 61, 322, 423, 12, 38, 76, 59, 1803, 72, 8, 10508, 23, 5, 967, 12, 38, 85, 62, 358, 99]

这可能对人的阅读不太友好,但是方便计算机处理。这组数据集可用于二分类问题。

7. 路透社新闻数据

这是来自路透社的11,228条新闻线索的数据集,标记有46个主题。与IMDB数据集一样,每条新闻线索都被编码为一系列单词索引(相同的约定)。

加载数据集的代码:

代码语言:javascript
复制
from keras.datasets import reuters
(x_train, y_train), (x_test, y_test) = reuters.load_data()

返回一个二元组:

  • x_train和x_test: 序列列表,整数类型的索引列表。
  • y_train和y_test: 整数标签列表(0到45)。

这组数据集可用于二分类问题。

总结

从上面的代码可以看到,keras提供的接口非常简洁,仅仅调用各数据集的load_data()方法,开发者无需处理数据下载、数据保存、数据解析等等细节,可以极大的方便开发者将精力集中于业务开发。目前keras集成的数据集还比较有限,以后也许会有更多的公共数据集集成过来。

参考:

  1. Datasets - Keras Documentation
  2. Datasets within Keras
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云水木石 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 注意
  • 1. 波士顿房价数据
  • 2. CIFAR10
  • 3. CIFAR100
  • 4. MNIST
  • 5. Fashion-MNIST
  • 6. IMDB电影点评数据
  • 7. 路透社新闻数据
  • 总结
  • 参考:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档