TensorFlow:数据集加载

it2025-01-28  13

TensorFlow:数据集加载

数据集加载

数据集加载

1.keas.datasets tensoflow.keras提供了keras.datasets的接口

常见的数据集: Boston housing price regerssion dataset MNIST/Fashion-MNIST dataset sentiment classification dataset(imdb) small images classidication dataset(CIFAR10/100)

数据集加载步骤 Step0: 准备要加载的numpy数据 Step1: 使用 tf.data.Dataset.from_tensor_slices() 函数进行加载 Step2: 使用 shuffle() 打乱数据 Step3: 使用 map() 函数进行预处理 Step4: 使用 batch() 函数设置 batch size 值 Step5: 根据需要 使用 repeat() 设置是否循环迭代数据集

MNIST

keras.datasets.mnist.load_data() 将MNIST数据集加载并处理成Numpy格式。 (x,y)是60000张训练数据集, (x_test,y_test)是10000张测试数据集 其中y和y_test存储的是0~9的数字,代表每张图片的值。 y[:4]=[5,0,4,1]表示前四张图片的值分别为5,0,4,1。 tf.one_hot( )将y的数据转换成one_hot类型。

CIFAR10/100 10和100表示数据的类别,一共10个大类,每一个大类分成10个小类,共有100类。 图片的size=[32,32,3]数据很小。 共有60000张图片,其中50000张是训练数据集,10000张是测试数据集。

tf.data.Dataset.from_tensor_slices() 切分传入的 Tensor 的第一个维度,生成相应的 dataset 使用迭代器进行迭代 .shuffle 将数据集打散

.map 数据预处理

.batch 设置batch_size,下图的db2.batch(32),batch_size=32,以32张图片分为一组。 .repeat 设置数据集的迭代次数,空着则一致循环。

For Example:

def preparer_mnist_featues_and_lables(x, y): x = tf.cast(x, tf.float32) / 255. #缩放到0~1范围 y = tf.cast(y, tf.int64) retu x,y def mnist_dataset(): (x, y), (x_val, y_val) = datasets.fanshion_muist.load_data() #加载数据集 # x:60k y:10k x_val:60k y_val:10k y = tf.one_hot(y, depth = 10) #y:[10k,10] y_val = tf.one_hot(y_val, depth = 10) #y_val:[10k,10] ds = tf.data.Dataset.from_tenso_slices((x, y)) ds = ds.map(repae_mnist_featues_and_lables) #预处理 ds = ds.shuffle(60000).batch(100) #打散在batch ds_val = tf.data.Dataset.from_tenso_slices((x_val, y_val)) ds_val = ds_val.map(repae_mnist_featues_and_lables) ds_val = ds_val.shuffle(10000).batch(100) return ds, ds_val
最新回复(0)