Google I / O'daki önemli notları, ürün oturumlarını, atölyeleri ve daha fazlasını izleyin Oynatma listesine bakın

NumPy verilerini yükle

TensorFlow.org'da görüntüleyin Google Colab'de çalıştırın Kaynağı GitHub'da görüntüleyin Defteri indirin

Bu eğitici, NumPy dizilerinden tf.data.Dataset'e veri yüklemenin birtf.data.Dataset .

Bu örnek, MNIST veri kümesini bir .npz dosyasından yükler. Ancak NumPy dizilerinin kaynağı önemli değildir.

Kurulum

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 dizilerinitf.data.Dataset iletf.data.Dataset

Bir örnek dizisine ve karşılık gelen bir etiket dizisine sahip olduğunuzu varsayarsak, birtf.data.Dataset oluşturmak için iki diziyi bir demet olarak tf.data.Dataset.from_tensor_slicestf.data.Dataset .

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 işleyin

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.5303 - sparse_categorical_accuracy: 0.8715
Epoch 2/10
938/938 [==============================] - 2s 2ms/step - loss: 0.5368 - sparse_categorical_accuracy: 0.9236
Epoch 3/10
938/938 [==============================] - 2s 2ms/step - loss: 0.3773 - sparse_categorical_accuracy: 0.9435
Epoch 4/10
938/938 [==============================] - 2s 2ms/step - loss: 0.3382 - sparse_categorical_accuracy: 0.9524
Epoch 5/10
938/938 [==============================] - 2s 2ms/step - loss: 0.2958 - sparse_categorical_accuracy: 0.9577
Epoch 6/10
938/938 [==============================] - 2s 2ms/step - loss: 0.2562 - sparse_categorical_accuracy: 0.9636
Epoch 7/10
938/938 [==============================] - 2s 2ms/step - loss: 0.2408 - sparse_categorical_accuracy: 0.9664
Epoch 8/10
938/938 [==============================] - 2s 2ms/step - loss: 0.2283 - sparse_categorical_accuracy: 0.9699
Epoch 9/10
938/938 [==============================] - 2s 2ms/step - loss: 0.2040 - sparse_categorical_accuracy: 0.9704
Epoch 10/10
938/938 [==============================] - 2s 2ms/step - loss: 0.1929 - sparse_categorical_accuracy: 0.9734
<tensorflow.python.keras.callbacks.History at 0x7f20bc7e3050>
model.evaluate(test_dataset)
157/157 [==============================] - 0s 2ms/step - loss: 0.6609 - sparse_categorical_accuracy: 0.9530
[0.6609476804733276, 0.953000009059906]