'ResnetIdentityBlock' থেকে উত্তরাধিকারসূত্রে প্রাপ্ত একটি শ্রেণী নির্ধারণ করে স্তর রচনা করতে টেনসরফ্লো ব্যবহার করা যেতে পারে। এটি একটি ব্লককে সংজ্ঞায়িত করতে ব্যবহৃত হয় যা স্তরগুলি রচনা করতে ব্যবহার করা যেতে পারে৷
আরো পড়ুন: টেনসরফ্লো কী এবং নিউরাল নেটওয়ার্ক তৈরি করতে টেনসরফ্লো-এর সাথে কেরাস কীভাবে কাজ করে?
একটি নিউরাল নেটওয়ার্ক যা অন্তত একটি স্তর ধারণ করে একটি কনভোলিউশনাল স্তর হিসাবে পরিচিত। আমরা শেখার মডেল তৈরি করতে কনভোলিউশনাল নিউরাল নেটওয়ার্ক ব্যবহার করতে পারি।
টেনসরফ্লো হাব হল একটি ভান্ডার যাতে রয়েছে প্রাক-প্রশিক্ষিত টেনসরফ্লো মডেল। টেনসরফ্লো শেখার মডেলগুলিকে সূক্ষ্ম-টিউন করতে ব্যবহার করা যেতে পারে। Tf.keras সহ TensorFlow Hub থেকে মডেলগুলি কীভাবে ব্যবহার করবেন তা আমরা বুঝব, TensorFlow Hub থেকে একটি চিত্র শ্রেণিবিন্যাস মডেল ব্যবহার করুন। এটি হয়ে গেলে, কাস্টমাইজড ইমেজ ক্লাসের জন্য একটি মডেলকে ফাইন-টিউন করার জন্য ট্রান্সফার লার্নিং করা যেতে পারে। এটি একটি ইমেজ নিতে এবং এটি কি তা ভবিষ্যদ্বাণী করার জন্য একটি পূর্বপ্রশিক্ষিত ক্লাসিফায়ার মডেল ব্যবহার করে করা হয়। এটি কোনো প্রশিক্ষণের প্রয়োজন ছাড়াই করা যেতে পারে।
নিচের কোডটি চালানোর জন্য আমরা Google Colaboratory ব্যবহার করছি। Google Colab বা Colaboratory ব্রাউজারে Python কোড চালাতে সাহায্য করে এবং এর জন্য শূন্য কনফিগারেশন এবং GPUs (গ্রাফিক্যাল প্রসেসিং ইউনিট) তে বিনামূল্যে অ্যাক্সেস প্রয়োজন। জুপিটার নোটবুকের উপরে কোলাবোরেটরি তৈরি করা হয়েছে।
উদাহরণ
প্রিন্ট ("লেয়ার রচনা করা") ক্লাস ResnetIdentityBlock(tf.keras.Model):def __init__(self, kernel_size, filters):super(ResnetIdentityBlock, self).__init__(name='') filters1, filters2, filters3 =ফিল্টার self.conv2a =tf.keras.layers.Conv2D(filters1, (1, 1)) self.bn2a =tf.keras.layers.BatchNormalization() self.conv2b =tf.keras.layers.Conv2D(filters2, kernel_size, প্যাডিং='একই') self.bn2b =tf.keras.layers.BatchNormalization() self.conv2c =tf.keras.layers.Conv2D(filters3, (1, 1)) self.bn2c =tf.keras.layers.BatchNormalization () def call(self, input_tensor, training=false):x =self.conv2a(input_tensor) x =self.bn2a(x, training=training) x =tf.nn.relu(x) x =self.conv2b( x) x =self.bn2b(x, training=training) x =tf.nn.relu(x) x =self.conv2c(x) x =self.bn2c(x, training=training) x +=input_tensor return tf .nn.relu(x)print("লেয়ারটিকে বলা হয়")ব্লক =ResnetIdentityBlock(1, [1, 2, 3])_ =ব্লক(tf.zeros([1, 2, 3, 3]))block.layerslen(block.variables)block.summary()
কোড ক্রেডিট −https://www.tensorflow.org/tutorials/customization/custom_layers
আউটপুট
<প্রি>লেয়ার রচনা করা লেয়ারটিকে মডেল বলা হয়:"resnet_identity_block"_________________________________________________________________ লেয়ার (টাইপ) আউটপুট শেপ পরম #==============================================================Conv2d (Conv2D) মাল্টিপল 4_____________________________________________________________________ব্যাচ_নরমালাইজেশন (ব্যাচ নং একাধিক 4___________________________________________________________ কনভ 2d_1) (ব্যাচ একাধিক 8_________________________________________________________________conv2d_2 (Conv2D) একাধিক 9_________________________________________________________________ব্যাচ_নরমালাইজেশন_2 (ব্যাচ একাধিক 12=========================>ব্যাখ্যা
-
একটি রেসনেটের প্রতিটি অবশিষ্ট ব্লক কনভল্যুশন, ব্যাচ স্বাভাবিককরণ এবং একটি শর্টকাট দ্বারা গঠিত।
-
স্তরগুলি অন্যান্য স্তরগুলির ভিতরেও নেস্ট করা যেতে পারে৷
-
আমাদের যখন Model.fit,Model.evaluate এবং Model.save-এর মতো মডেল পদ্ধতির প্রয়োজন হয়, তখন এটি keras.Model থেকে উত্তরাধিকারসূত্রে পাওয়া যেতে পারে।
-
keras.layers.Layer-এর পরিবর্তে keras.Model ব্যবহার করা হয়, যা ভেরিয়েবল ট্র্যাক করতে সাহায্য করে।
-
একটি কেরাস। মডেল এর অভ্যন্তরীণ স্তরগুলিকে ট্র্যাক করে, যার ফলে এটি স্তরগুলি পরীক্ষা করা সহজ করে তোলে