মাইক্রোকন্ট্রোলারের জন্য LiteRT শুধুমাত্র কয়েক কিলোবাইট মেমরি সহ মাইক্রোকন্ট্রোলার এবং অন্যান্য ডিভাইসে মেশিন লার্নিং মডেল চালানোর জন্য ডিজাইন করা হয়েছে। একটি আর্ম কর্টেক্স M3-তে মূল রানটাইমটি 16 KB তে ফিট করে এবং অনেক মৌলিক মডেল চালাতে পারে। এটির জন্য অপারেটিং সিস্টেম সমর্থন, কোনো স্ট্যান্ডার্ড C বা C++ লাইব্রেরি বা গতিশীল মেমরি বরাদ্দের প্রয়োজন নেই।
মাইক্রোকন্ট্রোলার কেন গুরুত্বপূর্ণ
মাইক্রোকন্ট্রোলারগুলি সাধারণত ছোট, স্বল্প-শক্তিসম্পন্ন কম্পিউটিং ডিভাইস যা হার্ডওয়্যারের মধ্যে এমবেড করা হয় যার জন্য মৌলিক গণনার প্রয়োজন হয়। ক্ষুদ্র ক্ষুদ্র মাইক্রোকন্ট্রোলারে মেশিন লার্নিং আনার মাধ্যমে, আমরা ব্যয়বহুল হার্ডওয়্যার বা নির্ভরযোগ্য ইন্টারনেট সংযোগের উপর নির্ভর না করে, যেগুলি প্রায়শই ব্যান্ডউইথের সাপেক্ষে এবং গৃহস্থালীর যন্ত্রপাতি এবং ইন্টারনেট অফ থিংস ডিভাইস সহ আমাদের জীবনে ব্যবহার করি এমন কোটি কোটি ডিভাইসের বুদ্ধিমত্তা বৃদ্ধি করতে পারি। শক্তির সীমাবদ্ধতা এবং উচ্চ বিলম্বের ফলাফল। এটি গোপনীয়তা রক্ষা করতেও সাহায্য করতে পারে, যেহেতু কোনও ডেটা ডিভাইস থেকে যায় না। আপনার দৈনন্দিন রুটিনের সাথে খাপ খাইয়ে নিতে পারে এমন স্মার্ট অ্যাপ্লায়েন্স, বুদ্ধিমান শিল্প সেন্সর যা সমস্যা এবং স্বাভাবিক অপারেশনের মধ্যে পার্থক্য বুঝতে পারে, এবং জাদুকর খেলনা যা বাচ্চাদের মজাদার এবং আনন্দদায়ক উপায়ে শিখতে সাহায্য করতে পারে কল্পনা করুন।
সমর্থিত প্ল্যাটফর্ম
মাইক্রোকন্ট্রোলারের জন্য LiteRT C++ 17 এ লেখা এবং একটি 32-বিট প্ল্যাটফর্ম প্রয়োজন। এটি আর্ম কর্টেক্স-এম সিরিজের আর্কিটেকচারের উপর ভিত্তি করে অনেক প্রসেসরের সাথে ব্যাপকভাবে পরীক্ষা করা হয়েছে এবং ESP32 সহ অন্যান্য আর্কিটেকচারে পোর্ট করা হয়েছে। ফ্রেমওয়ার্ক একটি Arduino লাইব্রেরি হিসাবে উপলব্ধ. এটি এমবেডের মতো উন্নয়ন পরিবেশের জন্য প্রকল্পও তৈরি করতে পারে। এটি ওপেন সোর্স এবং যেকোনো C++ 17 প্রকল্পে অন্তর্ভুক্ত করা যেতে পারে।
নিম্নলিখিত উন্নয়ন বোর্ড সমর্থিত:
- Arduino Nano 33 BLE সেন্স
- স্পার্কফান এজ
- STM32F746 ডিসকভারি কিট
- Adafruit EdgeBadge
- Microcontrollers কিট জন্য Adafruit LiteRT
- Adafruit সার্কিট খেলার মাঠ Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- উইও টার্মিনাল: ATSAMD51
- Himax WE-I Plus EVB এন্ডপয়েন্ট এআই ডেভেলপমেন্ট বোর্ড
- Synopsys DesignWare ARC EM সফটওয়্যার ডেভেলপমেন্ট প্ল্যাটফর্ম
- সনি স্প্রেসেন্স
উদাহরণ অন্বেষণ
প্রতিটি উদাহরণ অ্যাপ্লিকেশন GitHub- এ রয়েছে এবং একটি README.md
ফাইল রয়েছে যা ব্যাখ্যা করে যে এটি কীভাবে সমর্থিত প্ল্যাটফর্মগুলিতে স্থাপন করা যেতে পারে। কিছু উদাহরণে একটি নির্দিষ্ট প্ল্যাটফর্ম ব্যবহার করে এন্ড-টু-এন্ড টিউটোরিয়াল রয়েছে, যা নীচে দেওয়া হয়েছে:
- হ্যালো ওয়ার্ল্ড - মাইক্রোকন্ট্রোলারের জন্য LiteRT ব্যবহার করার সম্পূর্ণ মৌলিক বিষয়গুলি প্রদর্শন করে৷
- মাইক্রো স্পিচ - "হ্যাঁ" এবং "না" শব্দগুলি সনাক্ত করতে একটি মাইক্রোফোন দিয়ে অডিও ক্যাপচার করে
- ব্যক্তি সনাক্তকরণ - একজন ব্যক্তির উপস্থিতি বা অনুপস্থিতি সনাক্ত করতে একটি চিত্র সেন্সর দিয়ে ক্যামেরা ডেটা ক্যাপচার করে
কর্মপ্রবাহ
একটি মাইক্রোকন্ট্রোলারে একটি টেনসরফ্লো মডেল স্থাপন এবং চালানোর জন্য নিম্নলিখিত পদক্ষেপগুলি প্রয়োজন:
- একটি মডেল প্রশিক্ষণ :
- একটি ছোট TensorFlow মডেল তৈরি করুন যা আপনার টার্গেট ডিভাইসের সাথে মানানসই হতে পারে এবং এতে সমর্থিত ক্রিয়াকলাপ রয়েছে৷
- LiteRT রূপান্তরকারী ব্যবহার করে একটি LiteRT মডেলে রূপান্তর করুন ।
- ডিভাইসে একটি পঠনযোগ্য প্রোগ্রাম মেমরিতে এটি সংরক্ষণ করতে স্ট্যান্ডার্ড সরঞ্জাম ব্যবহার করে একটি C বাইট অ্যারেতে রূপান্তর করুন ।
- C++ লাইব্রেরি ব্যবহার করে ডিভাইসে অনুমান চালান এবং ফলাফলগুলি প্রক্রিয়া করুন।
সীমাবদ্ধতা
মাইক্রোকন্ট্রোলারের জন্য LiteRT মাইক্রোকন্ট্রোলার বিকাশের নির্দিষ্ট সীমাবদ্ধতার জন্য ডিজাইন করা হয়েছে। আপনি যদি আরও শক্তিশালী ডিভাইসে কাজ করেন (উদাহরণস্বরূপ, রাস্পবেরি পাই এর মতো একটি এমবেডেড লিনাক্স ডিভাইস), স্ট্যান্ডার্ড LiteRT ফ্রেমওয়ার্ক একীভূত করা সহজ হতে পারে।
নিম্নলিখিত সীমাবদ্ধতা বিবেচনা করা উচিত:
- TensorFlow অপারেশনের সীমিত উপসেটের জন্য সমর্থন
- ডিভাইসের একটি সীমিত সেটের জন্য সমর্থন
- নিম্ন-স্তরের C++ API ম্যানুয়াল মেমরি পরিচালনার প্রয়োজন
- ডিভাইস প্রশিক্ষণ সমর্থিত নয়
পরবর্তী পদক্ষেপ
- উদাহরণ অ্যাপ্লিকেশন চেষ্টা করতে মাইক্রোকন্ট্রোলার দিয়ে শুরু করুন এবং কীভাবে API ব্যবহার করবেন তা শিখুন।
- আপনার নিজের প্রকল্পে লাইব্রেরিটি কীভাবে ব্যবহার করবেন তা শিখতে C++ লাইব্রেরি বুঝুন ।
- মাইক্রোকন্ট্রোলারগুলিতে স্থাপনার জন্য প্রশিক্ষণ এবং রূপান্তরকারী মডেলগুলি সম্পর্কে আরও জানতে মডেলগুলি তৈরি করুন এবং রূপান্তর করুন ৷