ویرگول
ورودثبت نام
باران سیل سپور
باران سیل سپورسلام. من باران هستم دانشجوی دکترای رشته مهندسی نرم افزار و بسیار علاقمند به مباحث علم داده، یادگیری ماشین، یادگیری عمیق و پردازش زبان طبیعی
باران سیل سپور
باران سیل سپور
خواندن ۷ دقیقه·۶ سال پیش

چگونه با google colab کار کنیم؟

توجه: این پست به مرور زمان تغییر خواهد کرد.

با سلام

در این پست میخوام خیلی خلاصه و مفید در مورد شروع کار با google colab صحبت کنم.

هدف:

  • آموزش شروع کار با google colab
  • آموزش ایجاد یک شبکه یادگیری عمیق ساده با keras


گوگل کلب یا google colab یه سرویس رایگان ابری هست که توسط گوگل در اختیار علاقمندان به برنامه نویسی قرار داده شده تا بتونن رایگان از GPU گوگل برای اجرای برنامه های هوش مصنوعی استفاده کنن.

با گوگل کلب می تونیم:

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

برنامه های یادگیری عمیق را با استفاده از کتابخانه های محبوبی مانند keras، TensorFlow، PyTorch و OpenCV توسعه دهیم.

شروع کار با گوگل کلب

از آنجاییکه گوگل کلب فایل ها را در گوگل درایو ذخیره می کنه، ابتدا وارد گوگل درایو می شیم و نام کاربری و کلمه عبور جیمیل خود را وارد می نماییم. بر روی گزینه New کلیک می نماییم و یک folder به نام app برای فایل های گوگل کلب ایجاد می نماییم.

ایجاد پوشه جدید در گوگل درایو
ایجاد پوشه جدید در گوگل درایو

در این مرحله به پوشه app که همین الان ایجاد کردیم میریم، روی صفحه کلیک راست می کنیم و روی گزینه colaboratory یا google colaboratory کلیک می کنیم.

توجه کنید اگر شما گزینه colaboratory را در منو نمی بینید، روی Connect more app کلیک کنید و از صفحه جدیدی که باز میشه colaboratory را انتخاب و در صفحه جدیدی که باز میشه روی install کلیک کنید. با این کار کلب برای شما فعال میشه و اگر یک بار دیگه رو صفحه کلیک راست کنید می تونید گزینه colaboratory را ببینید.

ایجاد اولین فایل در گوگل کلب
ایجاد اولین فایل در گوگل کلب

حالا یک فایل در Notebook گوگل با پشوند ipynb برای شما ایجاد میشه. حالا میتونید کدنویسی به زبان پایتون رو شروع کنید.

اولین Notebook
اولین Notebook

به صورت پیشفرض اسم notebook ایجاد شده Untitled0.ipynb هست، میتونید خیلی راحت روی اسم فایل کلیک کنید و اسم مورد علاقه خودتون را تایپ کنید.

انتخاب GPU

حالا از منوی Runtime گزینه Change runtime را انتخاب کنید و در پنجره ای که باز میشه در قسمت Hardware accelerator گزینه GPU را انتخاب و save کنید.

انتخاب GPU
انتخاب GPU

اگر به گوشه بالای سمت راست notebook نگاه کنیم یه گزینه connect وجود داره. این گزینه نشون میده که ما فعلا به GPU گوگل وصل نیستیم چون هنوز برنامه ای اجرا نکردیم. بعد از اجرای اولین برنامه حالت این گزینه تغییر می کنه.

هنوز Connect نیستیم
هنوز Connect نیستیم

نوشتن اولین برنامه

گوگل کلب خودش به صورت خودکار یک سلول برای ما ایجاد کرده که می تونیم اولین دستورات پایتون خودمون را بنویسیم و اجرا کنیم. مثلا من دستور print زیر را نوشتم و روی دکمه اجرای مشکی رنگ کنار سلول کلیک کردم (می شه برای اجرای یک سلول از کلید Shift+Enter هم استفاده کرد) تا دستورم اجرا بشه.

اجرای اولین دستور
اجرای اولین دستور

بعد از اجرای اولین دستور، اون گزینه Connect بالای سمت راست صفحه به Connected تغییر می کنه. این یعنی ما الان به GPU گوگل وصل هستیم.

در هر سلول notebook میتونیم یک یا چند خط دستور پایتون بنویسیم.

اضافه کردن سلول جدید

برای ایجاد سلول جدید کافیه روی Code کلیک کنید یا دکمه های Ctrl+M+B را فشار بدید.

اجرای یک سلول

برای اجرای هر سلول باید کلید های shift+enter را فشار بدیم یا روی دکمه اجرای مشکی رنگ کنار سلول کلیک کنیم تا اون سلول اجرا بشه. پس من دیگه این نکته را تکرار نمی کنم.

نوشتن یک classifier با keras برای دسته بندی کردن تصاویر

اولی این نکته را بگم که برای نوشتن برنامه های یادگیری عمیق می تونیم از کتابخانه های آماده پایتون مثل tensorflow ، keras یا pytorch استفاده کنیم. من با pytorch کار نکردم و نمی خوام در موردش صحبت کنم.

اما Tensorflow شاید مهمترین کتابخانه برای نوشته برناه های یادگیری عمیق باشه که توسط گوگل ارائه شده. چون کارکردن با tensorflow کمی سخته، برنامه نویس ها یک کتابخانه جدید به نام keras نوشتند که درواقع یک wrapper روی tensorflow هست و خیلی ساده تره.

کتابخانه keras خودش چند تا دیتاست مختلف داره که معمولا برای آموزش مورد استفاده قرار میگیرن. یکی از این دیتاست ها fashion_mnist هست که شامل تصاویر لباس های مختلف با label هست. در این مثال میخواهیم یک classifier بنویسیم که با این دیتاست آموزش ببینه و وقتی یه تصویر جدید را بهش بدیم بتونه بگه این تصویر چی هست.

معرفی کتابخانه های مختلف

خب معمولا در اولین سلول برنامه باید کتابخانه های مورد نیاز خودمون را با دستور import به برنامه وارد کنیم. دستورات زیر را در اولین سلول می نویسیم و کلید shift+enter را فشار میدیم.

وارد کردن کتابخونه های مورد نیاز
وارد کردن کتابخونه های مورد نیاز

دانلود دیتاست

حالا دیتاست را با دو دستور زیر دانلود می کنیم و به دو دسته train و test تقسیم می کنیم.


دانلود دیتاست
دانلود دیتاست

پیش پردازش دیتاست

دیتاست fashion_mnist تصاویر را به ده دسته گروهبندی می کنه. اسامی این دسته ها را در آرایه زیر ذخیره می کنیم.

کلاس ها
کلاس ها

قبل از اینکه داده ها را به شبکه عصبی بدیم باید داده ها پیش پردازش بشن. در حال حاضر مقادیر پیکسل ها بین 0 تا 255 هست. این نکته را می تونیم از کد زیر متوجه بشیم.

اولین تصویر دیتاست قبل از پیش پردازش
اولین تصویر دیتاست قبل از پیش پردازش

ما میخواهیم تصاویر ما scale کوچکتری داشته باشن مثلا مقدار هر پیکسل بین 0 تا1 باشه. بخواطر همین در هر دو مجموعه داده های آموزشی و تستی مقدار پیکسل ها را به 255 تقسیم می کنیم.

Scaling
Scaling

برای اینکه مطمین بشیم که scaling به درستی انجام شده، کد زیر را اجرا می کنیم و 25 تصویر اول را می بینیم.

25 تصویر اول پس از پیش پردازش
25 تصویر اول پس از پیش پردازش

ساخت مدل

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

مدل
مدل

کامپایل مدل

منظور از کامپایل کردن مدل این هست که باید تابع optimizer و loss و metric را مثل زیر مشخص کنیم.

کامپایل
کامپایل

آموزش مدل

برای آموزش مدل، تابع fit را فراخوانی می کنیم و داده های آموزشی را به شبکه می دیم. من اینجا از 10 epoch استفاده کردم. اطلاعات هر epoch بعد از اجرای سلول در خروجی نوشته میشه.

آموزش مدل
آموزش مدل

ارزیابی مدل

برای ارزیابی مدل از دستور زیر استفاده می کنیم. همونطور که می بینید دقت مدل 0.88 هست.

ارزیابی مدل
ارزیابی مدل

پیش بینی با استفاده از مدل

کد زیر برای نمایش تصاویر و پیش بینی ها استفاده میشه. ین کد را بنویسید و اجرا کنید.

نمایش تصاویر
نمایش تصاویر

کد زیر نشون میده که با احتمال دقت 0.99 تصویر کفش را برای ما پیش بینی کرده.

پیش بینی
پیش بینی

ذخیره یا دانلود notebook

از منوی File با انتخاب گزینه های save و یا download می تونیم فایل notebook ایجاد شده را ذخیره یا دانلود کنیم.

منابع

https://www.tensorflow.org/tutorials/keras/classification


https://towardsdatascience.com/getting-started-with-google-colab-f2fff97f594c




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