এই টিউটোরিয়ালে, আপনি শিখবেন কীভাবে আপনার iOS এবং macOS অ্যাপে ব্যবহার করার জন্য একটি কাস্টম কুকুর-প্রজাতির শ্রেণিবিন্যাস কোর এমএল মডেলকে প্রশিক্ষণ দেওয়া যায়। আপনার কোর এমএল মডেল এই টিউটোরিয়ালের শেষে পাঁচটি ভিন্ন প্রজাতির মধ্যে পার্থক্য করতে সক্ষম হবে!
আপনি হয়তো মনে করতে পারেন যে অ্যাপল কয়েক বছর আগে 200M ডলারের উপরে মেশিন লার্নিং এবং কৃত্রিম বুদ্ধিমত্তা স্টার্টআপ টুরি অধিগ্রহণ করেছিল; এটি অল্প সময়ের মধ্যে উন্নত মেশিন লার্নিং মডেল তৈরি করার জন্য শক্তিশালী টুল অফার করে।
এই টিউটোরিয়ালে, আপনি আপনার ম্যাকে টুরি ক্রিয়েট ইনস্টল করতে, একটি পাইথন স্ক্রিপ্ট তৈরি করতে এবং সেই স্ক্রিপ্টটি ব্যবহার করে একটি কোর এমএল মডেলকে প্রশিক্ষণ দিতে শিখবেন যা আপনি সরাসরি আপনার এক্সকোড প্রকল্পগুলিতে টেনে আনতে পারেন এবং আপনার অ্যাপগুলিতে দ্রুত প্রয়োগ করতে পারেন৷পি>
শুরু করা
এর প্রকৃত মেশিন লার্নিং অংশ নিয়ে শুরু করার আগে, আসুন প্রথমে তুরি এবং পাইথনের ইনস্টলেশনটি বন্ধ করে দেই — এবং অবশ্যই, আপনাকে নিশ্চিত করতে হবে যে আপনার হার্ডওয়্যার এবং সফ্টওয়্যার তুরির প্রয়োজনীয়তাগুলি পূরণ করবে।
প্রয়োজনীয়তা
আপনার ইনস্টল করা যেকোনো সফ্টওয়্যারের মতো, Turi Create-এর কিছু নির্দিষ্ট প্রয়োজনীয়তা রয়েছে, যা তাদের অফিসিয়াল GitHub পৃষ্ঠায় পাওয়া যাবে।
Turi Create supports:
- macOS 10.12+
- লিনাক্স (glibc 2.12+ সহ)
- উইন্ডোজ 10 (WSL এর মাধ্যমে)
তুরি তৈরির প্রয়োজন:
- পাইথন 2.7, 3.5, 3.6
- x86_64 আর্কিটেকচার
- কমপক্ষে 4 GB RAM
নীচের লাইন হল, যতক্ষণ না আপনার ম্যাক যুক্তিসঙ্গতভাবে থাকে৷ নতুন, আপনি টুরি ক্রিয়েট চালাতে সক্ষম হবেন। আপনি যদি চান, আপনি অন্য অপারেটিং সিস্টেমের সাথে অনুসরণ করতে পারেন; যাইহোক, তাদের কাজ করার জন্য আপনাকে কিছু পদক্ষেপ পরিবর্তন করতে হতে পারে।
ইনস্টলেশন
টুরি ক্রিয়েট ইনস্টল করা মোটামুটি সহজ, বিশেষ করে যদি আপনি কমান্ড লাইনের সাথে পরিচিত হন। আপনি Python এর একটি নতুন সংস্করণ ব্যবহার করতে চাইলে, আমি এই টিউটোরিয়ালে Python 2.7 ব্যবহার করব।
MacOS মোজাভে, পাইথন 2.7 ডিফল্টরূপে ইনস্টল করা হয়, তাই আপনাকে যা করতে হবে তা হল সংস্করণটি পরীক্ষা করা। আপনার Mac এ, Applications> Utilities> Te খুলুন rminal বা কেবল তাদের কীবোর্ড shortcut Command দিয়ে এটি অনুসন্ধান করুন -স্পেস।
আপনার ম্যাকে পাইথনের সংস্করণ পরীক্ষা করতে, প্রবেশ করুন:
$ python - version
এটি আপনাকে পাইথনের সংস্করণটি বলবে এবং আপনার কনসোলটি এইরকম দেখতে হবে:
যদি আপনার সংস্করণটি Python 2.7 না হয়, অথবা যদি এটি কোনো কারণে আপনার কম্পিউটারে ইনস্টল না হয়, তাহলে আপনাকে এই লিঙ্কে ইনস্টল করতে হবে। যদি আপনার আউটপুট আমার মত মনে হয়, আপনি এগিয়ে যেতে প্রস্তুত.
দ্রষ্টব্য: কিছু লোক টুরি ক্রিয়েট ইনস্টল করার জন্য ভার্চুয়াল মেশিন ব্যবহার করতে পছন্দ করে যেহেতু অ্যাপল এটিই সুপারিশ করে। কিন্তু জিনিসগুলি সহজ রাখতে, আমরা এটি সরাসরি ইনস্টল করব৷
Turi ক্রিয়েট ইন্সটল করার জন্য, আপনার টার্মিনাল উইন্ডোতে নিম্নলিখিতটি লিখুন:
$ pip install turicreate
এখানেই শেষ! Turi Create সফলভাবে আপনার Mac এ ইনস্টল করা হয়েছে এবং এটি ব্যবহারের জন্য প্রস্তুত। আপনি এখন শ্রেণীবিভাগ, সনাক্তকরণ, রিগ্রেশন এবং অন্যান্য ধরণের মডেল তৈরি করতে পারেন৷
ডেটাসেট
যেকোনো মেশিন লার্নিং মডেলের জন্য আপনার একটি ডেটাসেট প্রয়োজন। এই টিউটোরিয়ালে, আপনি শিখবেন কীভাবে একটি সাধারণ কুকুর-প্রজাতির শ্রেণিবিন্যাসের মডেলকে প্রশিক্ষণ দেওয়া যায়, যার জন্য চিত্র শ্রেণীবিভাগ প্রয়োজন। আমি যে ডেটা ব্যবহার করব তা স্ট্যানফোর্ড ইউনিভার্সিটির ডগস ডেটাসেট থেকে আসে৷
৷তুরি যাতে প্রাক-শ্রেণীবদ্ধ চিত্রগুলিকে চিনতে সক্ষম হয়, সেগুলিকে তারা কী প্রতিনিধিত্ব করে তার উপর ভিত্তি করে আপনাকে তাদের সংগঠিত করতে হবে। উদাহরণস্বরূপ, গোল্ডেন রিট্রিভারের সমস্ত ছবি একটি ফোল্ডারে থাকবে, যখন ল্যাব্রাডুডলসের সমস্ত ছবি অন্য ফোল্ডারে থাকবে৷
সরলতার জন্য, আমরা স্ট্যানফোর্ডের ডেটাসেটের শত শতের মধ্যে মাত্র পাঁচটি জাত ব্যবহার করব, কিন্তু আপনি যত খুশি ব্যবহার করতে পারেন। আমি এগিয়ে গিয়েছি এবং এটি আপনার জন্য সংগঠিত করেছি এবং এটির জন্য একটি সংগ্রহস্থল তৈরি করেছি। আপনি যদি আরও কুকুরের জাত যোগ করতে চান, তাহলে আরও ফোল্ডার যোগ করুন এবং আপনার ইচ্ছামতো নাম দিন৷
ফোল্ডার স্ট্রাকচার
এতক্ষণে, আপনি হয়ত বুঝতে পেরেছেন যে আপনি যেভাবে আপনার ডেটাসেট সাজান তা মডেলটিকে সঠিকভাবে প্রশিক্ষণ দিতে সক্ষম হওয়ার জন্য গুরুত্বপূর্ণ — আর কোন উপায় নেই যে টুরি ক্রিয়েট কোথায় যায় সে সম্পর্কে জানে। নিজেকে সংগঠিত করতে এখন একটু সময় নিন।
এই শ্রেণিবিন্যাস চিত্রটি সবকিছু ব্যাখ্যা করবে এবং এই টিউটোরিয়ালটি চালিয়ে যাওয়ার আগে আপনাকে এই ক্রমে আপনার ফোল্ডারগুলি পেতে হবে। আপনি যদি নাম পরিবর্তন করতে চান বা জিনিসগুলিকে অন্যভাবে সাজাতে চান তবে আপনাকে নিশ্চিত করতে হবে যে আপনি এটি একটি নোট করেছেন।
ক্লাসিফায়ারের প্রশিক্ষণ
আপনি সেট আপ করা শেষ করার পরে, আপনি এই টিউটোরিয়ালের মাংসে ডুব দিতে প্রস্তুত — আসলে আপনার ক্লাসিফায়ারকে প্রশিক্ষণ দিন। আমরা বেশিরভাগ পাইথনে কাজ করব, কিন্তু আপনি যদি আগে কখনো পাইথন ব্যবহার না করে থাকেন, তাহলে ঠিক আছে। আমরা যতই এগিয়ে যাব, আমি প্রতিটি ধাপ ব্যাখ্যা করব এবং আপনার যদি কোনো প্রশ্ন থাকে, তাহলে নিচে একটি মন্তব্য করতে দ্বিধা করবেন না।
পাইথন ফাইল
প্রথমত, আমাদের চিন্তাভাবনা (অবশ্যই পাইথনে) রাখার জন্য আমাদের একটি জায়গা থাকা দরকার। আপনার যদি ইতিমধ্যেই এমন একটি সম্পাদক থাকে যা পাইথনকে সমর্থন করে, যেমন অ্যাটম বা একটি সমন্বিত উন্নয়ন পরিবেশ যেমন PyCharm, আপনি সেগুলিকে dog_breeds.py
নামে একটি ফাঁকা ফাইল তৈরি করতে ব্যবহার করতে পারেন। .
আপনি যদি আরও বিকাশকারী-ওয়াই রুট পছন্দ করেন, যেমন আমি করি, আপনি একই জিনিস করতে টার্মিনাল ব্যবহার করতে পারেন। আপনাকে এই ফাইলটি আপনার ml_classifier
-এর মধ্যে তৈরি করতে হবে ফোল্ডার, images
বরাবর ফোল্ডার যাতে আপনার অনুক্রমটি এইরকম দেখায়:
একটি নতুন ফাইল তৈরি করতে, প্রথমে লক্ষ্য ডিরেক্টরিতে প্রবেশ করুন:
$ cd ml_classifier
তারপর, dog_breeds.py
নামে একটি নতুন ফাইল তৈরি করুন .
$ touch dog_breeds.py
ভয়লা ! আপনার ফোল্ডার, ফাইল এবং চিত্রগুলি যেখানে থাকা দরকার সেখানেই রয়েছে এবং আপনি পরবর্তী পদক্ষেপটি চালিয়ে যেতে প্রস্তুত৷ আমরা আমাদের ফাইলটি খুলতে Xcode ব্যবহার করব, তাই নিশ্চিত করুন যে আপনি এটি ইনস্টল করেছেন এবং আপ-টু-ডেট করেছেন।
ডেটাসেট ছবি লোড হচ্ছে
অবশেষে, আমরা এইমাত্র তৈরি পাইথন ফাইলের মাধ্যমে তুরিকে কী করতে হবে তা বলা শুরু করার সময় এসেছে। আপনি যদি ফাইলটি ডাবল-ক্লিক করেন তবে এটি ডিফল্টরূপে Xcode-এ খোলা উচিত, যদি আপনি এটি ইনস্টল করে থাকেন। যদি না হয়, আপনি অন্য সম্পাদক বা পাইথন আইডিই ব্যবহার করতে পারেন।
1. ফ্রেমওয়ার্ক আমদানি করুন
import turicreate
ফাইলের শীর্ষে, আপনাকে তুরি তৈরি ফ্রেমওয়ার্ক আমদানি করতে হবে। আপনি চাইলে, as <your na
যোগ করে রেফারেন্সের জন্য একটি নাম তৈরি করতে পারেন আমি> উদাহরণস্বরূপ, যদি আপনি it
উল্লেখ করতে চান আপনার কোডে tc হিসাবে, আপনি লিখতে পারেন:
import turicreate as tc
এটি আপনাকে tc
কল করার অনুমতি দেবে turicreate
লেখার পরিবর্তে . এই টিউটোরিয়ালে, আমি এটিকে turicreate
বলে পূর্ণ সংস্করণ ব্যবহার করব অস্পষ্টতা কমাতে।
আপনার ছবিগুলিকে শ্রেণীবদ্ধ করার জন্য আপনাকে ফোল্ডারের নাম এবং অন্যান্য OS-সম্পর্কিত কাজগুলিও মোকাবেলা করতে হবে। এর জন্য os
নামে আরেকটি পাইথন লাইব্রেরি প্রয়োজন . এটি আমদানি করতে, কেবল নিম্নলিখিত যোগ করুন:
import os
2. ছবি লোড হচ্ছে
data = turicreate.image_analysis.load_images("images/")
এখানে, আমরা আমাদের ডেটাসেটের সমস্ত ছবি data
নামক একটি ভেরিয়েবলে সংরক্ষণ করছি . যেহেতু আমাদের dog_breeds.py
ফাইলটি images
এর মতো একই ডিরেক্টরিতে রয়েছে ফোল্ডার, আমরা সহজভাবে “images/”
রাখতে পারি পথ হিসাবে।
3. লেবেল সংজ্ঞায়িত করা
এখন যেহেতু টুরি ক্রিয়েটে আপনার সমস্ত ছবি রয়েছে, আপনাকে ফোল্ডারের নামগুলিকে একটি লেবেল নামের সাথে লিঙ্ক করতে হবে। এই লেবেলের নামগুলি হল যা আপনার কোর ML মডেলে ফেরত দেওয়া হবে যখন এটি একটি iOS বা MacOS অ্যাপে ব্যবহার করা হচ্ছে।
data["label"] = data["path"].apply(lambda path: os.path.basename(os.path.dirname(path)))
এটি আপনাকে আপনার সমস্ত ফোল্ডারের নামকে একটি "লেবেল" নামে ম্যাপ করতে দেয়, যা তুরি ক্রিয়েটকে বলে যে "ককার_স্প্যানিয়েল" ফোল্ডারে থাকা সমস্ত ছবি প্রকৃতপক্ষে ককার স্প্যানিয়েল, উদাহরণস্বরূপ।
4. SFrame
হিসাবে সংরক্ষণ করুন
আপনি যদি SFrame
এর সাথে পরিচিত না হন , সহজ ভাষায়, এটি আপনার সমস্ত ডেটার একটি অভিধান (এই ক্ষেত্রে, একটি চিত্র) এবং সমস্ত লেবেল (এই ক্ষেত্রে, কুকুরের জাত)। আপনার SFrame
সংরক্ষণ করুন এই মত:
data.save("dog_classifier.sframe")
এটি আপনাকে পরবর্তী ধাপে ব্যবহারের জন্য আপনার লেবেলযুক্ত ছবি সংরক্ষণ করতে দেয়৷ এটি মেশিন লার্নিং শিল্পে একটি মোটামুটি স্ট্যান্ডার্ড ডেটা টাইপ।
প্রশিক্ষণ এবং পরীক্ষা
Turi Create-এ আপনার সমস্ত লেবেলযুক্ত চিত্রগুলি স্থানান্তরিত হওয়ার পরে, এটি হোম স্ট্রেচে প্রবেশ করার এবং অবশেষে আপনার মডেলকে প্রশিক্ষণ দেওয়ার সময়। আমাদের ডেটাও বিভক্ত করতে হবে যাতে 80% প্রশিক্ষণের জন্য ব্যবহার করা হয়, এবং ট্রেনিং শেষ করার পরে মডেলটি পরীক্ষা করার জন্য 20% সংরক্ষণ করা হয় — আমাদের এটি ম্যানুয়ালি পরীক্ষা করতে হবে না।
1. SFrame লোড হচ্ছে
এখন, আমাদের আগের ধাপে তৈরি করা SFrame লোড করতে হবে। এটিই আমরা পরে পরীক্ষা এবং প্রশিক্ষণ ডেটাতে বিভক্ত করতে ব্যবহার করব।
data = turicreate.SFrame("dog_classifier.sframe")
এটি data
বরাদ্দ করে পরিবর্তনশীল, যা এখন SFrame
টাইপের SFrame-এ যা আমরা আগের ধাপে সংরক্ষণ করেছি। এখন, আমাদের পরীক্ষা এবং প্রশিক্ষণ ডেটাতে ডেটা বিভক্ত করতে হবে। উপরে উল্লিখিত হিসাবে, আমরা প্রশিক্ষণের ডেটা পরীক্ষা করার একটি 80:20 বিভক্ত করব।
2. ডেটা স্প্লিটিং
এটি ডেটা বিভক্ত করার সময়। আপনার SFrame কোডের পরে, নিম্নলিখিত যোগ করুন:
testing, training = data.random_split(0.8)
এই কোডটি এলোমেলোভাবে 80-20 ডেটাকে বিভক্ত করে এবং এটি দুটি ভেরিয়েবলে বরাদ্দ করে, testing
এবং training
, যথাক্রমে। এখন, তুরি স্বয়ংক্রিয়ভাবে আপনার মডেল পরীক্ষা করবে, আপনাকে ম্যানুয়ালি টেস্ট ইমেজ সরবরাহ করার এবং একটি অ্যাপ তৈরি করার প্রয়োজন ছাড়াই — আপনার যদি সামঞ্জস্য করার প্রয়োজন হয়, তাহলে আপনাকে প্রথমে এটি সম্পূর্ণরূপে বাস্তবায়ন করতে হবে না এবং পরিবর্তে, আপনি সেগুলি আপনার পাইথনেই করতে পারেন। ফাইল।
3. প্রশিক্ষণ, পরীক্ষা, এবং রপ্তানি
আপনার কঠোর পরিশ্রম অবশেষে পরিশোধ করা হয়েছে! পাইথন কোডের এই লাইনে, আপনি যে আর্কিটেকচারটি ব্যবহার করতে চান তা নির্দিষ্ট করার সময় আপনি শুধু Turi Create কে আপনার মডেলকে প্রশিক্ষণ দিতে বলবেন।
classifier = turicreate.image_classifier.create(testing, target="label", model="resnet-50")
আপনি শুধু টুরিকে আপনার testing
ব্যবহার করতে বলছেন ডেটা (আগে নির্দিষ্ট করা হয়েছে), এবং labels
ভবিষ্যদ্বাণী করতে সেগুলি ব্যবহার করুন (আগে থেকে ফোল্ডার কাঠামোর উপর ভিত্তি করে), resnet-50
ব্যবহার করার সময় , যা সবচেয়ে নির্ভুল মেশিন লার্নিং মডেল আর্কিটেকচারগুলির মধ্যে একটি৷
আপনার পরীক্ষার ডেটা ব্যবহার করতে এবং আপনার মডেলটি সঠিক কিনা তা নিশ্চিত করতে, এটি যোগ করুন:
testing = classifier.evaluate(training)print testing["accuracy"]
এটি training
ব্যবহার করে আপনার নির্দিষ্ট করা ডেটা এবং একটি ভেরিয়েবলে পরীক্ষার পর ফলাফল সংরক্ষণ করে (আপনি এটি অনুমান করেছেন) testing
. আপনার তথ্যের জন্য, এটি নির্ভুলতা প্রিন্ট করে, তবে Turi Create-এর API-এ পর্যাপ্ত সময় দেওয়া হলে আপনি অন্যান্য জিনিসও প্রিন্ট করতে পারেন।
শেষ কিন্তু অন্তত নয়, আপনি আপনার মডেলটিকে একটি দরকারী নাম দেওয়ার পরে এই ওয়ান-লাইনার দিয়ে আপনার ফাইল সিস্টেমে সরাসরি সংরক্ষণ করতে পারেন:
classifier.save("dog_classifier.model")classifier.export_coreml("dog_classifier.mlmodel")
অবশ্যই, আপনি আপনার মডেলটিকে অন্যান্য ফর্ম্যাটেও সংরক্ষণ করতে পারেন, তবে এই উদাহরণের জন্য, আমি এটি একটি কোর ML মডেল হিসাবে সংরক্ষণ করেছি৷
চলানো এবং আউটপুট
আপনার সমস্ত iOS বিকাশকারীদের জন্য - না, এটি একটি Xcode প্রকল্প নয় যা স্বয়ংক্রিয়ভাবে সংকলন করে এবং ত্রুটির জন্য অভিযোগ করে। আপনি এইমাত্র যে কোডটি এক্সিকিউট করার জন্য লিখেছেন তার জন্য, আমাদের এটা টার্মিনালের মাধ্যমে করতে হবে।
পাইথন ফাইল চালানো
পাইথন ফাইল চালানো সহজ! নিশ্চিত করুন যে আপনি সঠিক ডিরেক্টরিতে আছেন, এবং আপনাকে যা করতে হবে তা হল আপনার টার্মিনাল উইন্ডোতে নিম্নলিখিতটি লিখুন:
python dog_breeds.py
আউটপুট
কয়েক মিনিটের প্রশিক্ষণের পর, আপনার images
ফোল্ডার এবং dog_breeds.py
ফাইলের সাথে একটি SFrame, একটি মডেল ফোল্ডার এবং একটি .mlmodel থাকবে ফাইল, যা আপনার কোর এমএল মডেল!
আপনাকে আপনার টার্মিনাল উইন্ডোতে আউটপুট সহ উপস্থাপন করা হবে, যা এইরকম কিছু দেখাবে:
এটি আপনাকে প্রশিক্ষণ এবং প্রশিক্ষণের নির্ভুলতা, প্রক্রিয়াকৃত চিত্রের পরিমাণ এবং অন্যান্য দরকারী তথ্য সম্পর্কে তথ্য দেয়, যা আপনি কখনও ব্যবহার না করেও আপনার মডেল বিশ্লেষণ করতে ব্যবহার করতে পারেন৷
উপসংহার
আমি আশা করি আপনি এই টিউটোরিয়ালটি পড়তে যতটা উপভোগ করেছেন আমি এটি তৈরি করে উপভোগ করেছি! এখান থেকে কোথায় যেতে হবে তার কিছু ধাপ রয়েছে। আপনি যদি আইওএস অ্যাপে আপনার কোর এমএল মডেলটি কীভাবে ব্যবহার করবেন তা শিখতে চান তবে আমার অন্য একটি টিউটোরিয়াল দেখুন:
কোর ML-এ ছবি স্বীকৃতি দিয়ে শুরু করুন
প্রযুক্তিগত অগ্রগতির সাথে, আমরা এমন এক পর্যায়ে আছি যেখানে আমাদের ডিভাইসগুলি তাদের অন্তর্নির্মিত ক্যামেরাগুলিকে সঠিকভাবে সনাক্ত করতে ব্যবহার করতে পারে... কোড
tutsplus.com
এই টিউটোরিয়ালটি আপনাকে দেখাবে কিভাবে আপনার ফলাফল dog_classifier.mlmodel
নিতে হয় মডেল এবং একটি বাস্তব বিশ্বের iOS অ্যাপে এটি বাস্তবায়ন করুন। এটি আপনাকে একটি লাইভ ভিডিও ফিড পার্স করতে এবং ছবির শ্রেণীবিভাগের জন্য পৃথক ফ্রেম নিতে শেখাবে।
এই টিউটোরিয়াল সম্পর্কে আপনার যদি কোনো প্রশ্ন বা মন্তব্য থাকে, তাহলে নিচের মন্তব্য বিভাগে তাদের জিজ্ঞাসা করতে দ্বিধা করবেন না! আমি সবসময় এই টিউটোরিয়াল থেকে প্রতিক্রিয়া, প্রশ্ন বা আপনি কীভাবে আপনার জ্ঞান ব্যবহার করেছেন তা শুনতে আগ্রহী।
আমার কাজকে সমর্থন করা সহজ!
সেই "তালি" বোতামটি ভেঙে দিতে ভুলবেন না৷ আপনি যতবার পারেন, এই টিউটোরিয়ালটি ভাগ করুন সোশ্যাল মিডিয়াতে, এবং টুইটারে আমাকে অনুসরণ করুন৷৷
বর্ধন আগরওয়াল (@vhanagwal) | টুইটার
বর্ধন অগ্রবাল (@vhanagwal) থেকে সাম্প্রতিক টুইটগুলি৷ সম্পূর্ণরূপে স্ব-শিক্ষিত #ios বিকাশকারী, #প্রশিক্ষক এবং মানব…