ساخت سریع Image classifier با Tensorflow

ساخت سریع Image classifier با Tensorflow

ساخت سریع Image classifier با Tensorflow
ساخت سریع Image classifier با Tensorflow

یکی از سریع‌ترین و موثرترین راه‌ها برای ساخت برنامه image classifier این است که از اهرمی به‌نام transfer learning استفاده کنیم تا اشیایی که مورد نظر ما هستند را تشخیص بدهد. در این مقاله این رویکرد را با بهره وری از Google’s Inception v3 image classifier دنبال می‌کنیم.

توصیه می‌کنیم قبل از مطالعه مقاله برای دید بهتر ابتدا “ هوش‌مصنوعی با OPENCV ” را مطالعه کنید.

(ترجیحا اگر مطالب OpenCv سایت را بخوانید متوجه موضوع خواهید شد.)

مراحل پروژه:

راه‌اندازی و استفاده از Tensor Flow Docker Container

دانلود مجموعه اموزشی

آموزش دادن

تشخیص

گام اول

راه‌اندازی و استفاده از Tensor Flow Docker Container:

ابتدا باید از طریق لینکی که در ادامه قرار می‌دهیم نرم‌افزار موردنظر را نصب کنید.

برای دریافت نسخه ویندوز نرم‌افزار داکر باید از سایت رسمی آن دانلود کنید.(توجه کنید که تا log in نکنید نمیتونید چیزی دانلود کنید!)

برای دانلود، دو نوع نرم‌افزار برای دانلود است که اگر حوصله سر و کله زدن با ارور و باگ‌ها را ندارید نسخه stable را پیشنهاد می‌کنیم و اگر بیشتر و حرفه‌ای‌تر می‌خواهید در این زمنیه کار کنید توصیه می‌کنیم نسخه edge نرم‌افزار را نصب کنید.

نصب تنسور فلو

پس از اینکه نرم‌افزار را نصب کردید برای اطمینان از نصب می‌توانید از پنجره Power Shell یا Command Prompt ورژن نرم‌افزار را چک کنید.

تشخیص ورژن Docker

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

و با اجرای این دستور:

هوش مصنوعی چیست؟
می‌توانید مطمئن شوید که داکر می‌تواند ایمیج ها را دریافت و در نتیجه اجرا کند.

این دستور ایمیج تنسورفلو موردنظر را دانلود می‌کند و یک container را در پس‌زمینه اجرا می‌کند. وقتی container در حال اجرا است می‌توانیم  به نرم‌افزار متصل شویم (log in کنیم) و توسعه و کارهای موردنظر را در container انجام بدهیم.

پیاده سازی هوش مصنوعی
حال می‌توانیم ایمیج هایی را که داریم توسط دستور زیر چک کنیم.
docker چیست؟

گام دوم

دانلود مجموعه آموزشی:

می‌توانید از extention های مرورگرها استفاده کنید به طور مثال برای گوگل کروم می‎‌توانید از اینجا کلیک کنید.
نرم‌افزار docker برای مرورگر کروم

و همچنین برای فایرفاکس می‌توانید اینجا کلیک کنید.
نرم‌افزار docker برای مرورگر فایرفاکس

از دیتایی که دانلود کردیم حدود 90 درصد را برای آموزش و 10 درصد را برای تست و تشخیص جدا می‌کنیم.

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

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

شبکه عصبی
دیتا تست:

شبکه عصبی
برای دریافت ID container از دستور زیر استفاده می‌کنیم.

نصب docker

حال فایل /training_images را درون docker container که در حال اجرا است کپی می‌کنیم. (برای اینکار باید اول به دایرکتوری دیتایی که دانلود کردیم برویم)

نصب نرم‌افزار docker
داده های تست هم همینطور به صورت زیر است.

نصب TensorFlow
و در نهایت به container وارد می‌شویم.

نصب TensorFlow
(دقت کنید که ازاینجا به‌ بعد وارد محیط لینوکس شدیم میدونم پیچیده شده کاملا هم قبوله ولی شیرینه البته برای اهل دلش)

حال دایرکتوری روت را چک می‌کنیم.

در نهایت لیست باید شامل نوشته زیر باشد که باشد ( اگر موفق به دیدن خط زیر شدین واقعا باید به خودتون تبریک بگین)

نصب TensorFlow
گام سوم

آموزش شبکه عصبی:

دستور زیر retrain.py را اجرا و آموزش را شروع می‌کند.

(دقت کنید که خطوط بالا یک دستور است نه چند دستور)

خروجی‌ شما باید و حتما شبیه عکس زیر باشد.

نصب TensorFlow

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

گام چهارم

تشخیص:

حالا می‌توانیم ماژول آموزش داده شده را اجرا کنیم و ببینیم عملکرد آن برای دیتایی که برای تست قرار داده‌ بودیم چیست؟

خروجی آخر هم باید مانند تصویری که در ادامه قرار می‌دهیم باشد.

پروژه هوش مصنوعی

پروژه هوش مصنوعی

دو خط آخر در هر دو مثال درصد تخمین هر کلاس رو بیان می‌کند.

امیدواریم که این آموزش هم مورد توجه شما مخاطبین سیسوگی مفید واقع شده باشد.

 

منبع

منبع

منبع

0 نفر

پــــســنــدیـده انـد

توجه

BLO OM
BLO OM

«السَّلَامُ عَلَیْکَ یَا أَبَا عَبْدِ اللَّهِ، السَّلَامُ عَلَیْکَ وَ رَحْمَهُ اللَّهِ وَ بَرَکَاتُهُ».

دیدگاه ها

2 دیدگاه

  • kian
    ۱۷ مهر ۱۳۹۸

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

    • Phoenix
      ۱۷ مهر ۱۳۹۸

      سلام کیان عزیز. سپاس از نظر مثبت شما. موردی که می‌فرمائید را در برنامه قرار خواهیم داد.

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 3 سال پیش
راه اندازی LCD گرافیکی Nokia 1661

راه اندازی LCD گرافیکی Nokia 1661

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش
ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش
همه چیز درباره ریموت کنترل‌های هاپینگ

همه چیز درباره ریموت کنترل‌های هاپینگ

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

Zeus ‌ Zeus ‌
  • 5 سال پیش
مسابقه سوم: استخراج داده از رشته ها در زبان C

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش
مسابقه ششم: بزن میکروکنترلر را بسوزون!

مسابقه ششم: بزن میکروکنترلر را بسوزون!

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

Zeus ‌ Zeus ‌
  • 12 ماه پیش
آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش
ساخت ماینر با FPGA و ARM

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش
کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش
مسابقه چهارم: کدام حلقه سریع‌تر است؟

مسابقه چهارم: کدام حلقه سریع‌تر است؟

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

Zeus ‌ Zeus ‌
  • 2 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک