簡體   English   中英

如何在tensorflow2.0中更改用於訓練和評估的圖像數量?

[英]How to change the number of images to use for training and evaluating in tensorflow2.0?

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()

1. Tensorflow數據集

TF2.0 ,建議使用tf.data API和tf.keras tf.data.Dataset作為上述內容的一部分,允許您通過map調用輕松地對數據進行各種操作,如圖像增強(例如旋轉/移位)(您可以在文檔中找到其他可能性)。

Tensorflow數據集是Tensorflow生態系統的一部分,可以讓您更輕松地下載數據(各種現成數據集, 包括Fashion MNIST請參閱此處了解可用選項)並以tf.data.Dataset形式獲取。

使用此代碼段:

import tensorflow_datasets as tfds

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

將下載數據並自動將其拆分為testtrain (與Keras等效,除數據類型外)。

您可以創建自己的數據集構建器,但通常調用tfds.load就足以進行標准操作。

自定義拆分

現在,如果您想要不同的拆分(不是默認的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)

以類似的方式,您可以獲得每個分割的N百分比:

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

或者您甚至可以組合拆分以獲得更多這樣的數據(您可以根據需要進一步拆分此數據:

train_and_test = tfds.Split.TRAIN + tfds.Split.TEST

凱拉斯

Keras以numpy格式加載數據,雖然它不建議,並且不允許用簡單的map執行許多操作,你可以使用標准Python的切片表示法拆分它們:

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數組而不是tf.data.Dataset可能更方便,因此選擇權在您tf.data.Dataset

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM