কম্পিউটার

পাইথন ব্যবহার করে একটি এনকোডার এবং ডিকোডার ব্যবহার করে কীভাবে অটোএনকোডার তৈরি করা যায়?


Tensorflow হল একটি মেশিন লার্নিং ফ্রেমওয়ার্ক যা Google প্রদান করে। এটি একটি ওপেন সোর্স ফ্রেমওয়ার্ক যা পাইথনের সাথে অ্যালগরিদম, গভীর শিক্ষার অ্যাপ্লিকেশন এবং আরও অনেক কিছু বাস্তবায়নের জন্য ব্যবহৃত হয়। এটি গবেষণা এবং উৎপাদন উদ্দেশ্যে ব্যবহৃত হয়।

'টেনসরফ্লো' প্যাকেজটি নীচের কোড-

লাইনটি ব্যবহার করে উইন্ডোজে ইনস্টল করা যেতে পারে
পিপ ইনস্টল টেনসরফ্লো

টেনসর হল টেনসরফ্লোতে ব্যবহৃত একটি ডেটা স্ট্রাকচার। এটি একটি প্রবাহ চিত্রে প্রান্তগুলিকে সংযুক্ত করতে সহায়তা করে। এই ফ্লো ডায়াগ্রামটি 'ডেটা ফ্লো গ্রাফ' নামে পরিচিত। টেনসরগুলি একটি বহুমাত্রিক অ্যারে বা একটি তালিকা ছাড়া কিছুই নয়৷

ONEIROS (ওপেন এন্ডেড নিউরো-ইলেক্ট্রনিক ইন্টেলিজেন্ট রোবট অপারেটিং সিস্টেম) প্রকল্পের গবেষণার অংশ হিসেবে কেরাস তৈরি করা হয়েছিল। কেরাস একটি গভীর শিক্ষার API, যা পাইথনে লেখা। এটি একটি উচ্চ-স্তরের API যার একটি উত্পাদনশীল ইন্টারফেস রয়েছে যা মেশিন লার্নিং সমস্যা সমাধানে সহায়তা করে। এটি টেনসরফ্লো ফ্রেমওয়ার্কের উপরে চলে। এটি একটি দ্রুত পদ্ধতিতে পরীক্ষা সাহায্য করার জন্য নির্মিত হয়েছিল. এটি প্রয়োজনীয় বিমূর্ততা এবং বিল্ডিং ব্লকগুলি প্রদান করে যা মেশিন লার্নিং সমাধানগুলি বিকাশ এবং এনক্যাপসুলেট করার জন্য অপরিহার্য৷

কেরাস ইতিমধ্যেই টেনসরফ্লো প্যাকেজের মধ্যে উপস্থিত রয়েছে। এটি কোডের নীচের লাইন ব্যবহার করে অ্যাক্সেস করা যেতে পারে।

টেনসরফ্লো আমদানি কেরা থেকে টেনসরফ্লো আমদানি করুন

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

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

উদাহরণ

encoder_input =keras.Input(shape=(28, 28, 1), name="img")print("মডেলে লেয়ার যোগ করা হচ্ছে")x =layers.Conv2D(16, 3, activation="relu" )(encoder_input)x =layers.Conv2D(32, 3, activation="relu")(x)x =স্তরসমূহ।MaxPooling2D(3)(x)x =স্তরসমূহ।Conv2D(32, 3, activation="relu") (x)x =স্তরসমূহ।Conv2D(16, 3, activation="relu")(x)print("Global max pooling")encoder_output =layers.GlobalMaxPooling2D()(x)print("স্তর ব্যবহার করে একটি মডেল তৈরি করা ") encoder =keras.Model(encoder_input, encoder_output, name="encoder")print("মডেল সম্পর্কে আরও তথ্য")encoder.summary()print("মডেলের স্তরগুলিকে পুনরায় আকার দেওয়া")x =স্তরগুলি পুনঃআকৃতি( (4, 4, 1))(encoder_output)x =layers.Conv2DTtranspose(16, 3, activation="relu")(x)x =layers.Conv2DTtranspose(32, 3, activation="relu")(x)x =স্তর।UpSampling2D(3)(x)x =layers.Conv2DTranspose(16, 3, activation="relu")(x)decoder_output =layers.Conv2DTranspose(1, 3, activation="relu")(x)autoencoder =keras.Model(encoder_input, decoder_output, name="autoencoder") মুদ্রণ("অটোএনকোডার সম্পর্কে আরও তথ্য")autoencoder.summary()

কোড ক্রেডিট - https://www.tensorflow.org/guide/keras/functional

আউটপুট

মডেলে লেয়ার যোগ করা গ্লোবাল ম্যাক্স পুলিং পারফর্মিং গ্লোবাল ম্যাক্স পুলিং লেয়ার ব্যবহার করে একটি মডেল তৈরি করা মডেল সম্পর্কে আরও তথ্য মডেল:"এনকোডার"________________________________________________________________________ লেয়ার (টাইপ) আউটপুট শেপ পরম #=================================================================img (ইনপুট লেয়ার) ) [(কেউ না, ২8, ২8, 1)] 0_____________________________________________________________CONV2D (CONF2D) 160_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________MAX_POOLING2D ( ) 0_________________________________________________________________conv2d_2 (Conv2D) (কোনটিই নয়, 6, 6, 32) 9248_______________________________________________________________________conv2d_3 (Conv2D) (কোনটি নয়, 4, 4, 16) 4624______ _______________________________________________________________global_max_pooling2d (Global (None, 16) 0==============================================================মোট প্যারাম:18,672টি প্রশিক্ষণযোগ্য প্যারাম:18,672টি অ-প্রশিক্ষণযোগ্য প্যারাম:0_________________________________________________________________ মডেলের স্তরগুলিকে পুনরায় আকার দেওয়া অটোএনকোডার মডেল সম্পর্কে আরও তথ্য:"toauencoder" "____________________________________________________________________ স্তর (প্রকার) আউটপুট আকৃতি পরম #========================================+ 16) 160_______________________________________________________________conv2d_1 (Conv2D) (কোনটিই নয়, 24, 24, 32) 4640______________________________________________________________max_pooling2d (MaxPooling2D) (কোনটি নয়, 8, 8, 32) ______________________________________________________________conv2d_2 (Conv2D) (কোনটি, 6, 6, 32) 9248_________________________________________________________________conv2d_3 (Conv2D) (কোনটি, 4, 4, 16) 4624_________________________________________________________________global_max_pooling2d (গ্লোবাল (কেউ না, 16) 0_________________________________________________________________reshape (পুনর্নির্মাণ) (কোনটি, 4, 4, 1) 0_________________________________________________________________conv2d_transpose (Conv2DTran (একটিও, 6, 6, 16) 160_________________________________________________________________conv2d_transpose_1 (Conv2DTr (একটিও, 8, 8, 32) 4640_________________________________________________________________up_sampling2d (UpSampling2D) (কেউ না, 24, 24, 32) 0_________________________________________________________________conv2d_transpose_2 (Conv2DTr (কোনটি, 26, 26, 16) 4624_____________________________________________ ____________________conv2d_transpose_3 (Conv2DTr (কোনটি নয়, 28, 28, 1) 145=====================================> 

ব্যাখ্যা

  • স্তরগুলি মডেলে যোগ করা হয়৷

  • গ্লোবাল ম্যাক্স পুলিং এই স্তরগুলিতে সঞ্চালিত হয়

  • স্তরগুলি ব্যবহার করে একটি মডেল তৈরি করা হয়৷

  • মডেল সম্পর্কে আরও তথ্য 'সারাংশ' পদ্ধতি ব্যবহার করে প্রদর্শিত হতে পারে।

  • কার্যকরী API ব্যবহার করে, গ্রাফ-অফ-লেয়ারগুলির জন্য ইনপুট এবং আউটপুটগুলি নির্দিষ্ট করার পরে মডেলগুলি তৈরি করা হয়৷

  • এটি নির্দেশ করে যে একটি একক গ্রাফ একাধিক মডেল তৈরি করতে ব্যবহার করা যেতে পারে৷

  • এখানে, স্তরগুলির স্ট্যাক দুটি মডেলকে ইনস্ট্যান্ট করতে ব্যবহার করা হয়- একটি এনকোডার যা ইমেজ ইনপুটগুলিকে 16-মাত্রিক ভেক্টরে পরিণত করে এবং একটি অটোএনকোডার মডেল যা প্রশিক্ষণের জন্য ব্যবহৃত হয়৷


  1. কিভাবে TensorFlow একটি টেনসর তৈরি করতে এবং পাইথন ব্যবহার করে একটি বার্তা প্রদর্শন করতে ব্যবহার করা যেতে পারে?

  2. পাইথন এবং বোকেহ ব্যবহার করে কীভাবে অক্ষ সারিবদ্ধ আয়তক্ষেত্রগুলিকে কল্পনা করা যেতে পারে?

  3. কিভাবে একটি উল্লম্ব বার গ্রাফ Bokeh এবং Python ব্যবহার করে কল্পনা করা যেতে পারে?

  4. কিভাবে matplotlib এবং Python ব্যবহার করে একই চিত্রে একাধিক প্লট প্লট করা যায়?