This page was translated by the Cloud Translation API.
Switch to English

কেরাসের সাথে এমএনআইএসটিতে একটি নিউরাল নেটওয়ার্ক প্রশিক্ষণ

এই সাধারণ উদাহরণটি দেখায় যে কীভাবে কেরাস মডেলটিতে টিএফডিএস প্লাগ করতে হয়।

টেনসরফ্লো.অর্গ.এ দেখুন গুগল কোলাবে চালান গিটহাবের উত্স দেখুন
import tensorflow.compat.v2 as tf
import tensorflow_datasets as tfds

tf.enable_v2_behavior()

পদক্ষেপ 1: আপনার ইনপুট পাইপলাইন তৈরি করুন

পরামর্শগুলি ব্যবহার করে দক্ষ ইনপুট পাইপলাইন তৈরি করুন:

এমএনআইএসটি লোড করুন

নিম্নলিখিত যুক্তি দিয়ে লোড করুন:

  • shuffle_files : এমএনআইএসটি ডেটা কেবলমাত্র একটি ফাইলে সংরক্ষণ করা হয়, তবে ডিস্কে একাধিক ফাইলযুক্ত বৃহত্তর ডেটাসেটের জন্য, প্রশিক্ষণের সময় এগুলি বদলে নেওয়া ভাল অনুশীলন।
  • as_supervised : ডিক {'image': img, 'label': label} instead এর পরিবর্তে টিপল (img, label) প্রদান করে
(ds_train, ds_test), ds_info = tfds.load(
    'mnist',
    split=['train', 'test'],
    shuffle_files=True,
    as_supervised=True,
    with_info=True,
)
WARNING:absl:Dataset mnist is hosted on GCS. It will automatically be downloaded to your
local data directory. If you'd instead prefer to read directly from our public
GCS bucket (recommended if you're running on GCP), you can instead pass
`try_gcs=True` to `tfds.load` or set `data_dir=gs://tfds-data/datasets`.


Downloading and preparing dataset mnist/3.0.1 (download: 11.06 MiB, generated: 21.00 MiB, total: 32.06 MiB) to /home/kbuilder/tensorflow_datasets/mnist/3.0.1...
Dataset mnist downloaded and prepared to /home/kbuilder/tensorflow_datasets/mnist/3.0.1. Subsequent calls will reuse this data.

প্রশিক্ষণ পাইপলাইন তৈরি করুন

নিম্নলিখিত ট্রান্সমোরেশন প্রয়োগ করুন:

  • ds.map : টিএফডিএস চিত্রগুলি tf.uint8 হিসাবে সরবরাহ করে, যখন মডেলটি tf.float32 আশা করে, তাই চিত্রগুলি স্বাভাবিক করুন
  • ds.cache যেমন ডেটাসেট মেমরিতে ফিট করে তত ভাল পারফরম্যান্সের জন্য ds.cache করার আগে ক্যাশে।
    দ্রষ্টব্য: ক্যাশে যাওয়ার পরে এলোমেলো রূপান্তর প্রয়োগ করা উচিত
  • ds.shuffle : সত্যিকারের ds.shuffle জন্য, পুরো ডেটাসেট আকারে শাফল বাফার সেট করুন।
    দ্রষ্টব্য: মেমরির সাথে খাপ খায় না এমন বৃহত্তর ডেটাসেটগুলির জন্য, আপনার সিস্টেম যদি এটি অনুমতি দেয় তবে একটি মান মান 1000 হয়।
  • ds.batch : প্রতিটি ds.batch অনন্য ব্যাচ পেতে ds.batch পরে ব্যাচ।
  • ds.prefetch : পারফরম্যান্সের জন্য প্রিফেচিং করে পাইপলাইনটি শেষ করার ভাল অনুশীলন।
def normalize_img(image, label):
  """Normalizes images: `uint8` -> `float32`."""
  return tf.cast(image, tf.float32) / 255., label

ds_train = ds_train.map(
    normalize_img, num_parallel_calls=tf.data.experimental.AUTOTUNE)
ds_train = ds_train.cache()
ds_train = ds_train.shuffle(ds_info.splits['train'].num_examples)
ds_train = ds_train.batch(128)
ds_train = ds_train.prefetch(tf.data.experimental.AUTOTUNE)

মূল্যায়ন পাইপলাইন তৈরি করুন

টেস্টিং পাইপলাইন প্রশিক্ষণের পাইপলাইনের সাথে সামান্য পার্থক্য সহ:

  • কোনও ds.shuffle() কল নেই
  • ক্যাচিং ব্যাচিংয়ের পরে করা হয় (ব্যাচগুলি যুগের মধ্যে একই হতে পারে)
ds_test = ds_test.map(
    normalize_img, num_parallel_calls=tf.data.experimental.AUTOTUNE)
ds_test = ds_test.batch(128)
ds_test = ds_test.cache()
ds_test = ds_test.prefetch(tf.data.experimental.AUTOTUNE)

পদক্ষেপ 2: মডেলটি তৈরি এবং প্রশিক্ষণ দিন

কেরাসে ইনপুট পাইপলাইনটি প্লাগ করুন।

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28, 1)),
  tf.keras.layers.Dense(128,activation='relu'),
  tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(
    loss='sparse_categorical_crossentropy',
    optimizer=tf.keras.optimizers.Adam(0.001),
    metrics=['accuracy'],
)

model.fit(
    ds_train,
    epochs=6,
    validation_data=ds_test,
)
Epoch 1/6
469/469 [==============================] - 1s 3ms/step - loss: 0.3574 - accuracy: 0.9004 - val_loss: 0.1991 - val_accuracy: 0.9405
Epoch 2/6
469/469 [==============================] - 1s 2ms/step - loss: 0.1662 - accuracy: 0.9523 - val_loss: 0.1382 - val_accuracy: 0.9592
Epoch 3/6
469/469 [==============================] - 1s 2ms/step - loss: 0.1181 - accuracy: 0.9661 - val_loss: 0.1110 - val_accuracy: 0.9663
Epoch 4/6
469/469 [==============================] - 1s 2ms/step - loss: 0.0913 - accuracy: 0.9740 - val_loss: 0.0955 - val_accuracy: 0.9698
Epoch 5/6
469/469 [==============================] - 1s 2ms/step - loss: 0.0734 - accuracy: 0.9786 - val_loss: 0.0818 - val_accuracy: 0.9750
Epoch 6/6
469/469 [==============================] - 1s 2ms/step - loss: 0.0604 - accuracy: 0.9820 - val_loss: 0.0827 - val_accuracy: 0.9735

<tensorflow.python.keras.callbacks.History at 0x7f6b1c42ceb8>