Tensorflow加载和处理数据集——tensorflow数据集项目

tensorflow进行数据集处理的办法有几种呢,归纳整理在其它文章中。这篇文章是通过学习<机器学习实战>资料书的总结。方便以后查看。
Tensorflow不仅可以加载和处理我们自己的数据集,其本身蕴含很多经典数据集,如:MNIST或Fashion MNIST、ImageNet数据集等。可以访问

https://homl.info/tfds

来查看完整列表以及每个数据集的描述(不过得翻墙)。
Tensorflow的数据集项目并没有和Tensorflow框架放在一起,所以要在环境下先安装tensorflow_datasets库,然后才能导入tfds
我实在conda中搭建的虚拟环境下安装的tensorflow,为了方便使用,我把tensorflow_datasets和tensorflow安装在同一个虚拟环境下。
直接使用:
环境激活:

conda activate envs_names

pip安装

pip install tensorlfow_datasets

然后就可以使用这个库加载需要的数据集:

import tensorflow_datasets as tfds
dataset = tfds.load(name='mnist') # 直接使用该库 加载MNIST数据集
mnist_train, mnist_test = dataset["train"], dataset["test"] #真好,已经帮我们分好训练集和测试集
# 然后还可以做一系列的操作
mnist_train = mnist_train.shuffle(10000).batch(32).prefetch(1) # 打乱、分批加载、预抓取

以上数据集中每个项目都是包含特征和标签的元组,但是在使用Keras框架时,希望的是一个包含两个元素的元组,所以可以先对mnist_train进行一些预处理

mnist_train = mnist_train.shuffle(10000).batch(32)
mnist_train = mnist_train.map(lambda items: (items["image"], items["label"])) # 将字典形式转为元组形式
mnist_train = mnist_train.prefetch(1)

还有一种更简单的数据集加载和处理方法,但是需要数据集本身是含有标签的,只需要在加载数据集的时候,让as_supervised=True就可以了,同样以MNIST数据集为例:

dataset = tfds.load(name="mnist", batch_size=32, as_supervised=True)
mnist_train = dataset["train"].prefetch(1)

然后就可以直接往搭建好的模型中喂数据了:

model=keras.models.Sequential()
model.add(keras.layers.Dense(....))
model.add(keras.layers.Dense(....))
model.add(keras.layers.Dense(....))
model.compile(loss="sparse_categorical_crossentroy", optimizer="sgd")
model.fit(mnist_train, epochs=5) # 直接往模型中加载数据就可以了

这种数据集的处理是非常简单的,大部分情况下,还是要自己去处理自己的数据集。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值