TensorFlow.org'da görüntüleyin | Google Colab'da çalıştırın | Kaynağı GitHub'da görüntüleyin | Not defterini indir |
Bu öğretici, NumPy dizilerinden bir tf.data.Dataset
içine veri yükleme örneği sağlar.
Bu örnek, MNIST veri kümesini bir .npz
dosyasından yükler. Ancak NumPy dizilerinin kaynağı önemli değildir.
Kurmak
import numpy as np
import tensorflow as tf
.npz
dosyasından yükle
DATA_URL = 'https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz'
path = tf.keras.utils.get_file('mnist.npz', DATA_URL)
with np.load(path) as data:
train_examples = data['x_train']
train_labels = data['y_train']
test_examples = data['x_test']
test_labels = data['y_test']
NumPy dizilerini tf.data.Dataset
ile yükleyin
Bir dizi örneğiniz ve buna karşılık gelen bir etiket diziniz olduğunu varsayarak, bir tf.data.Dataset
oluşturmak için iki diziyi bir demet olarak tf.data.Dataset.from_tensor_slices
içine iletin.
train_dataset = tf.data.Dataset.from_tensor_slices((train_examples, train_labels))
test_dataset = tf.data.Dataset.from_tensor_slices((test_examples, test_labels))
Veri kümelerini kullanın
Veri kümelerini karıştırın ve toplu halde toplayın
BATCH_SIZE = 64
SHUFFLE_BUFFER_SIZE = 100
train_dataset = train_dataset.shuffle(SHUFFLE_BUFFER_SIZE).batch(BATCH_SIZE)
test_dataset = test_dataset.batch(BATCH_SIZE)
Bir model oluşturun ve eğitin
model = tf.keras.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10)
])
model.compile(optimizer=tf.keras.optimizers.RMSprop(),
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['sparse_categorical_accuracy'])
model.fit(train_dataset, epochs=10)
Epoch 1/10 938/938 [==============================] - 3s 2ms/step - loss: 3.5318 - sparse_categorical_accuracy: 0.8762 Epoch 2/10 938/938 [==============================] - 2s 2ms/step - loss: 0.5408 - sparse_categorical_accuracy: 0.9289 Epoch 3/10 938/938 [==============================] - 2s 2ms/step - loss: 0.3770 - sparse_categorical_accuracy: 0.9473 Epoch 4/10 938/938 [==============================] - 2s 2ms/step - loss: 0.3281 - sparse_categorical_accuracy: 0.9566 Epoch 5/10 938/938 [==============================] - 2s 2ms/step - loss: 0.2940 - sparse_categorical_accuracy: 0.9621 Epoch 6/10 938/938 [==============================] - 2s 2ms/step - loss: 0.2622 - sparse_categorical_accuracy: 0.9657 Epoch 7/10 938/938 [==============================] - 2s 2ms/step - loss: 0.2446 - sparse_categorical_accuracy: 0.9698 Epoch 8/10 938/938 [==============================] - 2s 2ms/step - loss: 0.2147 - sparse_categorical_accuracy: 0.9739 Epoch 9/10 938/938 [==============================] - 2s 2ms/step - loss: 0.1956 - sparse_categorical_accuracy: 0.9750 Epoch 10/10 938/938 [==============================] - 2s 2ms/step - loss: 0.1964 - sparse_categorical_accuracy: 0.9759 <keras.callbacks.History at 0x7fc7a80beb50>
model.evaluate(test_dataset)
157/157 [==============================] - 0s 2ms/step - loss: 0.7089 - sparse_categorical_accuracy: 0.9572 [0.7088937163352966, 0.9571999907493591]