কম্পিউটার

টেনসরফ্লো এবং পাইথন ব্যবহার করে ওভারফিটিং কমাতে কীভাবে বর্ধন ব্যবহার করা যেতে পারে?


অতিরিক্ত প্রশিক্ষণ ডেটা যোগ করে ওভারফিটিং কমাতে অগমেন্টেশন ব্যবহার করা যেতে পারে। এটি একটি ক্রমিক মডেল তৈরি করে করা হয় যা একটি 'RandomFlip' স্তর ব্যবহার করে৷

আরো পড়ুন: টেনসরফ্লো কী এবং নিউরাল নেটওয়ার্ক তৈরি করতে টেনসরফ্লো-এর সাথে কেরাস কীভাবে কাজ করে?

আমরা কেরাস সিকোয়েন্সিয়াল এপিআই ব্যবহার করব, যা একটি অনুক্রমিক মডেল তৈরি করতে সহায়ক যা স্তরগুলির একটি প্লেইন স্ট্যাকের সাথে কাজ করতে ব্যবহৃত হয়, যেখানে প্রতিটি স্তরে একটি ইনপুট টেনসর এবং একটি আউটপুট টেনসর রয়েছে৷

একটি নিউরাল নেটওয়ার্ক যা অন্তত একটি স্তর ধারণ করে একটি কনভোলিউশনাল স্তর হিসাবে পরিচিত। আমরা শেখার মডেল তৈরি করতে কনভোলিউশনাল নিউরাল নেটওয়ার্ক ব্যবহার করতে পারি।

keras.Sequential মডেল ব্যবহার করে একটি ইমেজ ক্লাসিফায়ার তৈরি করা হয় এবং preprocessing.image_dataset_from_directory ব্যবহার করে ডেটা লোড করা হয়। ডেটা দক্ষতার সাথে ডিস্ক থেকে লোড করা হয়। ওভারফিটিং চিহ্নিত করা হয় এবং এটি প্রশমিত করার জন্য কৌশল প্রয়োগ করা হয়। এই কৌশলগুলির মধ্যে ডেটা বৃদ্ধি এবং ড্রপআউট অন্তর্ভুক্ত। 3700টি ফুলের ছবি রয়েছে। এই ডেটাসেটে 5টি সাব ডিরেক্টরি রয়েছে এবং প্রতি ক্লাসে একটি সাব ডিরেক্টরি রয়েছে। তারা হল:

ডেইজি, ড্যান্ডেলিয়ন, গোলাপ, সূর্যমুখী এবং টিউলিপ।

নিচের কোডটি চালানোর জন্য আমরা Google Colaboratory ব্যবহার করছি। Google Colab বা Colaboratory ব্রাউজারে Python কোড চালাতে সাহায্য করে এবং এর জন্য শূন্য কনফিগারেশন এবং GPUs (গ্রাফিক্যাল প্রসেসিং ইউনিট) তে বিনামূল্যে অ্যাক্সেস প্রয়োজন। জুপিটার নোটবুকের উপরে কোলাবোরেটরি তৈরি করা হয়েছে।

যখন প্রশিক্ষণের উদাহরণের সংখ্যা কম হয়, মডেলটি প্রশিক্ষণের উদাহরণ থেকে শব্দ বা অবাঞ্ছিত বিবরণ থেকে শেখে। এটি নেতিবাচকভাবে নতুন উদাহরণে মডেলের কর্মক্ষমতা প্রভাবিত করে।

ওভারফিটিংয়ের কারণে, মডেলটি নতুন ডেটাসেটে ভালোভাবে সাধারণীকরণ করতে সক্ষম হবে না। ওভারফিটিং এড়ানো যায় এমন অনেক উপায় রয়েছে। আমরা অতিরিক্ত ফিটিং কাটিয়ে উঠতে ডেটা অগমেন্টেশন ব্যবহার করব। ডেটা অগমেন্টেশন বিদ্যমান উদাহরণগুলি থেকে অতিরিক্ত প্রশিক্ষণ ডেটা তৈরি করে র্যান্ডম ট্রান্সফর্মেশনের সাহায্যে সেগুলিকে বৃদ্ধি করে যা বিশ্বাসযোগ্য-সুদর্শন চিত্রগুলি তৈরি করবে৷

এটি মডেলটিকে ডেটার আরও দিকগুলিতে প্রকাশ করতে সহায়তা করে, যার ফলে মডেলটিকে আরও ভালভাবে সাধারণীকরণে সহায়তা করে। নিম্নলিখিত একটি উদাহরণ:

উদাহরণ

print("Using data augmentation to eliminate overfitting")
data_augmentation = keras.Sequential(
   [
      layers.experimental.preprocessing.RandomFlip("horizontal",input_shape=(img_height,
      img_width,3)),
      layers.experimental.preprocessing.RandomRotation(0.1),
      layers.experimental.preprocessing.RandomZoom(0.1),
   ]
)

কোড ক্রেডিট −https://www.tensorflow.org/tutorials/images/classification

আউটপুট

Using data augmentation to eliminate overfitting

ব্যাখ্যা

  • tf.keras.layers.experimental.preprocessing থেকে স্তরগুলি ব্যবহার করে ডেটা অগমেন্টেশন প্রয়োগ করা যেতে পারে।

  • এই স্তরগুলি অন্যান্য স্তরগুলির মতো মডেলের ভিতরে অন্তর্ভুক্ত করা হয় এবং GPU তে চলে৷

  • ওভারফিটিং দূর করতে বা কমাতে এটি করা হয়।


  1. পাইথন ব্যবহার করে মডেলকে প্রশিক্ষণ দেওয়ার জন্য কীভাবে টেনসরফ্লো ব্যবহার করা যেতে পারে?

  2. পাইথন ব্যবহার করে ডেটা ভিজ্যুয়ালাইজ করতে টেনসরফ্লো কীভাবে ব্যবহার করা যেতে পারে?

  3. কিভাবে TensorFlow পাইথন ব্যবহার করে একটি রৈখিক মডেল প্রশিক্ষণের জন্য ব্যবহার করা যেতে পারে?

  4. পাইথন ব্যবহার করে মডেল প্লট করার জন্য কেরাস কীভাবে ব্যবহার করা যেতে পারে?