✳️ تابعهای لامبدا (Lambda) در پایتون — یک راهنمای مقدماتی
لامبداها در پایتون یکی از مفیدترین، مهمترین و جالبترین ویژگیهایی هستند که میتوان آموخت. متأسفانه اغلب افراد در مورد این توابع دچار سوءبرداشت شده و مسیر اشتباهی را طی میکنند. در این نوشته میخواهیم هر چیزی که لازم است در مورد این توابع اسرارآمیز، شیوه استفاده از آنها و میزان مفید بودنشان بدانید را توضیح دهیم.
══ فهرست مطالب ══
○ لامبدا در پایتون چیست؟
○ چگونه از لامبداها در پایتون استفاده کنیم؟
○ لامبداهای پایتون به همراه نگاشت، فیلتر و کاهش
○ مسائلی که هنگام استفاده از لامبدا باید در نظر داشت
🔸 لامبدا در پایتون چیست؟
لامبدا یک روش ساده برای تعریف تابع در پایتون است. این توابع غالباً به نام «عملگرهای لامبدا» یا «تابعهای لامبدا» نامیده میشوند.
اگر قبلاً از پایتون استفاده کرده باشید، احتمالاً توابع خود را با استفاده از کلیدواژه def تعریف میکنید و این روش نیز تاکنون برای شما به خوبی جواب داده است. پس چرا باید از روش دیگری برای تعریف تابعها استفاده کنیم؟
دلیل این مسئله آن است که تابعهای لامبدا ناشناس هستند. بدین معنی که اینها توابعی هستند که لازم نیست نامی برایشان تعیین کنید. این روش برای تعریف تابعهای کوچک یکبار مصرف در مواردی که تابع اصلی بسیار بزرگ و حجیم است، استفاده میشود.
🔸 چگونه از لامبداها در پایتون استفاده کنیم؟
پیش از آنکه تابعهای لامبدا را بررسی کنیم، میبایست به یک تابع بسیار مقدماتی که به روش سنتی تعریف شده است، نگاهی داشته باشیم:
def add_five(number):
return number + 5
print(add_five(number=4))
این تابع کاملاً ابتدایی است؛ اما به منظور نمایش کارکرد لامبداها ارائه شده است. تابعی که شما استفاده میکنید، ممکن است بسیار پیچیدهتر از این باشد. این تابع به هر عددی که از طریق پارامتر number به آن ارسال میشود، ۵ واحد اضافه میکند.
تابع لامبدای معادل آن چنین است:
add_five = lambda number: number + 5
print(add_five(number=4))
مطالعه ادامه مطلب 👇👇
🔗 تابعهای لامبدا (Lambda) در پایتون — یک راهنمای مقدماتی — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامه نویسی پایتون
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامه نویسی پایتون را در کانال اختصاصی [@FaraPython] دنبال کنید. 👇
@FaraPython — مطالب و آموزشهای برنامه نویسی پایتون فرادرس
لامبداها در پایتون یکی از مفیدترین، مهمترین و جالبترین ویژگیهایی هستند که میتوان آموخت. متأسفانه اغلب افراد در مورد این توابع دچار سوءبرداشت شده و مسیر اشتباهی را طی میکنند. در این نوشته میخواهیم هر چیزی که لازم است در مورد این توابع اسرارآمیز، شیوه استفاده از آنها و میزان مفید بودنشان بدانید را توضیح دهیم.
══ فهرست مطالب ══
○ لامبدا در پایتون چیست؟
○ چگونه از لامبداها در پایتون استفاده کنیم؟
○ لامبداهای پایتون به همراه نگاشت، فیلتر و کاهش
○ مسائلی که هنگام استفاده از لامبدا باید در نظر داشت
🔸 لامبدا در پایتون چیست؟
لامبدا یک روش ساده برای تعریف تابع در پایتون است. این توابع غالباً به نام «عملگرهای لامبدا» یا «تابعهای لامبدا» نامیده میشوند.
اگر قبلاً از پایتون استفاده کرده باشید، احتمالاً توابع خود را با استفاده از کلیدواژه def تعریف میکنید و این روش نیز تاکنون برای شما به خوبی جواب داده است. پس چرا باید از روش دیگری برای تعریف تابعها استفاده کنیم؟
دلیل این مسئله آن است که تابعهای لامبدا ناشناس هستند. بدین معنی که اینها توابعی هستند که لازم نیست نامی برایشان تعیین کنید. این روش برای تعریف تابعهای کوچک یکبار مصرف در مواردی که تابع اصلی بسیار بزرگ و حجیم است، استفاده میشود.
🔸 چگونه از لامبداها در پایتون استفاده کنیم؟
پیش از آنکه تابعهای لامبدا را بررسی کنیم، میبایست به یک تابع بسیار مقدماتی که به روش سنتی تعریف شده است، نگاهی داشته باشیم:
def add_five(number):
return number + 5
print(add_five(number=4))
این تابع کاملاً ابتدایی است؛ اما به منظور نمایش کارکرد لامبداها ارائه شده است. تابعی که شما استفاده میکنید، ممکن است بسیار پیچیدهتر از این باشد. این تابع به هر عددی که از طریق پارامتر number به آن ارسال میشود، ۵ واحد اضافه میکند.
تابع لامبدای معادل آن چنین است:
add_five = lambda number: number + 5
print(add_five(number=4))
مطالعه ادامه مطلب 👇👇
🔗 تابعهای لامبدا (Lambda) در پایتون — یک راهنمای مقدماتی — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامه نویسی پایتون
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامه نویسی پایتون را در کانال اختصاصی [@FaraPython] دنبال کنید. 👇
@FaraPython — مطالب و آموزشهای برنامه نویسی پایتون فرادرس
✳️ برنامهنویسی شیءگرا در پایتون — یک راهنمای مقدماتی برای مبتدیان
پایتون برای هر چیزی از رزبری پای تا یادگیری ماشین استفاده میشود. با این وجود اگر میخواهید با هر نوع پروژه بزرگی کار کنید، باید شیوه کار پایتون با برنامهنویسی شیءگرا (OOP) از جمله مفهوم کلاس در برنامه نویسی به زبان پایتون را بدانید. این مقاله مفاهیم کاملاً ابتدایی برنامهنویسی شیءگرا در پایتون را بررسی میکند.
══ فهرست مطالب ══
○ پایتون اساساً چیست؟
○ پیشنیازهای راهاندازی پایتون
○ مفاهیم اساسی پایتون: کلاسها
○ متغیرهای خصوصی در پایتون کدام هستند؟
○ درک وراثت در پایتون
○ دانش پایتون خود را بیش از این بسط دهید
○ فیلم آموزش برنامه نویسی شی گرا در پایتون
🔸 پایتون اساساً چیست؟
پایتون عملاً یک زبان برنامهنویسی است، پایتون زبانی محبوب است و به سرعت در حال رشد است. صرفاً به این خاطر که مانند شبه کد خوانده میشود و میتوانید بر روی رزبری پای بازی «ماینکرفت» بسازید، دلیل نمیشود که آن را زبان ضعیفتری بدانیم.
برنامهنویسی شیءگرا یکی از بنیادهای توسعه نرمافزارهای مدرن است و پایتون نیز رابطه خوبی با آن دارد. با این که پایتون برخی کارها را به روشی متفاوت از زبانهای عمده برنامهنویسی انجام میدهد؛ اما این مسئله نمیتواند باعث شود که به آن بیتوجهی کنیم.
🔸 پیشنیازهای راهاندازی پایتون
پیش از این که کار خود را آغاز کنید باید محیط توسعه پایتون را راه بیندازید. ما در این راهنما از نسخه ۳.۶.۵ پایتون استفاده کردهایم و گرچه شما میتوانید از نسخههای قدیمیتر نیز استفاده کنید؛ اما اگر از این نسخه استفاده کنید مشکلات کمتری خواهید داشت چون نسخه نسبتاً جدیدتری است.
در صورتی که تاکنون محیط مجازی ایجاد نکردهاید، ابتدا باید یک محیط مجازی بسازید و PIP برای پایتون را نصب کنید؛ گرچه در اکثر نسخههای جدید به همراه پایتون عرضه میشود. زمانی که این موارد نصب شدند، میتوانیم کار خود را آغاز کنیم.
مطالعه ادامه مطلب 👇👇
🔗 برنامهنویسی شیءگرا در پایتون — یک راهنمای مقدماتی برای مبتدیان — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامه نویسی پایتون
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامه نویسی پایتون را در کانال اختصاصی [@FaraPython] دنبال کنید. 👇
@FaraPython — مطالب و آموزشهای برنامه نویسی پایتون فرادرس
پایتون برای هر چیزی از رزبری پای تا یادگیری ماشین استفاده میشود. با این وجود اگر میخواهید با هر نوع پروژه بزرگی کار کنید، باید شیوه کار پایتون با برنامهنویسی شیءگرا (OOP) از جمله مفهوم کلاس در برنامه نویسی به زبان پایتون را بدانید. این مقاله مفاهیم کاملاً ابتدایی برنامهنویسی شیءگرا در پایتون را بررسی میکند.
══ فهرست مطالب ══
○ پایتون اساساً چیست؟
○ پیشنیازهای راهاندازی پایتون
○ مفاهیم اساسی پایتون: کلاسها
○ متغیرهای خصوصی در پایتون کدام هستند؟
○ درک وراثت در پایتون
○ دانش پایتون خود را بیش از این بسط دهید
○ فیلم آموزش برنامه نویسی شی گرا در پایتون
🔸 پایتون اساساً چیست؟
پایتون عملاً یک زبان برنامهنویسی است، پایتون زبانی محبوب است و به سرعت در حال رشد است. صرفاً به این خاطر که مانند شبه کد خوانده میشود و میتوانید بر روی رزبری پای بازی «ماینکرفت» بسازید، دلیل نمیشود که آن را زبان ضعیفتری بدانیم.
برنامهنویسی شیءگرا یکی از بنیادهای توسعه نرمافزارهای مدرن است و پایتون نیز رابطه خوبی با آن دارد. با این که پایتون برخی کارها را به روشی متفاوت از زبانهای عمده برنامهنویسی انجام میدهد؛ اما این مسئله نمیتواند باعث شود که به آن بیتوجهی کنیم.
🔸 پیشنیازهای راهاندازی پایتون
پیش از این که کار خود را آغاز کنید باید محیط توسعه پایتون را راه بیندازید. ما در این راهنما از نسخه ۳.۶.۵ پایتون استفاده کردهایم و گرچه شما میتوانید از نسخههای قدیمیتر نیز استفاده کنید؛ اما اگر از این نسخه استفاده کنید مشکلات کمتری خواهید داشت چون نسخه نسبتاً جدیدتری است.
در صورتی که تاکنون محیط مجازی ایجاد نکردهاید، ابتدا باید یک محیط مجازی بسازید و PIP برای پایتون را نصب کنید؛ گرچه در اکثر نسخههای جدید به همراه پایتون عرضه میشود. زمانی که این موارد نصب شدند، میتوانیم کار خود را آغاز کنیم.
مطالعه ادامه مطلب 👇👇
🔗 برنامهنویسی شیءگرا در پایتون — یک راهنمای مقدماتی برای مبتدیان — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامه نویسی پایتون
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامه نویسی پایتون را در کانال اختصاصی [@FaraPython] دنبال کنید. 👇
@FaraPython — مطالب و آموزشهای برنامه نویسی پایتون فرادرس
👍1
✳️ تشخیص اشیا در پایتون — راهنمای کاربردی
در چند سال اخیر، فناوریهای مبتنی بر «تشخیص اشیا» (Object Detection) به سرعت در حال یکپارچه شدن با دستگاههای الکترونیکی نظیر تلفنهای همراه، دوربینهای دیجیتال و فرایندهای صنعتی هستند. همچنین، الگوریتمهای تشخیص اشیا به بخش جداناپذیری از فناوریهای پیشرفتهای نظیر «اتومبیلهای خوران» (Self-Driving Automobiles | Autonomous Vehicle)، «احراز هویت بیومتریک» (Biometric Authentication) و سایر موارد تبدیل شدهاند.
══ فهرست مطالب ══
○ تشخیص اشیا
○ بینایی کامپیوتر
○ تحلیل اکتشافی دادهها
○ انتخاب الگوریتم تشخیص اشیا
○ مشخصات ورودیهای مدل YOLO برای تشخیص اشیا
○ معماری شبکه YOLO V۲
○ یادگیری انتقال
○ تابع «هزینه» (Cost) یا «زیان» (Loss)
○ دقت خروجی: mean Average Precision (امتیاز mAP)
○ نتایج حاصل از تست سیستم تشخیص اشیا
○ جمعبندی
🔸 تشخیص اشیا
اگر قرار باشد یک تعریف مشخصی از فناوری تشخیص اشیا ارائه شود، این دسته از فناوریها را میتوان در قالب فناوریها و سیستمهای کامپیوتری تعریف کرد که مجموعهای از وظایف مرتبط با حوزههای بینایی کامپیوتر (پردازش کامپیوتری تصاویر و ویدئو و درک محتوای آنها) و «پردازش تصویر» (Image Processing) را «خودکارسازی» (Automate) میکنند. به این دسته از فناوریها که کامپیوترها را قادر به «دیدن» میسازند، «بینایی کامپیوتر» (Computer Vision) گفته میشود. به عبارت دیگر، تشخیص اشیا زیر مجموعه فناوریها و سیستمهای کامپیوتری هستند که در حوزه بینایی کامپیوتر و پردازش تصویر فعالیت دارند.
در روشهای تشخیص اشیا، هدف تشخیص نمونهها یا اشیاء مرتبط با یک کلاس خاص (به عنوان نمونه، انسان، ساختمان، اتومبیلها و سایر موارد) در تصاویر و ویدئوهای دیجیتالی است. تشخیص اشیا حوزه تحقیقاتی بسیار بزرگی است و تحقیقات بسیار زیادی در این زمینه انجام شده است؛ دامنههایی نظیر «تشخیص چهره» (Face Detection) و «تشخیص عابر پیاده» (Pedestrian Detection) از جمله دامنههای تحقیقاتی پرطرفدار در حوزه تشخیص اشیا محسوب میشوند. سیستمهای تشخیص اشیا کاربردهای فراوانی در حوزههای مختلف بینایی کامپیوتر نظیر «بازیابی تصویر» (Image Retrieval) و «نظارت ویدئویی» (Video Surveillance) دارند.
در سیستمهای تشخیص اشیا، هدف «دستهبندی» (Classify) اشیاء موجود در تصویر، در مجموعهای از «کلاسهای» (Classes) از پیش تعیین شده است. هر کدام از کلاسهای تعریف شده، مجموعهای از «ویژگیهای» (Features) مختص به خود دارند که به سیستم در دستهبندی اشیاء متعلق به این کلاسها کمک میکنند. به عنوان، شکل هندسی دایرهها گرد است. بنابراین، هنگامی که سیستم به دنبال تشخیص دایره در ویدئو است، اشیائی که در فاصله خاصی از یک نقطه (مثلا مرکز) قرار دارند، جستجو میشوند. به طور مشابه، زمانی که سیستم به دنبال تشخیص مربع در تصویر است، اشیائی را جستجو میکند که در گوشهها عمود هستند و اندازه اضلاع آنها با یکدیگر برابر هستند.
🔸 بینایی کامپیوتر
بینایی کامپیوتر، یک حوزه «بین رشتهای» (Interdisciplinary) در علوم کامپیوتر و «هوش مصنوعی» (Artificial Intelligence) محسوب میشود. این حوزه با چگونگی ایجاد درک سطح بالا از تصاویر و ویدئوهای دیجیتال، توسط سیستمهای کامپیوتری سر و کار دارد. از دیدگاه مهندسی، هدف نهایی سیستمهای بینایی کامپیوتر، «خودکارسازی» (Automation) وظایف قابل انجام توسط سیستم بینایی انسان است.
به عنوان یکی از شاخههای علمی حوزه علوم کامپیوتر و هوش مصنوعی، وظیفه سیستمهای بینایی کامپیوتر استخراج، تحلیل و درک خودکار اطلاعات مفید از یک تصویر ایستا یا دنبالهای از تصاویر است. حوزه بینایی کامپیوتر با توسعه پایههای نظری و الگوریتم-محور لازم، جهت دستیابی به «درک بصری خودکار» (Automatic Visual Understanding) از تصاویر و ویدئوهای دیجیتال سر و کار دارد.
به عبارت دیگر، از دیدگاه علمی، بینایی کامپیوتر با نظریهها، الگوریتمها و رویکردهای قابل استفاده در سیستمهای هوش مصنوعی جهت استخراج، تحلیل و درک تصاویر دیجیتالی سر و کار دارد. تصاویر دیجیتالی میتوانند فرمهای مختلفی به خود بگیرند؛ دنبالههای ویدئویی، چشمانداز از دید دوربینهای مختلف یا دادههای «چندبُعدی» (Multi-Dimensional) به دست آمده از اسکنرهای پزشکی.
مطالعه ادامه مطلب 👇👇
🔗 تشخیص اشیا در پایتون — راهنمای کاربردی — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامه نویسی پایتون
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامه نویسی پایتون را در کانال اختصاصی [@FaraPython] دنبال کنید. 👇
@FaraPython — مطالب و آموزشهای برنامه نویسی پایتون فرادرس
در چند سال اخیر، فناوریهای مبتنی بر «تشخیص اشیا» (Object Detection) به سرعت در حال یکپارچه شدن با دستگاههای الکترونیکی نظیر تلفنهای همراه، دوربینهای دیجیتال و فرایندهای صنعتی هستند. همچنین، الگوریتمهای تشخیص اشیا به بخش جداناپذیری از فناوریهای پیشرفتهای نظیر «اتومبیلهای خوران» (Self-Driving Automobiles | Autonomous Vehicle)، «احراز هویت بیومتریک» (Biometric Authentication) و سایر موارد تبدیل شدهاند.
══ فهرست مطالب ══
○ تشخیص اشیا
○ بینایی کامپیوتر
○ تحلیل اکتشافی دادهها
○ انتخاب الگوریتم تشخیص اشیا
○ مشخصات ورودیهای مدل YOLO برای تشخیص اشیا
○ معماری شبکه YOLO V۲
○ یادگیری انتقال
○ تابع «هزینه» (Cost) یا «زیان» (Loss)
○ دقت خروجی: mean Average Precision (امتیاز mAP)
○ نتایج حاصل از تست سیستم تشخیص اشیا
○ جمعبندی
🔸 تشخیص اشیا
اگر قرار باشد یک تعریف مشخصی از فناوری تشخیص اشیا ارائه شود، این دسته از فناوریها را میتوان در قالب فناوریها و سیستمهای کامپیوتری تعریف کرد که مجموعهای از وظایف مرتبط با حوزههای بینایی کامپیوتر (پردازش کامپیوتری تصاویر و ویدئو و درک محتوای آنها) و «پردازش تصویر» (Image Processing) را «خودکارسازی» (Automate) میکنند. به این دسته از فناوریها که کامپیوترها را قادر به «دیدن» میسازند، «بینایی کامپیوتر» (Computer Vision) گفته میشود. به عبارت دیگر، تشخیص اشیا زیر مجموعه فناوریها و سیستمهای کامپیوتری هستند که در حوزه بینایی کامپیوتر و پردازش تصویر فعالیت دارند.
در روشهای تشخیص اشیا، هدف تشخیص نمونهها یا اشیاء مرتبط با یک کلاس خاص (به عنوان نمونه، انسان، ساختمان، اتومبیلها و سایر موارد) در تصاویر و ویدئوهای دیجیتالی است. تشخیص اشیا حوزه تحقیقاتی بسیار بزرگی است و تحقیقات بسیار زیادی در این زمینه انجام شده است؛ دامنههایی نظیر «تشخیص چهره» (Face Detection) و «تشخیص عابر پیاده» (Pedestrian Detection) از جمله دامنههای تحقیقاتی پرطرفدار در حوزه تشخیص اشیا محسوب میشوند. سیستمهای تشخیص اشیا کاربردهای فراوانی در حوزههای مختلف بینایی کامپیوتر نظیر «بازیابی تصویر» (Image Retrieval) و «نظارت ویدئویی» (Video Surveillance) دارند.
در سیستمهای تشخیص اشیا، هدف «دستهبندی» (Classify) اشیاء موجود در تصویر، در مجموعهای از «کلاسهای» (Classes) از پیش تعیین شده است. هر کدام از کلاسهای تعریف شده، مجموعهای از «ویژگیهای» (Features) مختص به خود دارند که به سیستم در دستهبندی اشیاء متعلق به این کلاسها کمک میکنند. به عنوان، شکل هندسی دایرهها گرد است. بنابراین، هنگامی که سیستم به دنبال تشخیص دایره در ویدئو است، اشیائی که در فاصله خاصی از یک نقطه (مثلا مرکز) قرار دارند، جستجو میشوند. به طور مشابه، زمانی که سیستم به دنبال تشخیص مربع در تصویر است، اشیائی را جستجو میکند که در گوشهها عمود هستند و اندازه اضلاع آنها با یکدیگر برابر هستند.
🔸 بینایی کامپیوتر
بینایی کامپیوتر، یک حوزه «بین رشتهای» (Interdisciplinary) در علوم کامپیوتر و «هوش مصنوعی» (Artificial Intelligence) محسوب میشود. این حوزه با چگونگی ایجاد درک سطح بالا از تصاویر و ویدئوهای دیجیتال، توسط سیستمهای کامپیوتری سر و کار دارد. از دیدگاه مهندسی، هدف نهایی سیستمهای بینایی کامپیوتر، «خودکارسازی» (Automation) وظایف قابل انجام توسط سیستم بینایی انسان است.
به عنوان یکی از شاخههای علمی حوزه علوم کامپیوتر و هوش مصنوعی، وظیفه سیستمهای بینایی کامپیوتر استخراج، تحلیل و درک خودکار اطلاعات مفید از یک تصویر ایستا یا دنبالهای از تصاویر است. حوزه بینایی کامپیوتر با توسعه پایههای نظری و الگوریتم-محور لازم، جهت دستیابی به «درک بصری خودکار» (Automatic Visual Understanding) از تصاویر و ویدئوهای دیجیتال سر و کار دارد.
به عبارت دیگر، از دیدگاه علمی، بینایی کامپیوتر با نظریهها، الگوریتمها و رویکردهای قابل استفاده در سیستمهای هوش مصنوعی جهت استخراج، تحلیل و درک تصاویر دیجیتالی سر و کار دارد. تصاویر دیجیتالی میتوانند فرمهای مختلفی به خود بگیرند؛ دنبالههای ویدئویی، چشمانداز از دید دوربینهای مختلف یا دادههای «چندبُعدی» (Multi-Dimensional) به دست آمده از اسکنرهای پزشکی.
مطالعه ادامه مطلب 👇👇
🔗 تشخیص اشیا در پایتون — راهنمای کاربردی — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامه نویسی پایتون
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامه نویسی پایتون را در کانال اختصاصی [@FaraPython] دنبال کنید. 👇
@FaraPython — مطالب و آموزشهای برنامه نویسی پایتون فرادرس