tensorflow 加载数据集

tf.data.Dataset.from_tensor_slices:

使用tf.data.Dataset.from_tensor_slices五步加载数据集


import tensorflow as tf
from tensorflow import keras

def load_dataset():
	# Step0 准备数据集, 可以是自己动手丰衣足食, 也可以从 tf.keras.datasets 加载需要的数据集(获取到的是numpy数据) 
	# 这里以 mnist 为例
	(x, y), (x_test, y_test) = keras.datasets.mnist.load_data()
	
	# Step1 使用 tf.data.Dataset.from_tensor_slices 进行加载
	db_train = tf.data.Dataset.from_tensor_slices((x, y))
	db_test = tf.data.Dataset.from_tensor_slices((x_test, y_test))
	
	# Step2 打乱数据
	db_train.shuffle(1000)
	db_test.shuffle(1000)
	
	# Step3 预处理 (预处理函数在下面)
	db_train.map(preprocess)
	db_test.map(preprocess)

	# Step4 设置 batch size 一次喂入64个数据
	db_train.batch(64)
	db_test.batch(64)

	# Step5 设置迭代次数(迭代2次) test数据集不需要emmm
	db_train.repeat(2)

	return db_train, db_test

def preprocess(labels, images):
	'''
	最简单的预处理函数:
		转numpy为Tensor、分类问题需要处理label为one_hot编码、处理训练数据
	'''
	# 把numpy数据转为Tensor
	labels = tf.cast(labels, dtype=tf.int32)
	# labels 转为one_hot编码
	labels = tf.one_hot(labels, depth=10)
	# 顺手归一化
	images = tf.cast(images, dtype=tf.float32) / 255
	return labels, images



  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
TensorFlow 中,可以使用 `tf.keras.preprocessing.image_dataset_from_directory` 方法来加载本地图片数据集。这个方法可以从一个目录中读取图片,并将其转换成 TensorFlow 中的数据集。 以下是一个示例代码,演示如何使用 `image_dataset_from_directory` 方法加载本地图片数据集: ``` python import tensorflow as tf # 指定图片目录和 batch_size image_dir = "/path/to/image/directory/" batch_size = 32 # 使用 image_dataset_from_directory 方法加载数据集 train_dataset = tf.keras.preprocessing.image_dataset_from_directory( image_dir, validation_split=0.2, # 拆分训练集和验证集的比例 subset="training", # 使用训练集子集 seed=123, # 随机种子,用于拆分数据集 image_size=(224, 224),# 图片大小 batch_size=batch_size # 批量大小 ) val_dataset = tf.keras.preprocessing.image_dataset_from_directory( image_dir, validation_split=0.2, # 拆分训练集和验证集的比例 subset="validation", # 使用验证集子集 seed=123, # 随机种子,用于拆分数据集 image_size=(224, 224),# 图片大小 batch_size=batch_size # 批量大小 ) ``` 在这个示例中,我们指定了图片目录 `image_dir` 和批量大小 `batch_size`,然后使用 `image_dataset_from_directory` 方法加载数据集。这个方法会自动将图片转换成 TensorFlow 中的数据集,并且可以将数据集拆分成训练集和验证集两个子集。 如果需要对图片进行数据增强,可以使用 `tf.keras.preprocessing.image.ImageDataGenerator` 类来设置数据增强参数,并将其传递给 `image_dataset_from_directory` 方法。例如: ``` python import tensorflow as tf # 设置数据增强参数 data_augmentation = tf.keras.Sequential([ tf.keras.layers.experimental.preprocessing.RandomFlip('horizontal'), tf.keras.layers.experimental.preprocessing.RandomRotation(0.2), ]) # 使用 image_dataset_from_directory 方法加载数据集 train_dataset = tf.keras.preprocessing.image_dataset_from_directory( image_dir, validation_split=0.2, # 拆分训练集和验证集的比例 subset="training", # 使用训练集子集 seed=123, # 随机种子,用于拆分数据集 image_size=(224, 224), # 图片大小 batch_size=batch_size, # 批量大小 label_mode='categorical', # 标签类型 preprocessing_function=data_augmentation, # 数据增强 ) ``` 在这个示例中,我们使用 `Sequential` 类创建了一个数据增强模型,并将其传递给 `image_dataset_from_directory` 方法的 `preprocessing_function` 参数。这样,在加载数据集时,会自动对图片进行数据增强。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值