一些最常用的数据集如 MNIST、Fashion MNIST、cifar10/100 在 tf.keras.datasets 中就能找到,但对于其它也常用的数据集如 SVHN、Caltech101,tf.keras.datasets 中没有,此时我们可以在 TensorFlow Datasets 中找找看。

tensorflow_datasets 里面包含的数据集列表:https://www.tensorflow.org/datasets/catalog/overview#all_datasets

tensorflow_datasets 安装:pip install tensorflow_datasets

tensorflow_datasets 示例:

得到 tf.data.Dataset 对象:

import tensorflow as tf
import tensorflow_datasets as tfds data, info = tfds.load("mnist", with_info=True)
print(info) train_data, test_data = data['train'], data['test']
assert isinstance(train_data, tf.data.Dataset)
print(train_data)

得到 numpy.ndarray 对象:

import tensorflow_datasets as tfds
# `batch_size=-1`, will return the full dataset as `tf.Tensor`s.
dataset, info = tfds.load("mnist", batch_size=-1, with_info=True)
print(info)
train, test = dataset["train"], dataset["test"]
print(type(train['image'])) train = tfds.as_numpy(train)
print(type(train['image']))
print(train['image'].shape)
print(train['label'].shape)

tf.data.Dataset 进行简单划分验证集可以参考 https://github.com/tensorflow/datasets/issues/665#issuecomment-502409920

如果想对 MNIST 等数据集手动分层随机划分出一个验证集,还是转化成 numpy.ndarray 比较方便,再使用 sklearn 的 train_test_split 方法一行代码就可以搞定。

References

https://www.tensorflow.org/datasets

https://www.tensorflow.org/datasets/catalog/overview#all_datasets

https://github.com/tensorflow/datasets/blob/master/docs/splits.md

【tf.keras】tensorflow datasets,tfds的更多相关文章

  1. 【tf.keras】TensorFlow 1.x 到 2.0 的 API 变化

    TensorFlow 2.0 版本将 keras 作为高级 API,对于 keras boy/girl 来说,这就很友好了.tf.keras 从 1.x 版本迁移到 2.0 版本,需要修改几个地方. ...

  2. 【tf.keras】使用手册

    目录 0. 简介 1. 安装 1.1 安装 CUDA 和 cuDNN 2. 数据集 2.1 使用 tensorflow_datasets 导入公共数据集 2.2 数据集过大导致内存溢出 2.3 加载 ...

  3. 【tf.keras】tf.keras使用tensorflow中定义的optimizer

    Update:2019/09/21 使用 tf.keras 时,请使用 tf.keras.optimizers 里面的优化器,不要使用 tf.train 里面的优化器,不然学习率衰减会出现问题. 使用 ...

  4. 【tf.keras】在 cifar 上训练 AlexNet,数据集过大导致 OOM

    cifar-10 每张图片的大小为 32×32,而 AlexNet 要求图片的输入是 224×224(也有说 227×227 的,这是 224×224 的图片进行大小为 2 的 zero paddin ...

  5. 【tf.keras】实现 F1 score、precision、recall 等 metric

    tf.keras.metric 里面竟然没有实现 F1 score.recall.precision 等指标,一开始觉得真不可思议.但这是有原因的,这些指标在 batch-wise 上计算都没有意义, ...

  6. 【tf.keras】ssl.SSLError: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:1977)

    问题描述 tf.keras 在加载 cifar10 数据时报错,ssl.SSLError: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption ...

  7. 【tf.keras】AdamW: Adam with Weight decay

    论文 Decoupled Weight Decay Regularization 中提到,Adam 在使用时,L2 与 weight decay 并不等价,并提出了 AdamW,在神经网络需要正则项时 ...

  8. 【tf.keras】tf.keras加载AlexNet预训练模型

    目录 从 PyTorch 中导出模型参数 第 0 步:配置环境 第 1 步:安装 MMdnn 第 2 步:得到 PyTorch 保存完整结构和参数的模型(pth 文件) 第 3 步:导出 PyTorc ...

  9. 【tf.keras】Resource exhausted: OOM when allocating tensor with shape [9216,4096] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc

    运行以下类似代码: while True: inputs, outputs = get_AlexNet() model = tf.keras.Model(inputs=inputs, outputs= ...

随机推荐

  1. ajax来获取JWT的token

    AJAX方式获取token需要用

  2. 【hibernate】常用注解

    [hibernate]常用注解 转载:https://www.cnblogs.com/yangchongxing/p/10357118.html 目录 ======================== ...

  3. CSS | 自适应两栏布局方法

    html代码: <div class="main"> <div class="left" style="background: #0 ...

  4. 《Java基础知识》Java技术总结

    1. Java 知识点总结 Java标示符.保留字和数制:https://www.cnblogs.com/jssj/p/11114041.html Java数据类型以及变量的定义:https://ww ...

  5. SpringBoot集成Swagger2在线文档

    目录 SpringBoot集成Swagger2在线文档 前言 集成SpringBoot 登录接口文档示例 代码 效果 注解说明 总结 SpringBoot集成Swagger2在线文档 前言 不得不说, ...

  6. AOP框架Dora.Interception 3.0 [3]: 拦截器设计

    对于所有的AOP框架来说,多个拦截器最终会应用到某个方法上.这些拦截器按照指定的顺序构成一个管道,管道的另一端就是针对目标方法的调用.从设计角度来将,拦截器和中间件本质是一样的,那么我们可以按照类似的 ...

  7. EFCore的外键级联删除导致的【可能会导致循环或多重级联路径】

    之前也是经常遇到这个问题,但好在每次创建的实体不多,很容易就能找到是哪个外键导致级联循环删除问题 之前都是这么处理,因为创建的实体也不多,所以还处理得来 但最近跟别人合作写后端,别人写了好多实体,我一 ...

  8. centos安装redis并开启多个redis实例

    1.下载安装包       下载地址 :  http://download.redis.io/releases/,去里面找对应的版本下载        例如  wget http://download ...

  9. abp大文件附件功能视频教程

    视频分享地址:https://share.weiyun.com/5wtofib

  10. Java面向对象之构造器

    目录 Java面向对象之构造器 利用构造器确保初始化 构造器重载 Java面向对象之构造器 利用构造器确保初始化 初始化问题是关系编程方式是否安全的一个重要的问题. 功能:在创建对象时执行初始化. 在 ...