NumPy ডেটা লোড করুন

TensorFlow.org এ দেখুন Google Colab-এ চালান GitHub-এ উৎস দেখুন নোটবুক ডাউনলোড করুন

এই টিউটোরিয়ালটি NumPy অ্যারে থেকে tf.data.Dataset ডেটা লোড করার একটি উদাহরণ প্রদান করে।

এই উদাহরণটি একটি .npz ফাইল থেকে MNIST ডেটাসেট লোড করে। যাইহোক, 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 সহ NumPy অ্যারে লোড করুন

ধরুন আপনার কাছে উদাহরণের একটি অ্যারে এবং লেবেলগুলির একটি সংশ্লিষ্ট অ্যারে রয়েছে, tf.data.Dataset tf.data.Dataset.from_tensor_slices করতে দুটি অ্যারেকে একটি টিপল হিসাবে পাস করুন।

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 [==============================] - 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]