কম্পিউটার টিউটোরিয়াল

Turi Create ব্যবহার করে Core ML ডগ-ব্রিড ক্লাসিফায়ার তৈরি করুন: ধাপে ধাপে গাইড

এই টিউটোরিয়ালে, আপনি শিখবেন কিভাবে একটি কাস্টম ডগ-ব্রিড ক্লাসিফিকেশন Core ML মডেল ট্রেন করতে হয় যেটা আপনার iOS এবং macOS অ্যাপে ব্যবহার করতে পারবেন। এই টিউটোরিয়ালের শেষে আপনার Core ML মডেল পাঁচটি ভিন্ন নস্লের কুকুরের মধ্যে পার্থক্য করতে পারবে!

আপনি মনে করতে পারেন Apple কিছু বছর আগে মেশিন লার্নিং এবং আর্টিফিশিয়াল ইন্টেলিজেন্স স্টার্টআপ Turi কয়েকশো মিলিয়ন ডলার দিয়ে কিনেছিল; এটি কম সময়ে উন্নত মেশিন লার্নিং মডেল তৈরি করার শক্তিশালী টুল অফার করে।

এই টিউটোরিয়ালে, আপনি আপনার Mac-এ Turi Create ইনস্টল করা, একটি Python স্ক্রিপ্ট তৈরি করা, এবং সেই স্ক্রিপ্ট ব্যবহার করে একটি Core ML মডেল ট্রেন করা শিখবেন যেটা আপনি সরাসরি আপনার Xcode প্রজেক্টে ড্র্যাগ করে দ্রুত আপনার অ্যাপে বাস্তবায়ন করতে পারবেন।

শুরু করা যাক

আসল মেশিন লার্নিং পার্টে যাওয়ার আগে, Turi এবং Python-র ইনস্টলেশন carretera থেকে বের করে ফেলি — এবং অবশ্যই, আপনার হার্ডওয়্যার এবং সফ্টওয়্যার Turi-এর রিকোয়ারমেন্ট মেট করে কিনা সেটা নিশ্চিত করুন।

প্রয়োজনীয়তা

যেকোনো সফ্টওয়্যার ইনস্টল করার মতো, Turi Create-এর কিছু নির্দিষ্ট রিকোয়ারমেন্ট আছে, যেগুলো তাদের অফিসিয়াল GitHub পেজে পাওয়া যায়।

Turi Create সাপোর্ট করে:

  • macOS 10.12+
  • Linux (glibc 2.12+ সহ)
  • Windows 10 (WSL দিয়ে)

Turi Create-এর প্রয়োজন:

  • Python 2.7, 3.5, 3.6
  • x86_64 আর্কিটেকচার
  • কমপক্ষে ৪ GB RAM

নিচের লাইন হলো, যতক্ষণ না আপনার Mac য vaqtের সাথে যাগত নতুন, আপনি Turi Create রান করতে পারবেন। আপনি চাইলে অন্য অপারেটিং সিস্টেমের সাথে ফলো করতে পারেন; তবে সেগুলোর জন্য কিছু ধাপ পরিবর্তন করতে হতে পারে।

ইনস্টলেশন

Turi Create ইনস্টল করা khá সহজ, বিশেষত আপনি যদি কমান্ড লাইনের সাথে পরিচিত হন। আপনি যদি Python-এর নতুন ভার্সন ব্যবহার করতে চান, তবে আমি এই টিউটোরিয়ালে Python 2.7 ব্যবহার করব।

MacOS Mojave-এ, Python 2.7 ডিফল্টভাবে ইনস্টলড থাকে, তাই আপনাকে শুধু ভার্সন চেক করতে হবে। আপনার Mac-এ, Applications > Utilities > Terminal খুলুন বা কীবোর্ড শর্টকাট Command-Space দিয়ে সার্চ করুন।

আপনার Mac-এ Python-র ভার্সন চেক করতে, লিখুন:

$ python - version

এটি আপনাকে Python-র ভার্সন বলে দেবে, এবং আপনার কনসোল এমন দেখাবে:

Turi Create ব্যবহার করে Core ML ডগ-ব্রিড ক্লাসিফায়ার তৈরি করুন: ধাপে ধাপে গাইড
Figure 1: Python Version চেক করা

যদি আপনার ভার্সন Python 2.7 না হয়, বা যেকোনো কারণে আপনার কম্পিউটারে ইনস্টলড না থাকে, তবে এই লিংকে ইনস্টল করুন। আপনার আউটপুট আমার মতো দেখলে, আপনি আগাম ধাপে যেতে পারেন।

নোট: কিছু লোক ভার্চুয়াল মেশিনে Turi Create ইনস্টল করতে পছন্দ করেন কারণ এটাই Apple রিকমেন্ড করে। কিন্তু সিম্পল রাখতে, আমরা সরাসরি ইনস্টল করব।

Turi Create ইনস্টল করতে, আপনার টার্মিনাল উইন্ডোতে নিচের কমান্ড লিখুন:

$ pip install turicreate

বাস! Turi Create আপনার Mac-এ সফলভাবে ইনস্টল হয়েছে, এবং এটি ব্যবহার করার জন্য প্রস্তুত। আপনি এখন ক্লাসিফিকেশন, ডিটেকশন, রিগ্রেশন, এবং অন্যান্য টাইপের মডেল বানাতে পারবেন।

ডেটাসেট

যেকোনো মেশিন লার্নিং মডেলের জন্য, আপনার একটি ডেটাসেট দরকার। এই টিউটোরিয়ালে, আপনি একটি সিম্পল ডগ-ব্রিড ক্লাসিফিকেশন মডেল ট্রেন করা শিখবেন, যেটি ইমেজ ক্লাসিফিকেশন আশ্রয় করে। আমি যে ডেটা ব্যবহার করব সেটি Stanford University-এর Dogs Dataset থেকে আসছে।

Turi প্রি-ক্লাসিফাইড ইমেজগুলো রিকগনাইজ করতে পারে তার জন্য, আপনাকে সেগুলো সেগুলো কী রিপ্রেজেন্ট করে তার ভিত্তিতে অর্গানাইজ করতে হবে। উদাহরণস্বরূপ, সকল গোল্ডেন রিট্রিভারের ইমেজ একটি ফোল্ডারে থাকবে, আর সকল ল্যাব্রাডুলের ছবি অন্য একটি ফোল্ডারে।

সিম্পলিসিটির জন্য, আমরা Stanford-এর ডেটাসেটের স্যাডেকাহারো নস্লের মধ্যে শুধু পাঁচটি ব্যবহার করব, কিন্তু আপনি যত চাইতেন उतনো ব্যবহার করতে পারেন। আমি এগিয়ে এগিয়ে এটা আপনার জন্য অর্গানাইজ করে দিয়েছি এবং এর জন্য একটি রিপোজিটরি তৈরি করেছি। আপনি যদি আরও নস্ল যোগ করতে চান, শুধু আরও ফোল্ডার যোগ করুন এবং যেভাবেই ইচ্ছা নাম দিন।

ফোল্ডার স্ট্রাকচার

এখন পর্যন্ত আপনি বুঝতে পারছেন যে আপনার ডেটাসেট কীভাবে সাজিয়ে রাখবেন সেটি মডেল সঠিকভাবে ট্রেন করার জন্য কতটা קרিটিক্যাল — Turi Create কী কোথায় যায় সেটা জানার অন্য কোনো উপায় নেই। একটু সময় নিন নিজেকে অর্গানাইজ করতে।

Turi Create ব্যবহার করে Core ML ডগ-ব্রিড ক্লাসিফায়ার তৈরি করুন: ধাপে ধাপে গাইড
Figure 2: শুরুর ফোল্ডার স্ট্রাকচার

এই হায়ারার্কি ডায়াগ্রাম সব কিছু ব্যাখ্যা করছে, এবং এই অর্ডারে আপনার ফোল্ডারগুলো সাজাতে হবে এই টিউটোরিয়ালের সাথে আগাম ধাপে যাওয়ার আগে। আপনি যদি নাম বা সাজানোর পদ্ধতি পরিবর্তন করতে চান, তবে আপনাকে নোট করে রাখতে হবে।

ক্লাসিফায়ার ট্রেন করা

সেটআপ শেষ করার পর, আপনি এই টিউটোরিয়ালের মূল অংশে — আসলে আপনার ক্লাসিফায়ার ট্রেন করার জন্য প্রস্তুত। আমরা অধিকাংশে Python-এ কাজ করব, কিন্তু আপনি যদি কখনো Python ব্যবহার না করে থাকেন, তাও চিন্তার ক बात নয়। আমি প্রতিটি ধাপ এক্সপ্লেইন করব, এবং আপনার কোনো প্রশ্ন থাকলে নিচে কমেন্ট করুন।

Python File

প্রথমে, আমাদের আমাদের চিন্তা রাখার জায়গা দরকার (যেটা অবশ্যই Python-এ)। আপনার কাছে যদি ইতিমধ্যে Python সাপোর্ট করে এমন একটি এডিটর থাকে, যেমন Atom বা PyCharm-এর মতো একটি IDE, তবে আপনি সেগুলো ব্যবহার করে dog_breeds.py নামে একটি ব্ল্যাঙ্ক ফাইল তৈরি করতে পারেন।

আপনি যদি আমার মতো আরও ডেভেলপার-বայ রুট পছন্দ করেন, তবে টার্মিনাল দিয়ে একই কাজ করতে পারেন। আপনাকে এই ফাইলটি আপনার ml_classifier ফোল্ডারের ভিতরে তৈরি করতে হবে, images ফোল্ডারের পাশে যাতে আপনার হায়ারার্কি এভাবে দেখায়:

Turi Create ব্যবহার করে Core ML ডগ-ব্রিড ক্লাসিফায়ার তৈরি করুন: ধাপে ধাপে গাইড
Figure 3: Python File সহ ফোল্ডার স্ট্রাকচার

নতুন ফাইল তৈরি করতে, প্রথমে টার্গেট ডিরেক্টরিতে যান:

$ cd ml_classifier

তারপর, dog_breeds.py নামে একটি নতুন ফাইল তৈরি করুন।

$ touch dog_breeds.py

Voilà! আপনার ফোল্ডার, ফাইল, এবং ইমেজ সব সঠিক জায়গায় আছে, এবং আপনি পরবর্তী ধাপে যেতে পারেন। আমরা Xcode ব্যবহার করে আমাদের ফাইল খুলব, তাই নিশ্চিত করুন এটি ইনস্টলড এবং আপ-টু-ডেট।

ডেটাসেট ইমেজ লোড করা

শেষে, আমরা তৈরি করা Python ফাইল দিয়ে Turi কী কী করতে হবে সেটা বলতে পারি। আপনি যদি ফাইলটি ডাবল-ক্লিক করেন, তবে ডিফল্টভাবে Xcode-এ খুলবে, যদি আপনার কাছে ইনস্টলড থাকে। না হলে, আপনি অন্য এডিটর বা Python IDEও ব্যবহার করতে পারেন।

১. ফ্রেমওয়ার্ক ইম্পোর্ট

import turicreate

ফাইলটার টপে, আপনাকে Turi Create ফ্রেমওয়ার্ক ইম্পোর্ট করতে হবে। আপনি চাইলে একটি রেফারেন্সের জন্য নাম তৈরি করতে পারেন as <your name> যোগ করে। উদাহরণস্বরূপ, আপনি যদি কোডে it কে tc হিসেবে রেফার করতে চান, তবে লিখুন:

import turicreate as tc

এটি আপনাকে turicreate ফুল লেখার বদলে tc কল করার অনুমতি দেবে। এই টিউটোরিয়ালে, আমি ফুল ভার্সন ব্যবহার করব, turicreate কল করে অনিশ্চিততা কমানোর জন্য।

আপনাকে ফোল্ডার নাম এবং অন্যান্য OS-রিলেটেড টাস্ক ডিল করতে হবে আপনার ইমেজ ক্লাসিফাই করার জন্য। এর জন্য অন্য একটি Python লাইব্রেরি দরকার যেটা os। এটি ইম্পোর্ট করতে, শুধু নিচের লাইন যোগ করুন:

import os

২. ইমেজ লোড করা

data = turicreate.image_analysis.load_images("images/")

এখানে, আমরা আমাদের ডেটাসেটের সকল ইমেজ একটি ভেরিয়েবলে স্টোর করছি যেটা data নামে। যেহেতু আমাদের dog_breeds.py ফাইলটি images ফোল্ডারের মতো একই ডিরেক্টরিতে, আমরা সিম্পলি “images/” পাথ হিসেবে দিতে পারি।

৩. লেবেল ডিফাইন করা

এখন Turi Create-এ আপনার সকল ইমেজ আছে, আপনাকে ফোল্ডার নামগুলোর সাথে একটি লেবেল নাম লিংক করতে হবে। এই লেবেল নামগুলো আপনার Core ML মডেল ব্যবহৃত হলে যা রিটার্ন করবে।

data["label"] = data["path"].apply(lambda path: os.path.basename(os.path.dirname(path)))

এটি আপনাকে আপনার সব ফোল্ডার নামকে একটি "label" নামে ম্যাপ করতে দেয়, যা Turi Create-কে বলে যে "cocker_spaniel" ফোল্ডারে থাকা সকল ইমেজ আসলেই ককার স্পেনিয়েল।

৪. SFrame হিসেবে সংরক্ষণ করুন

আপনি যদি SFrame-এর সাথে পরিচিত ন हों, সিম্পল টার্মস में, এটি আপনার সকল ডেটা (এই কেসে, একটি ইমেজ) এবং সকল লেবেল (এই কেসে, ডগ ব্রিড) এর একটি ডিকশনারি। আপনার SFrame এভাবে সংরক্ষণ করুন:

data.save("dog_classifier.sframe")

এটি আপনাকে আপনার লেবেলড ইমেজগুলো পরবর্তী ধাপে ব্যবহারের জন্য সংরক্ষণ করতে দেয়। এটি মেশিন লার্নিং ইন্ডাস্ট্রিতে একটি খুব স্ট্যান্ডার্ড ডেটা টাইপ।

ট্রেনিং এবং টেস্টিং

Turi Create আপনার সকল লেবেলড ইমেজ ঠিক জায়গায় রাখলে, হোম স্ট্রেচে যাওয়ার সময় এসেছে এবং অবশেষে আপনার মডেল ট্রেন করা। আমাদের ডেটা স্প্লিটও করতে হবে যাতে ৮০% ট্রেনিংয়ের জন্য ব্যবহার হয়, এবং ২০% মডেল ট্রেনিং শেষে টেস্ট করার জন্য সংরক্ষিত থাকে — আমাদের ম্যানুয়ালি টেস্ট করতে হবে না।

১. SFrame লোড করা

এখন, আমাদের পिछले ধাপে তৈরি করা SFrame লোড করতে হবে। এটি আমরা পরবর্তীতে টেস্টিং এবং ট্রেনিং ডেটা স্প্লিট করতে ব্যবহার করব।

data = turicreate.SFrame("dog_classifier.sframe")

এটি data ভেরিয়েবলকে, যা এখন SFrame টাইপের, পिछले ধাপে সংরক্ষণ করা SFrame-এ অ্যাসাইন করে। এখন, আমাদের ডেটা টেস্টিং এবং ট্রেনিং ডেটায় স্প্লিট করতে হবে।前述কৃতভাবে, আমরা টেস্টিং এবং ট্রেনিং ডেটার ৮০:২০ স্প্লিট করব।

২. ডেটা স্প্লিট করা

ডেটা স্প্লিট করার সময়। আপনার SFrame কোডের পর, নিচের কোড যোগ করুন:

testing, training = data.random_split(0.8)

এই কোড র‍্যাঞ্ডমলি ডেটা ৮০-২০ স্প্লিট করে এবং দুটি ভেরিয়েবলে অ্যাসাইন করে, testing এবং training যথাক্রমে। এখন, Turi আপনার মডেল অটোমেটিক্যালি টেস্ট করবে বিনা আপনাকে ম্যানুয়ালি টেস্ট ইমেজ দিয়ে অ্যাপ তৈরি করতে — আপনি যদি অ্যাডজাস্টমেন্ট করতে চান, আপনাকে ফুল বাস্তবায়ন করার দরকার নয়, বরং আপনি আপনার Python ফাইলে করাতে পারেন।

৩. ট্রেনিং, টেস্টিং, এবং এক্সপোর্টিং

আপনার কঠোর পরিশ্রম akhirnya ফলদায়ী হয়েছে! Python কোডের এই লাইনে, আপনি শুধু Turi Create-কে আপনার মডেল ট্রেন করতে বলবেন, আপনার পছন্দের আর্কিটেকচার স্পেসিফাই করে।

classifier = turicreate.image_classifier.create(testing, target="label", model="resnet-50")

আপনি সিম্পলি Turi-কে আপনার testing ডেটা (পূর্বে স্পেসিফাইড) ব্যবহার করতে বলছেন, এবং labels প্রেডিক্ট করতে (ফোল্ডার স্ট্রাকচার অনুযায়ী), resnet-50 ব্যবহার করে, যা সবচেয়ে সঠিক মেশিন লার্নিং মডেল আর্কিটেকচারের একট।

আপনার টেস্টিং ডেটা ব্যবহার করে এবং নিশ্চিত করে যে আপনার মডেল সঠিক, নিচের কোড যোগ করুন:

testing = classifier.evaluate(training)print testing["accuracy"]

এটি আপনার স্পেসিফাইড training ডেটা ব্যবহার করে এবং টেস্টিং После রেজাল্ট একটি ভেরিয়েবলে সংরক্ষণ করে (আপনি অনুমান করেছেন) testing নামে। আপনার জানার জন্য, এটি একুরেসি প্রিন্ট করে, কিন্তু আপনি অন্যান্য জিনিসও প্রিন্ট করতে পারেন, Turi Create-এর APIs-এ পর্যাপ্ত সময় দিলে।

শেষে কিন্তু কম নয়, আপনি আপনার মডেল আপনার ফাইল সিস্টেমে এই এক-লাইনার দিয়ে সংরক্ষণ করতে পারেন একটি উপযোগী নাম দিয়ে:

classifier.save("dog_classifier.model")classifier.export_coreml("dog_classifier.mlmodel")

আপনি অবশ্যই আপনার মডেল অন্যান্য ফরম্যাটেও সংরক্ষণ করতে পারেন, কিন্তু এই উদাহরণে, আমি এটাকে Core ML মডেল হিসেবে সংরক্ষণ করেছি।

রান করা এবং আউটপুট

সব iOS ডেভেলপারদের জন্য — না, এটি একটি Xcode প্রজেক্ট নয় যা অটোমেটিক্যালি কম্পাইল হয় এবং এরর কমপ্লেইন করে। আপনার লিখা কোড এক্সিকিউট করার জন্য, আমাদের টার্মিনাল দিয়ে করতে হবে।

Python ফাইল রান করা

Python ফাইল রান করা সহজ! নিশ্চিত করুন আপনি সঠিক ডিরেক্টরিতে আছেন, এবং আপনার টার্মিনাল উইন্ডোতে শুধু নিচের কমান্ড লিখুন:

python dog_breeds.py

আউটপুট

কয়েক মিনিট ট্রেনিংয়ের পর, আপনার images ফোল্ডার এবং dog_breeds.py ফাইলের পাশে একটি SFrame, একটি মডেল ফোল্ডার, এবং একটি .mlmodel ফাইল থাকবে, যেটা আপনার Core ML মডেল!

আপনার টার্মিনাল উইন্ডোতে আউটপুটও দেখবেন, যেটা এমন দেখাবে:

Turi Create ব্যবহার করে Core ML ডগ-ব্রিড ক্লাসিফায়ার তৈরি করুন: ধাপে ধাপে গাইড
Figure 4: Python রান করার পর আউটপুট

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

উপসংহার

আশা করি আপনি এই টিউটোরিয়াল পড়তে এতটাই উপভোগ করেছেন যতটাই আমি বানাতে উপভোগ করলাম! এখানে কিছু ধাপ কिधরে যেতে পারেন তার জন্য। আপনি যদি আপনার Core ML মডেল iOS অ্যাপে কীভাবে ব্যবহার করবেন শিখতে চান, আমার অন্য একটি টিউটোরিয়াল চেক আউট করুন:

Get Started With Image Recognition in Core ML
প্রযুক্তিগত অগ্রগতির সাথে, আমরা সেই পয়েন্টে আছি যেখানে আমাদের ডিভাইসগুলো তাদের বিল্ট-ইন ক্যামেরা ব্যবহার করে সঠিকভাবে শনাক্ত করতে পারে…code.
tutsplus.com

এই টিউটোরিয়াল আপনাকে দেখাবে কীভাবে আপনার ফলাফল dog_classifier.mlmodel মডেলটি একটি রিয়েল-ওয়ার্ল্ড iOS অ্যাপে বাস্তবায়ন করতে হয়। এটি আপনাকে লাইভ ভিডিও ফিড পার্স করা এবং ইমেজ ক্লাসিফিকেশনের জন্য'Individual frames নেওয়া শিখাবে।

আপনার এই টিউটোরিয়াল সম্পর্কে যেকোনো প্রশ্ন বা মন্তব্য থাকলে, নিচে কমেন্ট সেকশনে নিঃসঙ্কোচে জিজ্ঞাসা করুন! আমি সবসময় ফিডব্যাক, প্রশ্ন, বা আপনি এই টিউটোরিয়াল থেকে কী শিখেছেন সেটা জানতে আগ্রহী।

আমার কাজ সাপোর্ট করা সহজ!

নিশ্চিত করুন যে "clap" বাটনটি যতটুকু পারেন ততটুকু প্রেস করুন, এই টিউটোরিয়াল শেয়ার করুন সোশ্যাল মিডিয়াতে, এবং টুইটারে ফলো করুন।

Vardhan Agrawal (@vhanagwal) | Twitter
The latest Tweets from Vardhan Agrawal (@vhanagwal). Completely self-taught #ios developer, #instructor, and human…

  1. HTML-এ বিব্লিওগ্রাফি (Bibliography) তৈরি করা

  2. টেনসরফ্লোতে ফ্লাওয়ার ডেটাসেট দিয়ে মডেল ট্রেইনিং কন্টিনিউ করা

  3. সিকিউর পাসওয়ার্ড সেটআপসহ অটোমেটেড লিনাক্স ইউজার ক্রিয়েশন

  4. এক্সেলে পিভট টেবিল ডেটা মডেল তৈরি: অ্যাডভান্সড রিপোর্টিং-এর জন্য ৬ সহজ ধাপ