mBedLab Learning – Telegram
mBedLab Learning
774 subscribers
54 photos
5 videos
4 files
38 links
بحث و گفتگو در:
.
@mBedLab_Discussion
Download Telegram
#هوش_مصنوعی #یادگیری_ماشین

ادامه یادگیری بدون نظارت...
خوشه بندی با طبقه بندی متفاوت است زیرا دسته ها توسط شما تعریف نشده اند. به عنوان مثال، یک مدل بدون نظارت ممکن است مجموعه داده های آب و هوا را بر اساس دما دسته بندی کند و بخش بندی هایی را که فصل ها را تعریف می کنند، آشکار کند. در نهایت ممکن است سعی نیاز داشته باشید آن خوشه ها را بر اساس درک خود از مجموعه داده نام گذاری کنید (تصویر پیوست).

#برنامه_نویسی #یادگیری_ماشین #هوش_مصنوعی

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
👍1
#قانون 1.5 MISRA C - دوری از ویژگی‌های منسوخ شده در کدنویسی C

○ گروه: #محیط_استاندارد_C
○ دسته‌بندی: #الزامی
○ اعمال برای: C99, C11

تصور کنید در حال نوشتن یک برنامه به زبان C هستید. آیا از تمام ویژگی‌های زبان و به‌روزرسانی‌های استاندارد آن آگاهید؟ استفاده از ویژگی‌های منسوخ شده (Obsolescent) می‌تواند منجر به مشکلات جدی در کد شما شود. به همین دلیل استاندارد MISRA قانونی را تحت عنوان قانون ۱.۵ وضع کرده است.

قانون MISRA 1.5 چیست؟
این قانون به ما می‌گوید که نباید از ویژگی‌های منسوخ شده زبان C استفاده کنیم. این ویژگی‌ها در بخش "جهت‌گیری‌های آینده زبان" و "جهت‌گیری‌های آینده کتابخانه" در استاندارد C (مانند C99 و C11) و همچنین در ضمیمه F آن ذکر شده‌اند.

چرا باید از این قانون پیروی کنیم؟
استاندارد C ویژگی‌ها را زمانی منسوخ اعلام می‌کند که:
○ جایگزین‌های ایمن‌تر یا بهتری برای آن‌ها وجود داشته باشد.
○ رفتار نامطلوبی از خود نشان دهند.

ویژگی‌هایی که در یک نسخه از استاندارد منسوخ اعلام می‌شوند، ممکن است در نسخه‌های بعدی به طور کامل حذف شوند. این موضوع می‌تواند باعث بروز خطا در کدهایی شود که از این ویژگی‌ها استفاده می‌کنند.

مزایای رعایت قانون MISRA 1.5:
○ کد پایدارتر و سازگارتر با نسخه‌های مختلف استاندارد C
○ کاهش احتمال بروز خطا و مشکلات ناشی از ویژگی‌های منسوخ شده
○ افزایش خوانایی و نگهداری کد

به طور خلاصه: با پیروی از قانون MISRA 1.5، کد خود را در برابر مشکلات احتمالی ناشی از استفاده از ویژگی‌های منسوخ شده ایمن کنید و به نوشتن کد استاندارد و قابل اعتماد پایبند باشید.

قوانین مرتبط:
قانون 1.1

#برنامه_نویسی#استاندارد_MISRA
#Embedded

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
👍3
#هوش_مصنوعی #یادگیری_ماشین

یادگیری تقویتی
مدل های یادگیری تقویتی با دریافت پاداش یا جریمه بر اساس اقدامات انجام شده در یک محیط، پیش بینی می کنند.

یک سیستم یادگیری تقویتی سیاستی را ایجاد می کند که بهترین استراتژی را برای دریافت بیشترین پاداش تعریف می کند.

یادگیری تقویتی برای آموزش روبات‌ها برای انجام وظایفی مانند راه رفتن در اتاق و برنامه‌های نرم‌افزاری مانند AlphaGo برای انجام بازی Go استفاده می‌شود.

هوش مصنوعی مولد
هوش مصنوعی مولد کلاسی از مدل‌ها است که محتوا را از ورودی کاربر ایجاد می‌کند. برای مثال، هوش مصنوعی مولد می‌تواند تصاویر، ترکیب‌های موسیقی و جوک‌های منحصربه‌فردی ایجاد کند. می تواند مقالات را خلاصه کند، نحوه انجام یک کار را توضیح دهد، یا یک عکس را ویرایش کند.

هوش مصنوعی مولد می‌تواند ورودی‌های مختلفی را دریافت کند و خروجی‌های مختلفی مانند متن، تصویر، صدا و ویدئو ایجاد کند. همچنین می تواند ترکیبی از اینها را بگیرد و ایجاد کند. به عنوان مثال، یک مدل می تواند یک تصویر را به عنوان ورودی بگیرد و یک تصویر و متن را به عنوان خروجی ایجاد کند، یا یک تصویر و متن را به عنوان ورودی بگیرد و یک ویدیو را به عنوان خروجی ایجاد کند.

ما می‌توانیم مدل‌های مولد را با ورودی‌ها و خروجی‌هایشان، که معمولاً به صورت «نوع ورودی» تا «نوع خروجی» نوشته می‌شوند، مورد بحث قرار دهیم. به عنوان مثال، در زیر فهرستی جزئی از برخی ورودی ها و خروجی ها برای مدل های تولیدی آمده است:
○ متن به متن
○ متن به تصویر
○ متن به ویدئو
○ متن به کد
○ تبدیل متن به گفتار
○ تصویر و متن به تصویر


هوش مصنوعی مولد چگونه کار می کند؟
در سطح بالا، مدل‌های مولد الگوهایی را در داده‌ها با هدف تولید داده‌های جدید اما مشابه یاد می‌گیرند. مدل های مولد مانند زیر هستند:
○ کمدین هایی که با مشاهده رفتارها و سبک حرف زدن افراد یاد می گیرند که از دیگران تقلید کنند
○ هنرمندانی که با مطالعه تعداد زیادی نقاشی در آن سبک، نقاشی را در سبک خاصی یاد می گیرند


برای تولید خروجی‌های منحصربه‌فرد و خلاقانه، مدل‌های مولد در ابتدا با استفاده از رویکردی بدون نظارت آموزش داده می‌شوند، جایی که مدل یاد می‌گیرد داده‌هایی را که روی آن آموزش داده شده است تقلید کند. این مدل گاهی اوقات با استفاده از یادگیری تحت نظارت یا تقویتی بر روی داده‌های خاص مرتبط با وظایفی که ممکن است از مدل خواسته شود، آموزش داده می‌شود، برای مثال، خلاصه کردن یک مقاله یا ویرایش یک عکس.

#برنامه_نویسی #یادگیری_ماشین #هوش_مصنوعی

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
👍6
#قانون 2.1 MISRA C - عدم وجود کد غیرقابل دسترس

○ گروه: #کدهای_استفاده_نشده
○ دسته‌بندی: #الزامی
○ اعمال برای: C90, C99, C11

کد غیرقابل دسترس، کدی است که تحت هیچ شرایطی در طول اجرای برنامه اجرا نمی‌شود. وجود این کد می‌تواند نشانه‌ای از خطای منطقی در برنامه باشد. اگرچه کامپایلر مجاز به حذف این کد است، اما این کار اجباری نیست. باقی ماندن کد غیرقابل دسترس باعث اتلاف منابع می‌شود، به عنوان مثال:
○ اشغال فضای حافظه
○ انتخاب دستورات پرش طولانی‌تر و کندتر توسط کامپایلر
○ جلوگیری از قرارگیری کل حلقه در حافظه کش دستورالعمل

دلایل اهمیت این قانون:
○ بهبود خوانایی و نگهداری کد
حذف کد غیرقابل دسترس، کد را تمیزتر و درک آن را آسان‌تر می‌کند.

○ بهینه‌سازی عملکرد
حذف کد غیرضروری باعث کاهش حجم کد و بهبود عملکرد برنامه می‌شود.

○ جلوگیری از خطاهای احتمالی
وجود کد غیرقابل دسترس می‌تواند نشانه‌ای از خطاهای منطقی باشد که ممکن است در آینده مشکل‌ساز شوند.


موارد خاص:
گاهی اوقات برای مدیریت موارد استثنایی، کدی درج می‌شود که به ظاهر غیرقابل دسترس است. به عنوان مثال، در دستور switch که تمام مقادیر ممکن عبارت کنترلی توسط case ها پوشش داده شده‌اند، طبق قانون 16.4 باید یک default وجود داشته باشد. هدف از default، گرفتن مقادیری است که به طور معمول نباید رخ دهند، اما ممکن است در نتیجه موارد زیر ایجاد شده باشند:
○ رفتار تعریف نشده در برنامه
○ خرابی سخت‌افزار پردازنده

اگر کامپایلر بتواند ثابت کند که یک default غیرقابل دسترس است، ممکن است آن را حذف کند. برای جلوگیری از این اتفاق و حفظ عملکرد دفاعی کد، می‌توان از دسترسی volatile استفاده کرد. با استفاده از volatile، کامپایلر مجبور می‌شود فرض کند که عبارت کنترلی می‌تواند هر مقداری را بگیرد.

مثال:
enum light { red, amber, red_amber, green };
enum light next_light ( enum light c )
{
enum light res;
switch ( c )
{
case red:
res = red_amber;
break;
case red_amber:
res = green;
break;
case green:
res = amber;
break;
case amber:
res = red;
break;
default:
{
error_handler ( );
break;
}
}
return res;
res = c; // غیر منطبق - این دستور قطعا غیرقابل دسترس است
}


در مثال بالا، دستور ;res = c بعد از ;return res قرار گرفته و هرگز اجرا نخواهد شد، بنابراین مصداق کد غیرقابل دسترس است و باید حذف شود.

نکته: کدی که توسط دستورات پیش‌پردازنده به صورت شرطی حذف شده است، مشمول این قانون نمی‌شود.


قوانین مرتبط:
○ قانون 14.3
○ قانون 16.4


#برنامه_نویسی#استاندارد_MISRA
#Embedded

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
👍1👌1
#هوش_مصنوعی #یادگیری_ماشین

یادگیری تحت نظارت (بخش اول)
وظایف یادگیری تحت نظارت به خوبی تعریف شده است و می تواند در بسیاری از سناریوها اعمال شود - مانند شناسایی هرزنامه یا پیش بینی بارش.

مفاهیم یادگیری با نظارت بنیادی
یادگیری ماشینی نظارت شده بر اساس مفاهیم اصلی زیر است:

○ داده ها
○ مدل
○ آموزش
○ ارزیابی کردن
○ استنتاج

داده ها
داده ها نیروی محرکه ML هستند. داده ها به شکل کلمات و اعداد ذخیره شده در جداول یا مقادیر پیکسل ها و شکل موج های ثبت شده در تصاویر و فایل های صوتی می آیند. ما داده های مرتبط را در مجموعه داده ها ذخیره می کنیم. به عنوان مثال، ممکن است مجموعه داده ای از موارد زیر داشته باشیم:

○ تصاویری از گربه ها
○ قیمت مسکن
○ اطلاعات آب و هوا

مجموعه داده ها از نمونه های مجزا تشکیل شده اند که حاوی ویژگی ها و یک برچسب هستند. می توانید مثالی را مشابه یک ردیف در یک صفحه گسترده در نظر بگیرید. ویژگی ها مقادیری هستند که یک مدل نظارت شده برای پیش بینی برچسب استفاده می کند. برچسب "پاسخ" یا مقداری است که ما می خواهیم مدل پیش بینی کند. در یک مدل آب و هوایی که بارندگی را پیش بینی می کند، ویژگی ها می توانند عرض جغرافیایی ، طول جغرافیایی ، دما ، رطوبت ، پوشش ابر ، جهت باد و فشار اتمسفر باشند. برچسب مقدار بارندگی خواهد بود.

به نمونه هایی که دارای هر دو ویژگی و برچسب هستند ، نمونه های برچسب دار گفته می شود.

ادامه در پست بعد...

#برنامه_نویسی #یادگیری_ماشین #هوش_مصنوعی

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
👌2
ادامه پست قبل...

دو نمونه برچسب گذاری شده (تصویر پیوست)

ادامه در پست بعد...

#برنامه_نویسی #یادگیری_ماشین #هوش_مصنوعی

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
👌2
ادامه پست قبل...

در مقابل، نمونه‌های بدون برچسب دارای ویژگی‌هایی هستند، اما فاقد برچسب هستند. پس از ایجاد یک مدل، مدل برچسب را از روی ویژگی ها پیش بینی می کند.

دو نمونه بدون برچسب (تصویر پیوست)

#برنامه_نویسی #یادگیری_ماشین #هوش_مصنوعی

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
👌2
#قانون 2.2 MISRA C - اجتناب از کدهای مرده

○ گروه: #کدهای_استفاده_نشده
○ دسته‌بندی: #الزامی
○ اعمال برای: C90, C99, C11

قاعده 2.2 استاندارد MISRA بیان می‌کند که پروژه نباید حاوی کد مرده باشد. کد مرده به هر عملیاتی گفته می‌شود که اجرا می‌شود اما حذف آن تأثیری بر رفتار برنامه ندارد. وجود کد مرده می‌تواند نشان دهنده خطا در منطق برنامه باشد و باعث سردرگمی شود.

این قاعده در استانداردهای ایمنی مانند IEC 61508، ISO 26262 و DO-178C نیز مورد توجه قرار گرفته است.

نمونه‌های کد مرده:
○ استفاده از متغیری که مقدار آن بعداً خوانده نمی‌شود.
○ استفاده از عملگری که نتیجه آن استفاده نمی‌شود.
○ فراخوانی تابعی که هیچ تأثیری بر رفتار برنامه ندارد.

استثنائات:
○ تبدیل صریح به نوع void
این عمل نشان می‌دهد که مقدار مورد نظر عمداً استفاده نمی‌شود و خود به تنهایی کد مرده محسوب نمی‌شود.

○ عملگر تبدیل صریح (cast operator) که نتیجه آن استفاده می‌شود، کد مرده نیست.

اهمیت رعایت این قاعده
○ بهبود کیفیت کد
حذف کد مرده باعث کاهش حجم کد، بهبود خوانایی و نگهداری آن می‌شود.

○ کاهش خطاها
وجود کد مرده می‌تواند نشانه‌ای از خطاهای منطقی در برنامه باشد. حذف این کدها به بهبود پایداری و قابلیت اطمینان نرم‌افزار کمک می‌کند.

○ افزایش کارایی
حذف کد مرده می‌تواند به بهبود عملکرد برنامه کمک کند.


مثال:

extern volatile uint16_t v;
extern char *p; 

void f ( void )
{
uint16_t  x;
( void ) v;
( int32_t ) v;
v >> 3;
x = 3;
*p++;
( *p )++;
}


خطاهای موجود در مثال:
‏○ (int32_t) v: تبدیل نوع (cast) به int32_t انجام می‌شود اما نتیجه استفاده نمی‌شود.
‏○ v >> 3: عملگر شیفت راست (<<) اجرا می‌شود اما نتیجه استفاده نمی‌شود.
‏○ x = 3: مقداردهی به متغیر x انجام می‌شود اما مقدار آن در ادامه استفاده نمی‌شود.
‏○ p++*: عملگر اشاره‌گری (*) اجرا می‌شود اما نتیجه آن استفاده نمی‌شود.

نکات مهم
○ کد غیرقابل دسترس (Unreachable Code) کد مرده نیست، زیرا هرگز اجرا نمی‌شود.
○ عملیات مقداردهی اولیه (Initialization) متفاوت از عملیات انتساب (Assignment) است و کد مرده محسوب نمی‌شود.
○ برخی از عملیات‌های زبان (مانند دستورات اسمبلی) ممکن است همیشه تأثیر بر رفتار برنامه داشته باشند و کد مرده محسوب نشوند.

قوانین مرتبط:
○ قانون 17.7

#برنامه_نویسی#استاندارد_MISRA
#Embedded

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
2👍1🤩1
#هوش_مصنوعی #یادگیری_ماشین

یادگیری تحت نظارت (بخش دوم)

مدل
در یادگیری نظارت شده، یک مدل مجموعه پیچیده ای از اعداد است که رابطه ریاضی را از الگوهای مشخصه ورودی خاص تا مقادیر برچسب خروجی خاص تعریف می کند. مدل از طریق آموزش این الگوها را کشف می کند.

آموزش
قبل از اینکه یک مدل تحت نظارت بتواند پیش بینی کند، باید آموزش داده شود. برای آموزش یک مدل، یک مجموعه داده با نمونه های برچسب دار به مدل می دهیم. هدف این مدل یافتن بهترین راه حل برای پیش بینی برچسب ها از روی ویژگی ها است. مدل با مقایسه مقدار پیش بینی شده خود با مقدار واقعی برچسب بهترین راه حل را پیدا می کند. بر اساس تفاوت بین مقادیر پیش بینی شده و واقعی - که به عنوان ضرر تعریف می شود - مدل به تدریج راه حل خود را به روز می کند. به عبارت دیگر، مدل رابطه ریاضی بین ویژگی ها و برچسب را یاد می گیرد تا بتواند بهترین پیش بینی ها را روی داده های دیده نشده انجام دهد.

برای مثال، اگر مدل 1.15 اینچ باران را پیش‌بینی کرده بود، اما مقدار واقعی 0.75 اینچ بود، مدل راه‌حل خود را تغییر می‌دهد تا پیش‌بینی آن به 0.75 اینچ نزدیک‌تر شود. پس از اینکه مدل به هر نمونه در مجموعه داده نگاه کرد - در برخی موارد، چندین بار - به راه حلی می رسد که به طور متوسط ​​بهترین پیش بینی ها را برای هر یک از نمونه ها انجام می دهد.

موارد موجود در پست‌های زیر آموزش یک مدل را نشان می دهد:

ادامه در پست بعد...

#برنامه_نویسی #یادگیری_ماشین #هوش_مصنوعی

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
ادامه پست قبل...

این مدل یک مثال برچسب گذاری شده را می گیرد و یک پیش بینی ارائه می دهد.

ادامه در پست بعد...

#برنامه_نویسی #یادگیری_ماشین #هوش_مصنوعی

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
ادامه پست قبل...

مدل مقدار پیش بینی شده خود را با مقدار واقعی مقایسه می کند و راه حل خود را به روز می کند.

ادامه در پست بعد...

#برنامه_نویسی #یادگیری_ماشین #هوش_مصنوعی

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
ادامه پست قبل...

مدل این فرآیند را برای هر نمونه برچسب گذاری شده در مجموعه داده تکرار می کند (تصویر پیوست).

به این ترتیب مدل به تدریج رابطه صحیح بین ویژگی ها و برچسب را یاد می گیرد. این درک تدریجی همچنین به این دلیل است که مجموعه داده های بزرگ و متنوع مدل بهتری را تولید می کند. مدل داده‌های بیشتری را با طیف وسیع‌تری از مقادیر دیده است و درک خود را از رابطه بین ویژگی‌ها و برچسب اصلاح کرده است.

در طول آموزش، توسعه دهندگان ML می‌توانند تنظیمات و ویژگی‌هایی را که مدل برای پیش‌بینی استفاده می‌کند، ویرایش و تنظیمات ظریفی انجام دهند. به عنوان مثال، برخی از ویژگی ها قدرت پیش بینی بیشتری نسبت به سایرین دارند. بنابراین، توسعه دهندگان ML می‌توانند انتخاب کنند که مدل از کدام ویژگی در طول آموزش استفاده می‌کند. برای مثال، فرض کنید یک مجموعه داده آب و هوا شامل time_of_day به عنوان یک ویژگی باشد. در این مورد، یک متخصص ML می‌تواند در طول آموزش time_of_day را اضافه یا حذف کند تا ببیند آیا مدل با آن یا بدون آن پیش‌بینی‌های بهتری انجام می‌دهد.

ادامه در پست بعد...

#برنامه_نویسی #یادگیری_ماشین #هوش_مصنوعی

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
👍1
ادامه پست قبل...

ارزیابی کردن
ما یک مدل آموزش دیده را ارزیابی می کنیم تا مشخص کنیم که چقدر خوب یاد گرفته است. وقتی یک مدل را ارزیابی می کنیم، از یک مجموعه داده برچسب دار استفاده می کنیم، اما فقط ویژگی های مجموعه داده را به مدل می دهیم. سپس پیش‌بینی‌های مدل را با مقادیر واقعی برچسب مقایسه می‌کنیم.

بسته به پیش‌بینی‌های مدل، ممکن است قبل از استقرار مدل در یک برنامه واقعی، آموزش و ارزیابی بیشتری انجام دهیم.

استنتاج
هنگامی که از نتایج ارزیابی مدل راضی شدیم، می‌توانیم از مدل برای پیش‌بینی‌هایی که استنتاج نامیده می‌شود، در نمونه‌های بدون برچسب استفاده کنیم. در مثال برنامه آب و هوا، ما به مدل شرایط آب و هوای فعلی -مانند دما، فشار اتمسفر و رطوبت نسبی- را می‌دهیم و میزان بارندگی را پیش‌بینی می‌کند.

#برنامه_نویسی #یادگیری_ماشین #هوش_مصنوعی

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
دعوت ویژه به یک رویداد علمی رایگان! 🚀

آیا به دنیای سیستم‌های نهفته، هوش مصنوعی و یادگیری ماشین علاقه‌مندید؟
آیا می‌خواهید درباره‌ی فرصت‌ها و چالش‌های این حوزه در ایران و جهان بیشتر بدانید؟


✔️ در این وبینار، به بررسی موضوعات زیر خواهیم پرداخت
○ سیستم‌های نهفته و معماری آنها
○ کاربرد سیستم‌های نهفته در دنیای امروز
○ نگاهی به بازار کار جهانی و ایران
○ نقش هوش مصنوعی و یادگیری ماشین در سیستم‌های نهفته

این وبینار برای چه کسانی مناسب است؟
○ دانشجویان و فارغ‌التحصیلان رشته‌های مهندسی کامپیوتر، برق و مکانیک
○ متخصصان و علاقه‌مندان به حوزه سیستم‌های نهفته
○ افرادی که به دنبال یادگیری و ارتقاء دانش خود در زمینه فناوری‌های نوین هستند

چرا در این وبینار شرکت کنیم؟
○ بهره‌مندی از دانش و تجربه متخصصان برجسته در حوزه سیستم‌های نهفته
○ آشنایی با آخرین دستاوردها و فناوری‌های روز در این حوزه
○ فرصت شبکه‌سازی با سایر شرکت‌کنندگان و متخصصان

🎉 تاریخ برگزاری
○ جمعه 19 بهمن | ساعت 18 الی 20

🧑🏻‍🏫 سخنران
○ مجید درهم بخش | توسعه دهنده و تحلیلگر سیستم‌های نهفته، مدرس دانشگاه

برای ثبت نام در وبینار اطلاعات زیر را به آی دی @mbedlab_admin ارسال نمایید تا اطلاعات ورود و شرکت در وبینار 24 ساعت قبل از برگزاری برای شما ارسال شود:
○ نام و نام خانوادگی
○ شماره تماس
○ آدرس ایمیل
○ زمینه فعالیت شغلی/تحصیلی

با شرکت در این وبینار، آینده سیستم‌های نهفته را از نزدیک ببینید و جایگاه خود را در این دنیای پر از فرصت مشخص کنید.

#برنامه_نویسی #الکترونیک #مکاترونیک #یادگیری_ماشین #هوش_مصنوعی

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
‏IDE اختصاصی نسخه 3.1.0 برای ESP32/ESP8266 از راه رسید! 🎉

دیگه لازم نیست فقط از آردوینو برای کدنویسی ESP32/ESP8266 استفاده کنید! یا با تنظیمات پیچیده ESP-IDF دست و پنجه نرم کنید. شرکت Espressif بالاخره IDE مخصوص خودش رو برای توسعه این میکروکنترلرها معرفی کرده: Espressif IDE!

این IDE که بر پایه Eclipse CDT ساخته شده، به طور خاص برای توسعه برنامه‌های IoT با استفاده از ESP-IDF طراحی شده. شامل پلاگین‌های ضروری Eclipse CDT و پلاگین‌های دیگه برای ساخت برنامه‌های ESP-IDF هست.

ویژگی‌های کلیدی:
○ پیکربندی خودکار متغیرهای محیط ساخت
○ پیکربندی یکپارچه toolchain
‏○ Wizard برای پروژه‌های جدید و شروع کار با نمونه‌های ESP-IDF
○ ویرایشگر LSP برای ویرایش پیشرفته، کامپایل و رنگی کردن syntax
○ پیمایش هدر و تعریف تابع از قبل ساخته شده
○ نصب و پیکربندی ESP-IDF و ابزارهای اون مستقیماً از IDE
○ ویرایشگر پیکربندی SDK برای تنظیمات خاص پروژه
○ پلاگین ویرایشگر یکپارچه CMake برای ویرایش فایل‌های CMake مانند CMakeLists.txt
○ پشتیبانی از ساخت مبتنی بر CMake
○ پشتیبانی از فلش UART و JTAG
○ عیب‌یابی سفارشی ESP-IDF OpenOCD با پیکربندی و تنظیمات از پیش ساخته شده
○ مانیتور سریال یکپارچه ESP-IDF
○ ترمینال ESP-IDF با محیط ساخت از پیش پیکربندی شده ESP-IDF
○ ویرایشگر تجزیه و تحلیل اندازه برنامه برای تجزیه و تحلیل ردپای حافظه استاتیک برنامه شما
○ پشتیبانی از پروفایلینگ heap برای تجزیه و تحلیل حافظه و یافتن نشت‌های حافظه
○ پشتیبانی از عیب‌یابی GDB stub و ردیابی سطح برنامه
○ پشتیبانی از زبان انگلیسی و چینی برای IDE

🖥 پلتفرم‌های پشتیبانی شده: macOS، Windows و Linux

⚠️ نکته مهم: نسخه 3.0 و بالاتر، از ESP-IDF نسخه 5.x و بالاتر پشتیبانی می‌کنه. برای نسخه‌های 4.x و پایین‌تر از نسخه 2.12.1 استفاده کنید.

⬇️ برای دانلود مستقیم Espressif-IDE به لینک زیر مراجعه نمایید:
https://news.1rj.ru/str/mBedLabLearning/68

#ESP32 #ESP8266 #IoT #IDE #برنامه_نویسی #میکروکنترلر #Espressif

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
esp-idf-tools-setup-espressif-ide-3.1.0-with-esp-idf-5.3.1.exe
1.8 GB
فایل نرم افزار Espressif-IDE نسخه 3.1.0

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
👍1
#قانون 2.3 MISRA C -اجتناب از اعلان انواع داده استفاده نشده

○ گروه: #کدهای_استفاده_نشده
○ دسته‌بندی: #توصیه_شده
○ اعمال برای: C90, C99, C11

قاعده 2.3 استاندارد MISRA بیان می‌کند که پروژه نباید شامل اعلان انواع داده ای باشد که در هیچ کجای کد استفاده نشده اند.

چرا این قانون مهم است؟
○ سردرگمی در بررسی کد
گر نوع داده ای اعلان شده باشد اما استفاده نشده باشد، برای بازبینی کننده کد مشخص نیست که این نوع داده اضافی است یا به اشتباه استفاده نشده است. این عدم قطعیت می تواند منجر به سردرگمی و خطا در تحلیل کد شود.

○ افزایش حجم کد
اعلان انواع داده استفاده نشده، حجم کد را افزایش می دهد و خوانایی و نگهداری کد را دشوارتر می کند.

○ خطاهای پنهان
ممکن است در مراحل بعدی توسعه، به طور اشتباهی از این نوع داده استفاده شود که می تواند منجر به بروز خطاهای غیرمنتظره و سخت یاب شود.


مثال:
int16_t unusedtype ( void )
{
typedef int16_t local_Type; /* Non-compliant */
return 67;
}


در این مثال، نوع داده local_Type اعلان شده است اما در هیچ کجای تابع استفاده نشده است. بنابراین، این کد با قانون 2.3 MISRA مطابقت ندارد.

#برنامه_نویسی#استاندارد_MISRA

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
آیا آمادگی تست دانش خود در یادگیری ماشین را دارید؟

در پست‌های قبلی، مفاهیم پایه یادگیری ماشین رو با هم بررسی کردیم. حالا وقتشه که با حل چند تا سوال، دانش خودمون رو محک بزنیم!

مدل‌های یادگیری ماشین با نظارت (Supervised Learning) با استفاده از داده‌هایی که قبلاً برچسب‌گذاری شده‌اند، آموزش می‌بینند. این مدل‌ها یاد می‌گیرند که بر اساس ویژگی‌های موجود، برچسب جدیدی را پیش‌بینی کنند. اما نکته اینجاست که همه ویژگی‌های موجود در یک دیتاست، قدرت پیش‌بینی‌کنندگی ندارند. گاهی فقط چند ویژگی خاص به عنوان پیش‌بینی‌کننده برچسب عمل می‌کنند.

در دیتاست ارسالی در تصویر، از ستون "قیمت" به عنوان برچسب استفاده می‌کنیم و ستون‌های دیگر را به عنوان ویژگی در نظر می‌گیریم.

به سوال ارسالی در پست بعد پاسخ دهید...

#برنامه_نویسی #یادگیری_ماشین #هوش_مصنوعی

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
به نظر شما کدام سه ویژگی در تصویر پست قبل احتمالاً بیشترین پیش‌بینی‌کننده برای قیمت یک خودرو هستند؟
Final Results
54%
Make_model, year, miles
35%
Miles, gearbox, make_model
12%
Color, height, make_model
0%
Tire_size, wheel_base, year
🤩4
👍2
#قانون 2.4 MISRA C - اجتناب از اعلان تگ‌های استفاده نشده

○ گروه: #کدهای_استفاده_نشده
○ دسته‌بندی: #توصیه_شده
○ اعمال برای: C90, C99, C11

این قاعده بیان می‌کند که پروژه نباید حاوی اعلان‌های تگ (tag) استفاده نشده باشد. تگ‌ها در C برای تعریف ساختارها (structs)، یونیون‌ها (unions) و شمارشگرها (enums) استفاده می‌شوند. اگر یک تگ تعریف شده باشد اما در هیچ کجای کد استفاده نشده باشد، ممکن است باعث سردرگمی شود. آیا این تگ به طور عمدی استفاده نشده است یا به اشتباه تعریف شده است؟

مثال نقض:
void unusedtag ( void )
{
enum state { S_init, S_run, S_sleep }; /* Non-compliant */
}


در این مثال، تگ state تعریف شده است اما در هیچ کجای تابع unusedtag استفاده نشده است.

مثال رعایت شده:
typedef struct record_t /* Non-compliant */
{
uint16_t key;
uint16_t val;
} record1_t;

typedef struct /* Compliant */
{
uint16_t key;
uint16_t val;
} record2_t;


در این مثال، تگ record_t تنها در تعریف typedef برای record1_t استفاده شده است. با حذف تگ record_t و استفاده مستقیم از ساختار، می‌توان این کد را مطابق با قاعده 2.4 نوشت.

#برنامه_نویسی#استاندارد_MISRA

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
👎1