يوم مجتمع ML هو 9 نوفمبر! الانضمام إلينا للحصول على التحديثات من TensorFlow، JAX، وأكثر معرفة المزيد

تحميل بيانات NumPy

عرض على TensorFlow.org تشغيل في Google Colab عرض المصدر على جيثب تحميل دفتر

يقدم هذا البرنامج التعليمي مثالاً على تحميل البيانات من مصفوفاتtf.data.Dataset إلىtf.data.Dataset .

يقوم هذا المثال بتحميل مجموعة البيانات MNIST من ملف .npz . ومع ذلك ، فإن مصدر مصفوفات NumPy ليس مهمًا.

يثبت

import numpy as np
import tensorflow as tf

تحميل من ملف .npz

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']

قم بتحميل مصفوفاتtf.data.Dataset باستخدامtf.data.Dataset

بافتراض أن لديك مصفوفة من الأمثلة ومصفوفة مقابلة من الملصقات ، مرر المصفوفتين tf.data.Dataset.from_tensor_slices إلى tf.data.Dataset.from_tensor_slices لإنشاءtf.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))

استخدم مجموعات البيانات

خلط مجموعات البيانات وتجميعها

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)

بناء وتدريب نموذج

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 [==============================] - 2s 2ms/step - loss: 3.2085 - sparse_categorical_accuracy: 0.8713
Epoch 2/10
938/938 [==============================] - 2s 2ms/step - loss: 0.5051 - sparse_categorical_accuracy: 0.9253
Epoch 3/10
938/938 [==============================] - 2s 2ms/step - loss: 0.3736 - sparse_categorical_accuracy: 0.9440
Epoch 4/10
938/938 [==============================] - 2s 2ms/step - loss: 0.3181 - sparse_categorical_accuracy: 0.9516
Epoch 5/10
938/938 [==============================] - 2s 2ms/step - loss: 0.2931 - sparse_categorical_accuracy: 0.9577
Epoch 6/10
938/938 [==============================] - 2s 2ms/step - loss: 0.2674 - sparse_categorical_accuracy: 0.9630
Epoch 7/10
938/938 [==============================] - 2s 2ms/step - loss: 0.2480 - sparse_categorical_accuracy: 0.9669
Epoch 8/10
938/938 [==============================] - 2s 2ms/step - loss: 0.2365 - sparse_categorical_accuracy: 0.9693
Epoch 9/10
938/938 [==============================] - 2s 2ms/step - loss: 0.2131 - sparse_categorical_accuracy: 0.9723
Epoch 10/10
938/938 [==============================] - 2s 2ms/step - loss: 0.2017 - sparse_categorical_accuracy: 0.9748
<tensorflow.python.keras.callbacks.History at 0x7feec7f89810>
model.evaluate(test_dataset)
157/157 [==============================] - 0s 2ms/step - loss: 0.7410 - sparse_categorical_accuracy: 0.9558
[0.7409695386886597, 0.9557999968528748]