如何在tensorflow2.0中更改用于训练和评估的图像数量?

问题描述 投票:1回答:1

Fashion-MNIST数据集自动返回60,000张用于训练的图像和10,000张用于评估的图像。我该如何更改这些数字?

这是我的colab源代码,相关部分是:

fashion_mnist = keras.datasets.fashion_mnist

(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
tensorflow tensorflow-datasets mnist loaddata tensorflow2.0
1个回答
3
投票

1. Tensorflow Datasets

TF2.0以来,建议使用tf.data API和tf.kerastf.data.Dataset作为前述的一部分,允许您通过map调用轻松地对您的数据进行各种操作,如图像增强(例如旋转/移位)(您可以找到其他可能性in the documentation)。

Tensorflow Datasets是Tensorflow生态系统的一部分,可以让您更轻松地下载数据(各种现成数据集,包括Fashion MNIST,see here可用选项),并且已经以tf.data.Dataset形式获取。

使用此代码段:

import tensorflow_datasets as tfds

train, test = tfds.load("fashion_mnist", as_supervised=True)

将下载数据并自动将其拆分为testtrain(与Keras等效项相同,数据类型除外)。

您可以创建自己的数据集构建器,但通常调用tfds.load就足以进行标准操作。

Custom splits

现在,如果你想要不同的分裂(不是默认的60000训练和10000测试),你可以使用tfds.Split对象来定义它。默认情况下,每个提供的数据集(因此包含您的Fashion MNIST)提供默认的tfds.Split.TRAINtfds.Split.TEST(有些也提供tfds.Split.VALID)。

这些默认拆分可以通过各种方式进一步划分为子部分:

TESTTRAIN中的一个分成N部分。下面的代码只会下载来自TRAIN的30.000张图片和来自测试的5.000张图片:

import tensorflow_datasets as tfds

train_half_1, train_half_2 = tfds.Split.TRAIN.subsplit(2)
test1, test2, test3, test4 = tfds.Split.TEST.subsplit(4)

train_first_half = tfds.load("fashion-mnist", split=train_half_1)
test_second_quarter = tfds.load("fashion-mnist", split=test2)

以类似的方式,你可以采取每个分裂的qazxsw poi百分比:

N

或者您甚至可以组合拆分以获得更多这样的数据(您可以根据需要进一步拆分此数据:

first_10_percent = tfds.Split.TRAIN.subsplit(tfds.percent[:10])

2. Keras

Keras以train_and_test = tfds.Split.TRAIN + tfds.Split.TEST 格式加载数据,虽然它不建议并且不允许用简单的numpy执行许多操作,你可以使用map拆分它们:

standard Python's slicing notation

另一方面,对于某些应用程序(尤其是更多非标准应用程序)使用import tensorflow as tf fashion_mnist = tf.keras.datasets.fashion_mnist (X_train, y_train), (X_test, y_test) = fashion_mnist.load_data() # First 10.000 elements from train X_train_subset = X_train[:10000] # Elements from 1000 to 5000 from test labels y_test_subset = y_test[1000:5000] # Elements from 8500 to the end of test data X_test_subset = X_test[8500:] 数组而不是numpy可能更方便,因此选择权在您手中。

© www.soinside.com 2019 - 2024. All rights reserved.