郭一璞 发自 凹非寺 
量子位 报道 | 公众号 QbitAI

训练机器学习模型的时候,需要先找数据集、下载、装数据集……太麻烦了,比如MNIST这种全世界都在用的数据集,能不能来个一键装载啥的?

Google也这么想。

今天,TensorFlow推出了一个新的功能,叫做TensorFlow Datasets,可以以tf.data和NumPy的格式将公共数据集装载到TensorFlow里。

目前已经有29个数据集可以通过TensorFlow Datasets装载:

音频类

nsynth

图像类

cats_vs_dogs
celeb_a
celeb_a_hq
cifar10
cifar100
coco2014
colorectal_histology
colorectal_histology_large
diabetic_retinopathy_detection
fashion_mnist
image_label_folder
imagenet2012
lsun
mnist
omniglot
open_images_v4
quickdraw_bitmap
svhn_cropped
tf_flowers

结构化数据集

titanic

文本类

imdb_reviews
lm1b
squad

翻译类

wmt_translate_ende
wmt_translate_enfr

视频类

bair_robot_pushing_small
moving_mnist
starcraft_video

未来还会增加更多数据集,你也可以自己添加数据集。

具体怎么装

必须是TensorFlow1.12以上版本才可以安装,某些数据集需要额外的库。

1pip install tensorflow-datasets23# Requires TF 1.12+ to be installed.4# Some datasets require additional libraries; see setup.py extras_require5pip install tensorflow6# or:7pip install tensorflow-gpu

每个数据集都作为DatasetBuilder公开,已知:

1.从哪里下载数据集,如何提取数据并写入标准格式;

2.如何从disk加载;

3.各类要素名称、类型等信息。

这些DatasetBuilder都能直接实例化或者用tfds.builder字符串读取:

 1import tensorflow_datasets as tfds 2 3# Fetch the dataset directly 4mnist = tfds.image.MNIST() 5# or by string name 6mnist = tfds.builder('mnist') 7 8# Describe the dataset with DatasetInfo 9assert mnist.info.features['image'].shape == (28, 28, 1)10assert mnist.info.features['label'].num_classes == 1011assert mnist.info.splits['train'].num_examples == 600001213# Download the data, prepare it, and write it to disk14mnist.download_and_prepare()1516# Load data from disk as tf.data.Datasets17datasets = mnist.as_dataset()18train_dataset, test_dataset = datasets['train'], datasets['test']19assert isinstance(train_dataset, tf.data.Dataset)2021# And convert the Dataset to NumPy arrays if you'd like22for example in tfds.as_numpy(train_dataset):23  image, label = example['image'], example['label']24  assert isinstance(image, np.array)

你也可以用tfds.load执行一系列的批量示例、转换操作,然后再调用。

1import tensorflow_datasets as tfds23datasets = tfds.load("mnist")4train_dataset, test_dataset = datasets["train"], datasets["test"]5assert isinstance(train_dataset, tf.data.Dataset)

数据集版本控制

当数据集自身版本更新时,已经开始训练的数据不会变化,TensorFlow官方会采取增加新版本的方式把新的数据集放上来。

具体配置

有不同变体的数据集用BuilderConfigs进行配置,比如大型电影评论数据集(Large Movie Review Dataset),可以对输入文本进行不同的编码。

内置配置与数据集文档一起列出,可以通过字符串进行寻址。

 1# See the built-in configs 2configs = tfds.text.IMDBReviews.builder_configs 3assert "bytes" in configs 4 5# Address a built-in config with tfds.builder 6imdb = tfds.builder("imdb_reviews/bytes") 7# or when constructing the builder directly 8imdb = tfds.text.IMDBReviews(config="bytes") 9# or use your own custom configuration10my_encoder = tfds.features.text.ByteTextEncoder(additional_tokens=['hello'])11my_config = tfds.text.IMDBReviewsConfig(12    name="my_config",13    version="1.0.0",14    text_encoder_config=tfds.features.text.TextEncoderConfig(encoder=my_encoder),15)16imdb = tfds.text.IMDBReviews(config=my_config)

也可以用你自己的配置,通过tfds.core.BuilderConfigs,进行以下步骤:

1.把你自己的配置对象定义为的子类 tfds.core.BuilderConfig。比如叫“MyDatasetConfig”;

2.在数据集公开的列表中定义BUILDER_CONFIGS类成员,比如“MyDatasetMyDatasetConfig”;

3.使用self.builder_config在MyDataset配置数据生成,可能包括在_info()或更改下载数据访问中设置不同的值。

关于文本数据集

平常遇到文本数据集都比较难搞,但是有了TensorFlow Datasets就会好办一些,包含很多文本任务,三种文本编码器:

1.ByteTextEncoder,用于字节/字符级编码;

2.TokenTextEncoder,用于基于词汇文件的单词级编码;

3.SubwordTextEncoder,用于子词级编码,具有字节级回退,以使其完全可逆,比如可以把“hello world”分为[“he”,“llo”,“”,“wor”,“ld”],然后进行整数编码。

以上这些都支持Unicode。

编码器和词库可以这样访问:

 1imdb = tfds.builder("imdb_reviews/subwords8k") 2 3# Get the TextEncoder from DatasetInfo 4encoder = imdb.info.features["text"].encoder 5assert isinstance(encoder, tfds.features.text.SubwordTextEncoder) 6 7# Encode, decode 8ids = encoder.encode("Hello world") 9assert encoder.decode(ids) == "Hello world"1011# Get the vocabulary size12vocab_size = encoder.vocab_size

TensorFlow官方明确表示,TensorFlow和TensorFlow Datasets在文本支持方面将会进一步改进。

传送门

最后,下面是TensorFlow官方提供的各类文档资料教程链接:

TensorFlow博客原文
https://medium.com/tensorflow/introducing-tensorflow-datasets-c7f01f7e19f3

TensorFlow官方文档
https://www.tensorflow.org/datasets

GitHub
https://github.com/tensorflow/datasets

Colab教程
https://colab.research.google.com/github/tensorflow/datasets/blob/master/docs/overview.ipynb

Enjoy yourself~

加入社群

量子位现开放「AI+行业」社群,面向AI行业相关从业者,技术、产品等人员,根据所在行业可选择相应行业社群,在量子位公众号(QbitAI)对话界面回复关键词“行业群”,获取入群方式。行业群会有审核,敬请谅解。

此外,量子位AI社群正在招募,欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“交流群”,获取入群方式。

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点「好看」吧 !

TensorFlow可以“预装”数据集了,新功能Datasets出炉相关推荐

  1. ML.NET 发布0.11版本:.NET中的机器学习,为TensorFlow和ONNX添加了新功能

    微软发布了其最新版本的机器学习框架:ML.NET 0.11带来了新功能和突破性变化. 新版本的机器学习开源框架为TensorFlow和ONNX添加了新功能,但也包括一些重大变化, 这也是发布RC版本之 ...

  2. 响铃:“新品牌计划”出炉,但拼多多要的不只是C2M

    文|曾响铃 来源|科技向令说(xiangling0815) 作为电商界的一朵奇花,拼多多从来都不走寻常路. 或者说,走寻常路的拼多多也不可能在舆论的枪林弹雨中活下来.现在看来,拼多多不但活着,还开始了 ...

  3. 【重要】2023年上半年有三AI新课程规划出炉,讲师持续招募中!

    2023年正式起航,想必大家都已经完全投入到了工作状态中,有三AI平台今年将在已有内容的基础上,继续进行新课程开发,本次我们来介绍今年上半年的课程计划,以及新讲师招募计划. 2023年新上线课程 我们 ...

  4. 又一无人机新法案将出炉,这次比FAA规定还严

    无人机法案对商业无人机的管制越来越多. 随着无人机越来越频繁的出现在我们的生活中,相关的法案也在不断的出炉.最近,美国议会委员会正在审议一项无人机法案,来保障居民的隐私不会被无人机所拍摄侵犯到.不过, ...

  5. 30个新职业薪酬出炉,程序员霸屏

    11月4日,北京市人力资源和社会保障局发布了<2021年北京市人力资源市场薪酬大数据报告>. 这个<报告>基于本市2020年度相关调研数据,按照行业.职位.群体等维度对薪酬数据 ...

  6. 百度地图多点路线规划_自驾游必备,多地点路线规划功能已经出炉了!!!

    对于喜欢自驾游的小伙伴们,元旦节假就快要开始啦.大家打算怎么计划自己的旅行呢? 身为一个拖延患者,我通常会拖到出发前的最后一个晚上,花上半小时,在网上搜索当地感兴趣的景点 (POI), 然后在百度地图 ...

  7. 700个项目,1万亿投资!广东新基建方案出炉!(附10省新基建政策汇总)

    11月5日,广东省人民政府办公厅发布了<广东省推进新型基础设施建设三年实施方案(2020-2022年)>(以下简称<实施方案>),提出将高质量建设5G网络.打造人工智能.区块链 ...

  8. wow服务器合并信息,新大服务器出炉 wow公布服务器合并方案

    我们非常高兴地告诉大家,大服务器实装已正式启动! 自第一组测试大服务器组(加基森+黑暗虚空)测试配对开始以来,我们对该配对进行了监测,到目前,我们发现服务器状况非常稳定,游戏环境优化明显.测试配对上的 ...

  9. 新自然指数出炉,哪些高校表现突出?

    日前,自然指数网站更新了2018年最新的自然指数排名(统计时间节点为2017.12.1-2018.11.30),中国高校整体表现依旧强势,各高校排名相比上一期略有变化. 自然指数于2014年11月首次 ...

最新文章

  1. jQuery EasyUI 表单插件 - Datebox 日期框
  2. 2021全国高校计算机能力挑战赛(初赛)Java试题一
  3. java随机输出10计算题
  4. Spring3 @ResponseBody注解引起头部Accept-Charset过大
  5. 分布式离线计算—HiveSQL
  6. ubuntu终端下快捷键,字体放大缩小等【逐渐完善篇】
  7. idea启动tomcat时报错:Error during artifact deployment. See server log for details.
  8. 搜索引擎优化系统知名乐云seo_seo技术出名 乐云seo:如何进行搜索引擎优化?
  9. 慎用Hyper-Threading Technology
  10. 好看的动态实时时间显示时钟HTML源码
  11. coxphfit+matlab,Cox Proportional Hazards Model
  12. MyBatis 【中文编码问题】
  13. 使用jekins自动构建部署java maven项目(jdk1.7+tomcat7.0+jenkins2.19.3)
  14. linux运维实战案例,Linux运维实战练习案例20151220~20151231
  15. 芯烨打印机WEB API 调用HEX的模式DEMO
  16. apply update from sdcard
  17. SAS PROC FORMAT
  18. 【《Real-Time Rendering 3rd》 提炼总结】(三) 第三章 · GPU渲染管线与可编程着色器 The Graphics Processing Unit
  19. 时域变换到频域?到底什么是傅里叶变换?
  20. Linux系统调用之lseek函数

热门文章

  1. 错乱的 Windows 10
  2. 漫画:唐玄奘教你横扫 AVL 树面试题无敌手!
  3. 分布式之API接口返回格式如何优雅设计?,苦熬一个月
  4. 想拿高工资?那些年Java面试官常问的知识点项目实战
  5. nginx并发性能测试
  6. linux 查看各个cpu使用率
  7. 金融matlab创建3x3数组,Matlatb金融时间序列工具箱——建立金融时间序列
  8. mysql 5.1升级windows_怎么在Windows下升级MySQL
  9. centos 7.5 mysql_CentOS7.5安装MySQL8以及相关设置
  10. 开始上手docker