বিভিন্ন লাইব্রেরীর ব্যবহার

Last updated 3 months ago

আর্টিফিশিয়াল নিউরাল নেটওয়ার্কের গভীরের কর্মকাণ্ড গুলোর উপর যথেষ্ট পরিমাণ স্বচ্ছ ধারনা থাকার পরেই কেবল এরকম কিছু লাইব্রেরীর ব্যবহার করা উচিৎ হবে। TensorFlowবা সিমিলার লাইব্রেরী গুলো আসলে কি করে?আপনি ম্যানুয়ালি হয়ত Matrix Multiplication, Activation Function, Cost Functionবা Gradient Descentকরার জন্য এবং নিউরাল নেটওয়ার্কের লেয়ার বা নিউরন গুলো ডিফাইন করার জন্য এক গাদা কোড লিখবেন। যেভাবে এখন পর্যন্ত আমরা করেছি। আবার হয়ত,ইমেজ বা সাইন্ড নিয়ে কাজ করার সময় প্রাথমিক স্টেজে ইমেজ/সাউন্ড ডাটা ম্যানিপুলেট করার জন্যও কিছু কোড লিখবেন,যেমন -ইমেজকে গ্রেস্কেলে কনভার্ট করা,চ্যানেল আলাদা করা,ডাইমেনশন ঠিক ঠাক করা ইত্যাদি। মেশিন লার্নিং এবং ডিপ লার্নিং লাইব্রেরী গুলো বস্তুত এই ম্যানুয়াল কাজ গুলোর জন্যই কিছু রেডিমেড ফাংশন বা মেথড বানিয়ে রেখেছে। অর্থাৎ যে কাজ গুলো সবসময়ই করতে হয় যেকোনো মডেল নিয়ে কাজ করার সময়,সেগুলোর জন্য বিভিন্ন হেল্পার ফাংশন এবং আরও কিছু উপকারী ও গুরুত্বপূর্ণ ফিচার নিয়েই এরকম লাইব্রেরী গুলো তৈরি।</p>

এগুলোকে হাই লেভেল বলতে হবে কারন আপনি অনেক ফাংশনের শুধু নাম ব্যবহার করেই সেটার ইমপ্লিমেন্টেশন করে ফেলতে পারেন। সেগুলোর গভীরে আসলেই কি ম্যাথ বা লজিক কাজ করছে তা জানা লাগবে না। এমনকি TensorFlow, Theano টাইপের হাই লেভেল লাইব্রেরীর উপর ভিত্তি করেও আরও হাই লেভেল লাইব্রেরী তৈরি হচ্ছে, যেমন - Keras. যত হাই লেভেল, তত বেশি অ্যাবসট্র্যাক্ট লেয়ার অর্থাৎ আপনার কাছ থেকে তত বেশি কর্মকাণ্ড হাইড করে রাখা। তাই, সবসময় হাই লেভেল লাইব্রেরী ব্যবহারে অভ্যস্ত হওয়া উচিৎ নয়। এটা সব রকম কন্টেক্সট এর জন্যই মেনে চলা উচিৎ। সেটা মেশিন লার্নিং হোক বা সাধারণ প্রোগ্রামিং বা ডেভেলপমেন্ট হোক।