内容简介:吴恩达说过,公共数据集为机器学习研究这枚火箭提供了动力,但将这些数据集放入机器学习管道就已经够难的了。编写供下载的一次性脚本,准备他们要用的源格式和复杂性不一的数据集,相信这种痛苦每个程序员都有过切身体会。但现在,你再也不会被这种痛苦困扰了。谷歌今天开源了一个机器学习数据集,可在 TensorFlow 直接调用,这为开发人员省去了不少麻烦。照例先放数据集:
吴恩达说过,公共数据集为机器学习研究这枚火箭提供了动力,但将这些数据集放入机器学习管道就已经够难的了。编写供下载的一次性脚本,准备他们要用的源格式和复杂性不一的数据集,相信这种痛苦每个 程序员 都有过切身体会。
但现在,你再也不会被这种痛苦困扰了。谷歌今天开源了一个机器学习数据集,可在 TensorFlow 直接调用,这为开发人员省去了不少麻烦。
照例先放数据集:
GitHub: https://github.com/tensorflow/datasets
今天,我们很高兴地推出 TensorFlow 数据集,它将作为 tf.data.Datasets 和 NumPy 数组向公众开放。它可以完成从获取源数据,到准备磁盘上的通用格式的所有琐碎工作,并使用 tf.data API 构建高性能输入管道,这些管道支持 TensorFlow 2.0,并可与 tf.keras 模型一起使用。我们推出了 29 个流行的研究 数据集 ,如 MNIST、Street View House Numbers、包含 10 亿数据的语言模型基准和大型电影评论数据集,并将在未来几个月推出更多数据集;我们也希望你可以 加入并贡献数据集 。
tl;dr
复制代码
# Install: pip install tensorflow-datasets importtensorflow_datasetsastfds mnist_data= tfds.load("mnist") mnist_train, mnist_test = mnist_data["train"], mnist_data["test"] assertisinstance(mnist_train, tf.data.Dataset)
在 Colab notebook 上试试 tfds 。
每个数据集都作为 DatasetBuilder 公开,它会告诉你:
- 从哪里下载数据以及如何提取数据并将其写入标准格式( DatasetBuilder.download_and_prepare )。
- 如何从磁盘加载它( DatasetBuilder.as_dataset )。
- 以及有关数据集的所有信息,例如所有要素的名称、类型和形状,每个拆分中的记录数、源 URL、数据集或相关论文的引用等( DatasetBuilder.info )。
你可以直接对所有 DatasetBuilders 进行实例化或使 用 tfds.builder 字符串获取 :
复制代码
importtensorflow_datasetsastfds #Fetchthe dataset directly mnist = tfds.image.MNIST() #orbystringname mnist = tfds.builder('mnist') # Describe the datasetwithDatasetInfo assertmnist.info.features['image'].shape == (28,28,1) assertmnist.info.features['label'].num_classes ==10 assertmnist.info.splits['train'].num_examples ==60000 # Download the data,prepareit,andwriteittodisk mnist.download_and_prepare() #Loaddatafromdiskastf.data.Datasets datasets = mnist.as_dataset() train_dataset, test_dataset = datasets['train'], datasets['test'] assertisinstance(train_dataset, tf.data.Dataset) #Andconvert the DatasettoNumPy arraysifyou'd like for example in tfds.as_numpy(train_dataset): image, label = example['image'], example['label'] assert isinstance(image, np.array) {1}
as_dataset()接受一个 batch_size 参数,它将提供批量示例,而不是一次一个示例。对于适合内存的小型数据集,你可以用 batch_size = -1 立即获取整个数据集作为 tf.Tensor。使用 tfds.as_numpy() 可以轻松地将所有 tf.data.Datasets 转换为 NumPy 数组的参数。
为方便起见,你可以使用 tfds.load 执行以上所有操作,tfds.load 按名称获取 DatasetBuilder,调用 download_and_prepare()以及 as_dataset()。
复制代码
importtensorflow_datasetsastfds datasets= tfds.load("mnist") train_dataset, test_dataset = datasets["train"], datasets["test"] assertisinstance(train_dataset, tf.data.Dataset)
你也可以通过传递 with_info = True 轻松地从 tfds.load 获取 DatasetInfo 对象 。有关所有选项,请参阅 API 文档 。
数据集版本管理
每个数据集都是版本化的(builder.info.version),你大可放心,数据不会随意发生变化,且结果是可重现的。目前,我们保证如果数据发生变化,将增加版本。
请注意,尽管目前我们保证给定同一版本下的数据值和拆分是相同的,但不保证对同一版本的记录进行排序。
数据集配置
具有不同变体的数据集使用命名的 BuilderConfigs 进行配置。例如,大型电影评论数据集 ( tfds.text.IMDBReviews ) 不同的输入可能有不同的编码(例如,纯文本、字符编码或子词编码)。内置配置与数据集文档一起列出,可以通过字符串进行寻址,也可以传入你自己的配置。
复制代码
# See the built-in configs configs = tfds.text.IMDBReviews.builder_configs assert"bytes"in configs # Address a built-in config with tfds.builder imdb = tfds.builder("imdb_reviews/bytes") # or when constructing the builder directly imdb = tfds.text.IMDBReviews(config="bytes") # or use your own custom configuration my_encoder = tfds.features.text.ByteTextEncoder(additional_tokens=['hello']) my_config = tfds.text.IMDBReviewsConfig( name="my_config", version="1.0.0", text_encoder_config=tfds.features.text.TextEncoderConfig(encoder=my_encoder), ) imdb = tfds.text.IMDBReviews(config=my_config)
请参阅有关添加数据集的文档中有关 数据集配置 的部分。
文本数据集和词汇表
由于编码和词汇文件不同,文本数据集通常很难处理。tensorflow-datasets 让这一过程变得更简单。它包含许多文本任务,包括三种 TextEncoders,且都支持 Unicode:
- ByteTextEncoder 用于字节 / 字符级编码
- TokenTextEncoder 用于基于词汇表文件的单词级编码
- SubwordTextEncoder 用于子词级编码(以及针对特定文本语料库创建子词词汇的能力),可以字节级回退,因此它是完全可逆的。例如,“hello world”可以拆分为 [“he”,“llo”,“”,“wor”,“ld”],然后进行整数编码。子词是词级和字节级编码之间的媒介,在一些自然语言研究项目中很受欢迎。
可以通过 DatasetInfo 访问编码器及其词汇表大小:
复制代码
imdb = tfds.builder("imdb_reviews/subwords8k") # Get the TextEncoder from DatasetInfo encoder = imdb.info.features["text"].encoder assert isinstance(encoder, tfds.features.text.SubwordTextEncoder) # Encode, decode ids = encoder.encode("Hello world") assert encoder.decode(ids) =="Hello world" # Get the vocabulary size vocab_size = encoder.vocab_size
TensorFlow 和 TensorFlow 数据集都将在未来进一步改进文本支持。
入门
我们的 文档站点 是开始使用 tensorflow 数据集的最佳位置。以下是一些入门指南:
我们将在未来几个月内添加更多数据集,并希望社区能够加入。如果你需要什么数据集,请在 GitHub 创建话题 ,我们将对下一步应添加的数据集进行投票,讨论实施细节或寻求帮助。非常欢迎 Pull Requests!人人献出一点数据集,让社区变得更美好,把你的数据集贡献给 TFDS 声名大噪吧!
当获取数据变得简单,我们就能快乐地建模!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- SOFATracer 发布 3.0.5 版本 | 蚂蚁金服开源分布式系统调用跟踪组件
- SOFATracer 发布 3.0.5 版本 | 蚂蚁金服开源分布式系统调用跟踪组件
- FGC实战:如何用Idea揪出开源组件调用System.gc导致频繁FGC
- SOFATracer 2.4.1/3.0.6 发布,蚂蚁金服开源分布式系统调用跟踪组件
- 直观讲解-RPC调用和HTTP调用的区别
- 调用链系列一:解读UAVStack中的调用链技术
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Beginning Google Maps API 3
Gabriel Svennerberg / Apress / 2010-07-27 / $39.99
This book is about the next generation of the Google Maps API. It will provide the reader with the skills and knowledge necessary to incorporate Google Maps v3 on web pages in both desktop and mobile ......一起来看看 《Beginning Google Maps API 3》 这本书的介绍吧!
JSON 在线解析
在线 JSON 格式化工具
UNIX 时间戳转换
UNIX 时间戳转换