جستجو برای:
  • دوره‌های آموزشی
  • وبلاگ
  • آموزش‌های رایگان
    • آموزش پایتون رایگان
    • آموزش یادگیری ماشین رایگان
    • آموزش یادگیری عمیق رایگان
    • آموزش pytorch رایگان
    • آموزش رایگان matplotlib
    • آموزش گوگل کولب
  • نقشه راه AI
  • کلاس خصوصی
  • همکاری با ما💚
  • حساب کاربری
  • اساتید
  • درباره ما
     
    • 0902-546-9248
    • howsam.mail@gmail.com
    آکادمی هوش مصنوعی هوسم
    • دوره‌های آموزشی
    • آموزش‌های رایگان
      • آموزش پایتون
      • آموزش یادگیری ماشین رایگان
      • آموزش یادگیری عمیق رایگان
      • آموزش pytorch رایگان
      • آموزش گوگل کولب
    • نقشه راه AI
    • وبلاگ
    • درباره ما
      • اساتید
      • پشتیبانی
    0
    ورود / عضویت

    بلاگ

    آکادمی هوش مصنوعی هوسم وبلاگ یادگیری عمیق آموزش گوگل کولب

    آموزش گوگل کولب

    2020/09/01
    ارسال شده توسط سید سجاد اشرفی
    یادگیری عمیق
    42.73k بازدید

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

    فهرست مطالب نمایش
    1. انگیزه پست آموزش گوگل کولب
    2. پیش نیاز پست آموزش گوگل کولب
    3. سناریوی من برای آموزش گوگل کولب
    3.1. سناریوی من برای آموزش گوگل کولب: نوتبوک مرجع
    4. گوگل کولب چیست؟
    4.1. کلمه Colaboratory از کجا آمده و چرا گوگل چنین اسمی را انتخاب کرده است؟
    4.2. و حالا Google Colab Pro!
    5. ساخت نوتبوک در گوگل کولب
    5.1. مراحل ساخت نوتبوک در کولب
    5.2. نوتبوک زیر ذره‌بین در آموزش گوگل کولب
    6. سلول در گوگل کولب
    6.1. چگونه در نوتبوک کولب سلول بسازیم؟
    6.2. کمی تمرین برای ساخت سلول در نوتبوک
    6.3. import کردن فریمورک در Google Colab مثل آب خوردن
    7. ذخیره نوتبوک در گوگل درایو
    8. اتصال گوگل درایو به کولب
    8.1. پس آن دو خط موجود در نوتبوک مرجع برای اتصال گوگل درایو به کولب چیست؟
    9. کار با سیستم عامل لینوکس در کولب (آموزش گوگل کولب)
    9.1. دستور pwd
    9.2. دستور ls
    9.3. دستور cd
    9.4. دستور wget
    9.5. دستور unzip
    9.6. دستور pip
    10. Markdown در گوگل کولب (آموزش گوگل کولب)
    10.1. Title در نوتبوک
    10.2. Bold در نوتبوک
    10.3. Italic در نوتبوک
    10.4. متن خط زده در نوتبوک
    10.5. قرار دادن کد در نوتبوک
    10.6. لینک در نوتبوک
    10.7. تصویر در نوتبوک
    10.8. Indent در نوتبوک
    10.9. شماره گذاری در نوتبوک
    10.10. Bullet در نوتبوک
    10.11. خط افقی در نوتبوک
    11. استفاده از GPU در کولب
    11.1. هیجان در آموزش گوگل کولب : حالا GPU وارد می‌شود!
    11.2. راستی مشخصات GPU موجود در کولب چیست؟
    12. رسم نمودار در گوگل کولب

    انگیزه پست آموزش گوگل کولب

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

    پیش نیاز پست آموزش گوگل کولب

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

    سناریوی من برای آموزش گوگل کولب

    تصور کنید شما یک سیستم لینوکسی با GPU دارید، چقدر کاربرد دارد؟ سوال عجیبی پرسیدم! طبیعتا، بی‌شمار کاربرد دارد! خب، گوگل کولب هم بی‌شمار کاربرد دارد و نمی‌توان در یک پست، کل امکانات گوگل کولب را پوشش دارد. از طرفی، ما اینجا به‌نوعی با یک نرم‌افزار سروکار داریم. بنابراین، آموزش یک نرم‌افزار را پیشِ رو داریم نه آموزش کدنویسی یا تئوری… مثل آموزش Word! حالا وقتی صحبت از آموزش نرم‌افزار می‌شود، معمولا با چنین آموزش‌هایی مواجه می‌شویم که مدرس نرم‌افزار را باز کرده و از منوی فایل شروع می‌کند به توضیح دادن تک‌تک گزینه‌ها، درحالی‌که برای کسی که تازه می‌خواهد آموزش نرم‌افزاری مانند Word را یاد بگیرد، خیلی از امکانات موجود در منوها ضرورتی ندارد که بداند! در دوره سربازی به نیروهای کادری ICDL درس می‌دادم و دقیقا همین کار را می‌کردم! 😅 آنها هم متوجه نمی‌شدند و این شکلی می‌شدند: 😵

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

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

    • یک مجموعه سلول (همان بلوک) کد مشاهده می‌کنید.
    • مجموعه‌ای سلول متن می‌بینید که مشابه نرم‌افزار وُرد عبارت‌هایی به‌صورت بولد، ایتالیک، هایپرلینک و غیره وجود دارد.
    • دانلود یک فایل وجود دارد.
    • نصب پکیج با pip وجود دارد.
    • ارتباط با گوگل درایو وجود دارد.
    • و یکسری امکانات دیگر

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

    توجه درادامه، بارها به این نوتبوک ارجاع می‌دهم. اسم این نوتبوک را “نوتبوک مرجع” می‌گذارم تا راحت‌تر به آن آدرس بدهم.

    گوگل کولب چیست؟

    گوگل کولب یا Colaboratory یک محیط نوت‌بوک همراه با سخت‌افزار رایگان است که تماما در فضای ابری اجرا می‌شود. کولب توسط شرکت گوگل با هدف فراهم‌سازی شرایط کار و پیشرفت در هوش مصنوعی برای همه راه‌اندازی شد. سرویس ابری کولب به شما امکان استفاده از پردازنده‌های GPU TPU قدرتمند برای اجرای الگوریتم‌های هوش مصنوعی بر پایه پایتون را می‌دهد. با سرویس ابری کولب، شما و همکاران‌تان می‌توانید بدون نیاز به سخت افزار قدرتمندی، روی یک پروژه کار کنید. کار با سرویس ابری کولب شبیه به Google Docs هست و همه کارها به صورت اینترنتی انجام می‌شود. بسیاری از کتابخانه های محبوب هوش مصنوعی مانند TensorFlow Keras PyTorch OpenCV Numpy Scikit-learn به‌صورت پیش‌فرض در کولب نصب هست و بی دغدغه می‌توانید از آنها استفاده کنید.

    کلمه Colaboratory از کجا آمده و چرا گوگل چنین اسمی را انتخاب کرده است؟

    جالب است بدانید...

    کلمه Colaboratory از کجا آمده و چرا گوگل چنین اسمی را انتخاب کرده است؟ طبق تعریف ویلیام وولف در سال 1989: “Colaboratory پایگاهی بدون دیوار و محدودیت است که محققان کشورهای مختلف می‌توانند تحقیقات خود را بدون توجه به موقعیت فیزیکی، همراه با سایر همکاران، دسترسی به ابزار مناسب، به اشتراک‌گذاری داده‌ها، منابع محاسباتی و دسترسی به کتابخانه‌های دیجیتال انجام دهند.” چه دیدگاه ارزشمندی از ویلیام وولف و چه استفاده بجایی از کلمه Colaboratory توسط گوگل… منبع: ویکی‌پدیا

    و حالا Google Colab Pro!

    اوایل راه‌اندازی، کولب پر از ایراد و باگ بود و ارتباط با کولب دائم قطع می‌شد. اما، گوگل به تدریج بهبودهای زیادی ایجاد کرد، به‌گونه‌ای که امروز این سرویس در سرتاسر دنیا محبوب و پرکاربرد شده است. گوگل در یکی دو سال اخیر از سرویس Colab Pro و + Colab Pro رونمایی کرده است. این سرویس‌ها پولی است، اما با پرداخت هزینه بسیار کم، می‌توانید امکانات بیشتر و ویژه‌ای در اختیار داشته باشید. اطلاعات بیشتر درباره Colab Pro

    برویم سراغ بخش اصلی آموزش گوگل کولب…

    ساخت نوتبوک در گوگل کولب

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

    مراحل ساخت نوتبوک در کولب

    گام 1: ابتدا به سایت Colab بروید. خوشبختانه کاربران ایرانی به راحتی به این سایت دسترسی دارند. بعد از بالا آمدن سایت، احتمالا تصویر شکل 1 را خواهید دید.

    آموزش گوگل کولب
    شکل 1: صفحه اصلی سایت گوگل کولب

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

    نکته چرا باید کولب به جیمیل متصل شود؟ ساده است؛ ببینید، در بالا گفتم کولب یک سرویس ابری است و شما قرار است در این سرویس ابری کد بزنید. بسیار خب، کدها و فایل‌هایتان باید جایی ذخیره شود تا هر وقت خواستید به آنها دسترسی داشته باشید. پس در واقع جیمیل بهانه است و کولب به گوگل درایو (همان فضای ابری گوگل) متصل می‌شود.

    تذکر حال که متوجه شدید، کدها و فایل‌های شما قرار است در گوگل درایو ذخیره شود، یک نکته مهم را مدنظر داشته باشید. درحالت پیش‌فرض، گوگل 15 گیگابایت فضای رایگان در گوگل درایو به شما می‌دهد. حجم فایل‌های نوتبوک چندان زیاد نیست، اما ممکن است بخواهید مدل و دیتاست را در درایو خود ذخیره کنید. دراینصورت، ممکن است با مشکل کمبود حجم مواجه شوید. مطمئن نیستم، اما شاید یک جیمیل جداگانه برای کولب داشته باشید، بد نباشد…

    گام 3: بعد از اینکه کولب به جیمیل متصل شد، با محیطی شبیه تصویر زیر مواجه خواهید شد. یک پنجره pop-up با یکسری نوتبوک آماده وجود دارد. اما بهتر است خودمان یک نوتبوک بسازیم. روی گزینه NEW NOTEBOOK کلیک کنید. مطابق شکل 2:

    نوتبوک ژوپیتر در گوگل کولب
    شکل 2: ساخت نوتبوک جدید در گوگل کولب

    حالا محیطی مانند شکل 3 بالا می‌آید و کولب آماده است که اولین کدتان را بنویسید:

    کدنویسی در نوتبوک کولب
    شکل 3: کدنویسی در نوتبوک گوگل کولب

    نوتبوک زیر ذره‌بین در آموزش گوگل کولب

    قبل از اینکه وارد گام بعدی شویم، می‌خواهم کمی شما را با محیط نوتبوک آشنا کنم. در شکل 5، بخش‌هایی از گوگل کولب را با رنگ‌های مختلف به شما نشان داده‌ام. این بخش‌ها عبارتنداز:

    1. کادر 1، شامل منوهای گوگل کولب است. گزینه‌های این منو چندان پیچیده نیست، اما لازم نیست الان که آشنایی زیادی با کولب ندارید، درباره آنها صحبت کنم. رفته رفته در این پست با مهم‌ترین گزینه‌های این منو آشنا خواهید شد.
    2. کادر 2، نام نوتبوک شما را نشان می‌‌دهد. روی این بخش کلیک کنید، مشاهده می‌کنید که ماوس به حالت ادیتور درمی‌آید و به همین راحتی می‌توانید نام فایل را عوض کنید. البته، نام فایل را عوض کنید، نه پسوند فایل را (ipynb.). توصیه می‌کنم، نام فایل‌های‌تان را خوب و مناسب انتخاب کنید. چون این فایل‌ها در کولب ذخیره می‌شود و بعد مدتی یک عالمه فایل untitled دارید و پیدا کردن فایل مدنظرتان سخت است. بسیارخب، نام فایل نوتبوک را به نام نوتبوک مرجع “introduction to google colab” تغییر دهید.
    3. کادر 3، نشان‌دهنده اتصال یا عدم اتصال به ماشین مجازی یا VM گوگل است. زمانی‌که به یک VM متصل باشید، میزان مصرف رَم و هارد را به شما نشان می‌دهد. اما وقتی‌که اتصال با VM برقرار نباشد، کلمه “connect” را نمایش می‌دهد. دراین‌حالت باید روی این کلمه کلیک کنید تا متصل شود. کمی طول می‌کشد و بعد متصل می‌شود. پس روی کلمه Connect کلیک کنید…
    4. کادر 4، نشان‌دهنده سلول است. در سلول، کد یا متن مدنظرمان را می‌نویسیم. بعدا بیشتر توضیح می‌دهم.
    آشنایی با گوگل کولب
    شکل 4: آشنایی با محیط گوگل کولب

    بسیاری از آیتم‌های شکل 4 را توضیح ندادم، چون فعلا نیازی نیست. سبک برویم جلو بهتر است! بیایید آشنایی اولیه را کامل کنیم و یک کد ساده هم بنویسیم. در سلول (کادر 4)، دستور زیر را بنویسید و دکمه Play یا Run را بزنید. حالا کولب درحال اجرای کد شماست و اندکی بعد می‌توانید خروجی را هم مشاهده کنید.

    print('Hello Colab!')

    حالا باید خروجی زیر را مشاهده کنید:

    Hello Colab!

    تمام! به همین راحتی شما می‌توانید در کولب کد پایتون بزنید و اجرا کنید. هیچ نیازی هم به نصب پایتون نیست! 

    نکته ماوس را روی بخش نمایش رَم و هارد نگه دارید، یک باکس نوشته ظاهر می‌شود. در این باکس، میزان رَم و هاردی که تاکنون مصرف کرده‌اید را نشان می‌دهد. اما خط اول، یک نوشته مهم دارد. نوشته زیر را می‌بینید:

    Connected to "Python 3 Google Compute Engine Backend"

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

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

    سلول در گوگل کولب

    هر نوتبوک از مجموعه‌ای سلول (Cell) تشکیل شده است. سلول محلی برای نوشتن کد یا متن هست. بله، در نوتبوک دو نوع سلول متن و سلول کد وجود دارد:

    • سلول کد: در سلول کد، به‌راحتی می‌توانید کدهای پایتونی بنویسید و اجرا کنید.
    • سلول متن: در سلول متن، مشابه با یک داکیومنت (ورد یا گوگل داک) می‌توانید توضیح بنویسید. مثلا در نوتبوک مرجع، یک سلول متن مشاهده می‌کنید که شامل متن با هدینگ، بولد، ایتالیک، لینک و تصویر هم هست. یعنی نوتبوک شما می‌تواند یک گزارش کار آنلاین باشد!

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

    به چهار روش می‌توان سلول ساخت. ساده‌ترین راه این است که ماوس را به سمت محلی که در شکل زیر نشان داده شده ببرید، دو گزینه Code و Text ظاهر می‌شود. گفته بودم سلول می‌تواند کد یا متن باشد. خب مشاهده می‌کنید که دو گزینه Text و Code معادل با همان دوتاست. فرض کنید می‌خواهید سلول کد بسازید. پس کافی است روی گزینه Code کلیک کنید. مشاهده می‌کنید که یک سلول جدید ساخته شد. حالا یک بار دیگر یک سلول متن بسازید. شما می‌توانید بینهایت سلول متن و کد بسازید.

    آموزش گوگل کولب رایگان
    شکل 5: افزودن سلول کد و متن در گوگل کولب

    سه راه دیگر هم برای اضافه کردن سلول کد و متن وجود دارد که در زیر خلاصه کردم:

    • با استفاده از گزینه های موجود در شکل 6 می‌توانید سلول متن و کد بسازید. من کمتر از این گزینه‌ها استفاده می‌کنم. شاید به خاطر تنبلی!
    • با استفاده از شورتکات ctrl+m b می‌توانید سلول کد بسازید. حفظ کردن شورتکات از علایق من نیست، اما دوستانی دارم که همچون حرکات رونالدینیو با توپ، شورتکات می‌زنند!
    • از گزینه Insert می‌توانید سلول متن و کد بسازید. انصافا این روش خیلی دور است و سخت است ماوس را این همه راه تا آنجا ببریم!
    آموزش گوگل کولب همراه با مثال
    شکل 6: گزینه‌های جانبی برای افزودن سلول کد و متن

    کمی تمرین برای ساخت سلول در نوتبوک

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

    نکته سلول متن را نمی‌توان اجرا کرد. در تصاویر بالا می‌توانید ببینید که دکمه Play وجود ندارد. اما در سلول کد، کدهای هر سلول از یک خط تا چند صد خط را می‌توانید با Play اجرا کنید. علاوه بر گزینه Play، با استفاده از شورتکات ctrl+enter نیز می‌توانید سلول را اجرا کنید.

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

    Introduction to Google Colab by Howsam AI Academy

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

    یادگیری عمیق با گوگل کولب
    شکل 7: سلول متن در گوگل کولب

    import کردن فریمورک در Google Colab مثل آب خوردن

    سلول بعدی ایمپورت کردن فریمورک است. باید چند فریمورک نام آشنا را فراخوانی کنیم. خوشبختانه، به‌صورت پیش‌فرض بسیاری از فریمورک‌های محبوب و پرکاربرد در کولب نصب است. پس فارغ از هر نوع دغدغه در نصب، آنها را فراخوانی می‌کنیم:

    import os
    
    import numpy as np
    import matplotlib.pyplot as plt
    import tensorflow as tf

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

    def factorial(n):
        fact = 1
        for num in range(2, n + 1):
            fact *= num
        return fact
    
    factorial(10)

    این هم خروجی:

    3628800

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

    ذخیره نوتبوک در گوگل درایو

    تا اینجای آموزش گوگل کولب آموختید که چگونه کولب را به گوگل درایو متصل کنید. همچنین، سلول متن و کد بسازید. کد پایتون بنویسید و اجرا کنید. حالا می‌خواهم به شما بیاموزم که این فایل نوتبوک را در گوگل درایو ذخیره کنید. اولا، کولب به‌صورت خودکار نوتبوک شما را ذخیره می‌کند. اما برای ذخیره دستی، از منوی File، گزینه Save را بزنید. همچنین، می‌توانید از شورتکات ctrl+s هم برای ذخیره فایل استفاده کنید.

    نکته به کادر موجود در تصویر زیر دقت کنید. دراینجا، ممکن است نوشته‌های مختلفی ظاهر شود. من چند نمونه را برای شما آورده‌ام:

    • All changes saved: دراین‌حالت تمامی تغییرات شما در نوتبوک ذخیره شده و حتی اگر یک‎باره فایل نوتبوک را ببندید، اتفاق خاصی نمی‌افتد.
    • Cannot saved changes: از این حالت بترسید، چون ممکن است مشکلی پیش آمده باشد و تغییرات شما به‌صورت خودکار ذخیره نشده باشد. درنتیجه بر اثر اتفاقی بخشی از کدهای‌تان که ذخیره نشده بپرد! بنابراین، حتما خودتان به روش دستی فایل را ذخیره کنید.
    • گاهی زمان آخرین ذخیره در این قسمت نوشته می‌شود. اگر از مدت زمان آخرین ذخیره زمان زیادی گذشته و تغییراتی در نوتبوک ایجاد کرده‌اید، بهتر است خودتان ذخیره را بزنید.
    • …Saving: واضح است، نوتبوک شما درحال ذخیره‌سازی است. احتمالا تغییراتی ایجاد کرده‌اید که کولب صلاح دانسته آنها را ذخیره کند.
    گوگل کولب و یادگیری عمیق
    شکل 8: ذخیره در گوگل کولب

    اتصال گوگل درایو به کولب

    در چهارمین سلول از نوتبوک مرجع، دو خط کد نوشته شده که مربوط به اتصال گوگل درایو به نوتبوک است. چگونه می‌توان به گوگل درایو متصل شد و از فایل‌های موجود در آن استفاده کرد؟ مثلا شاید وزن‌های یک مدل یا دیتاست را در آن ذخیره کرده باشید. اصلا مگر همان ابتدای کار گوگل درایو را به نوتبوک معرفی نکردیم؟ بله، معرفی کردیم، اما صرفا برای ذخیره فایل‌های نوتبوک بود. اگر در یک نوتبوک خاص بخواهید از اطلاعات موجود در گوگل درایوتان بهره ببرید، باید گوگل درایو را Mount کنید. یعنی تصور کنید، گوگل درایو شما یک هارد اکسترنال هست که هرموقع خواستید از اطلاعات موجود در آن استفاده کنید، به کامپیوتر متصل می‌کنید. این کار ساده است؛ کافی است به‌ترتیب روی گزینه‌های 1 و 2 در تصویر زیر کلیک کنید.

    آموزش رایگان گوگل کولب
    شکل 9: اتصال گوگل درایو به نوتبوک در گوگل کولب

    یک پنجره pop-up باز می‌شود و از شما می‌پرسد که آیا می‌خواهید گوگل‌درایو را به نوتبوک متصل کنید؟ با تایید این سوال، شما بدون یک خط کدنویسی به گوگل درایو متصل خواهید شد!

    پس آن دو خط موجود در نوتبوک مرجع برای اتصال گوگل درایو به کولب چیست؟

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

    from google.colab import drive
    drive.mount('/content/drive')

    بله، این سلول در نوتبوک مرجع هم وجود دارد. حال این سلول را اجرا کنید. یک لینک و تکست‌باکس ظاهر می‌شود. شکل زیر:

    اتصال گوگل درایو به نوتبوک در گوگل کولب
    شکل 10: اتصال گوگل درایو به نوتبوک در گوگل کولب با کدنویسی (آموزش گوگل کولب)

    روی لینک کلیک کنید؛ از شما اجازه دسترسی می‌خواهد، گزینه Allow را بزنید. درنهایت یک کد طولانی می‌دهد که آنرا کپی و در تکست‌باکس بالا اضافه کنید. اگر همه‌چیز درست پیش برود، نوتبوک شما به گوگل درایو متصل می‌شود و پیغام زیر را باید مشاهده کنید:

    Mounted at /content/drive

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

    نکته به علامت فلش در تصویر زیر دقت کنید؛ در این قسمت یک پوشه به‌نام درایو اضافه شده که همان گوگل درایو شماست. ممکن است حتی بعد از اتصال صحیح، آنرا نبینید. مشکلی نیست، فقط کافی است روی گزینه کادر قرمز (Refresh) کلیک کنید تا ظاهر شود.

    نمایش پوشه گوگل درایو در نوتبوک
    شکل 11: نمایش پوشه گوگل درایو در نوتبوک

    به یکی از بخش‌های پرکاربرد و جالب آموزش گوگل کولب رسیدیم…

    کار با سیستم عامل لینوکس در کولب (آموزش گوگل کولب)

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

    دستور pwd

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

    pwd

    و خروجی:

    /content

    نکته مسیر content/، مسیر پیش‌فرض است و به همان مسیری که الان در Files می‌بینید، اشاره دارد. چطور مطمئن شویم؟ با دستور بعدی…

    دستور ls

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

    ls

    حالا خروجی:

    drive/ sample_data/

    مشاهده می‌کنید، نوتبوک ما به‌صورت پیش‌فرض به تمامی پوشه‌های موجود در Files را می‌تواند ببیند. پوشه drive به گوگل درایو اشاره دارد و sample_data هم نمونه داده‌های اولیه است که همیشه در کولب وجود دارد. بسیارخب، دیدن مسیر جاری و محتویات یک مسیر را آموختید، اما اگر بخواهید مسیر جاری را تغییر دهید چه باید کرد؟ دستور بعدی…

    دستور cd

    با استفاده از دستور cd می‌توانید مسیر جاری یا Current Directory را به راحتی تغییر دهید. طبق نوتبوک مرجع، ما باید وارد پوشه sample_data شویم، بنابراین باید بنویسیم:

    cd sample_data

    حالا بد نیست نگاهی به محتویات موجود در این پوشه بیندازیم:

    ls
    anscombe.json*                mnist_test.csv
    california_housing_test.csv   mnist_train_small.csv
    california_housing_train.csv  README.md*

    اگر بخواهید یک پوشه به عقب برگردید، بنویسید:

    cd ..

    دستور wget

    بسیار خب برویم سراغ نوتبوک مرجع… با استفاده از دستور wget می‌توانید فایل‌های مدنظرتان را دانلود و در نوتبوک از آنها استفاده کنید. مثلا در سلول 5 از نوتبوک مرجع، دستور زیر را می‌بینید:

    !wget http://vision.stanford.edu/Datasets/Stanford40.zip

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

    --2020-08-27 16:07:03--  http://vision.stanford.edu/Datasets/Stanford40.zip
    Resolving vision.stanford.edu (vision.stanford.edu)... 171.64.68.10
    Connecting to vision.stanford.edu (vision.stanford.edu)|171.64.68.10|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 308432833 (294M) [application/zip]
    Saving to: ‘Stanford40.zip’
    Stanford40.zip      100%[===================>] 294.14M  14.2MB/s    in 21s     
    2020-08-27 16:07:25 (13.7 MB/s) - ‘Stanford40.zip’ saved [308432833/308432833]

    بله، سرعت فایل بسیار بالاست. پس از دانلود، در بخش Files می‌توانید فایل دانلودی را مشاهده کنید. اگر هم ظاهر نشد، Refresh کنید.

    تذکر فکر نکنید که با این روش می‌توانید فایل‌ها را سریع دانلود کنید تا در کامپیوتر خودتان داشته باشید. فایل‌های دانلودی در VM گوگل ریخته می‌شود. حالا شما باید از VM دانلود کنید و روی کامپیوترتان بریزید. با این روش، دانلود نسبت به حالت عادی طولانی‌تر می‌شود! 😀 دیدم که میگم… 😉

    دستور unzip

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

    !unzip Stanford40.zip

    بعد از اجرای کد بالا، یک عالمه متن چاپ می‌شود. شاید این متن‌ها را دوست نداشته باشید. کافی است علامت X را مطابق شکل زیر انتخاب کنید تا خروجی را حذف کند…

    آموزش کولب
    شکل 12: پاک کردن خروجی در گوگل کولب

    اگر مطابق تصویر زیر، به پوشه XML Annotations نگاهی بیندازید، فایل‌های تصویری و xml مشاهده خواهید کرد. اتفاقا در فایل مرجع قرار است با این فایل‌های xml کار کنیم. با چه دستوری می‌توان فایل‌های xml را خواند؟ قطعا راه‌های متنوعی برای این کار وجود دارد. من تصمیم گرفته‌ام این فایل‌های xml را فراخوانی و تبدیل به دیکشنری در پایتون کنم. با چه دستوری؟ با دستور xml2dict… این دستور در پایتون وجود ندارد و مربوط به یک کتابخانه‌ای است که باید در پایتون نصب کنم. پس رسیدیم به نصب یک کتابخانه یا پکیج در گوگل کولب و پایتون… پکیج‌های پایتونی را با استفاده از pip install می‌توان نصب کرد. درادامه به شما می‌گویم در گوگل کولب چگونه این کار را انجام دهید…

    دستور pip

    برای نصب پکیج‌های پایتونی در گوگل کولب کافی است از دستور pip install! استفاده کنید. به‌همین راحتی، تنها با افزودن علامت ! می‌توانید از این دستور در گوگل کولب بهره ببرید. به‌عنوان مثال، برای نصب پکیج xml2dict کافی است بنویسید:

    !pip install xml2dict

    به‌راحتی نصب شد. حالا یک نمونه فایل xml طبق نوتبوک مرجع باز می‌کنم. طبق کد زیر:

    import xmltodict
    
    with open('/content/XMLAnnotations/applauding_001.xml') as fd:
        dict_file = xmltodict.parse(fd.read())
    print(dict_file)
    OrderedDict([('annotation', OrderedDict([('filename', 'applauding_001.jpg'), ('folder', 'Stanford40'), ('object', OrderedDict([('name', 'person'), ('action', 'applauding'), ('bndbox', OrderedDict([('xmax', '258'), ('xmin', '28'), ('ymax', '400'), ('ymin', '57')]))])), ('size', OrderedDict([('depth', '3'), ('height', '400'), ('width', '300')]))]))])

    شاید فهمیدن کد بالا کمی برای شما مشکل باشد، مهم نیست؛ چون من به دنبال آموزش خواندن فایل XML نیستم، بلکه می‌خواستم به شما نحوه نصب یک پیکیج جدید در کولب را آموزش دهم.

    تذکر طبیعتا پکیج‌های نصبی و دانلودی شما به‌صورت موقت روی VM می‌ماند و بعد از بستن کولب پاک می‌شوند. البته، اینطور نیست که بلافاصله فایل‌ها پاک شوند، بلکه مدت زمانی کوتاه (شاید کمتر از 1 ساعت) در دسترس هستند، چون ممکن است به‌صورت اتفاقی کولب را بسته باشید…

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

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

    Markdown در گوگل کولب (آموزش گوگل کولب)

    یک سلول متن بسازید و متن این لینک را کامل در آن اضافه کنید.

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

    گوگل کولب یادگیری عمیق
    شکل 13: امکانات ادیتور متن در گوگل کولب

    Title در نوتبوک

    اولین عبارت باید از متن معمولی به یک هدینگ تبدیل شود. برای این کار کافی است از آیکون شماره 1 یا T (مخفف Title) استفاده شود. نکته جالب ادیتور اینجاست که در بخش سمت راست، می‌توانید خروجی تغییرات را مشاهده کنید. اما دقت کنید، بعد از فشردن کلید T تنها یک # قبل از متن اضافه می‌شود. بله، حتی اگر از آیکون T استفاده نکنید، می‌توانید با گذاشتن یک # متن معمولی را به یک تایتل عوض کنید.

    حالا شما یک تایتل دارید. یک بار دیگر آیکون T را بزنید؛ حالا دو # اضافه شده و سایز تایتل هم کمی کوچکتر می‌شود. در واقع می‌توانیم بگوییم که با دو # ما یک h2 داریم. اگر یک بار دیگر آیکون T را بزنید، سه # اضافه می‌شود و بازهم سایز متن کوچکتر می‌شود. حالا یک h3 داریم. یک بار دیگر آیکون T را بزنید؛ تبدیل به متن معمولی شد و همه #ها پاک شد. پس با گذاشتن 1 الی 3 # می‌توانیم تایتل h1 h2 h3 بسازیم.

    نکته اگر بخواهیم از # استفاده کنیم و هدفمان این نباشد که تایتل بگذاریم، چه باید بکنیم؟ در این‌حالت باید از #\ استفاده کنید.

    Bold در نوتبوک

    برای Bold کردن یک کلمه یا عبارت، کافی است از آیکون شماره 2 یا B استفاده کنید. مشاهده می‌کنید که با انتخاب این گزینه، کلمه مدنظر در داخل دو ** قرار می‌گیرد. بنابراین، شما می‌توانید بدون استفاده از گزینه B، با قرار دادن کلمه در دو ** به صورت **بولد**، هر کلمه یا عبارتی را Bold کنید. یک سری کلمه و عبارت در متن نوتبوک مرجع، Bold هستند که با استفاده از این تکنیک آنها را Bold کنید.

    Italic در نوتبوک

    برای کج کردن یا ایتالیک یک کلمه یا عبارت، کافی است از آیکون I استفاده کنید. اگر هم نمی‌خواهید از این آیکون استفاده کنید، کافی است کلمه یا عبارت مدنظرتان را در * قرار دهید. یعنی به این‌صورت: *ایتالیک*.

    متن خط زده در نوتبوک

    برای خط زدن یک متن، آیکونی وجود ندارد. اما با استفاده از شورتکات ~~ می‌توانید این کار را انجام دهید. پس کافی است بنویسید: ~~متن مدنظر~~

    قرار دادن کد در نوتبوک

    اگر به کدهای موجود در این پست نگاهی بیندازید، مشاهده می‌کنید کدها در یک باکس با پس‌زمینه رنگی نشان داده شده است. برای اینکه کد از سایر بخش‌های متن متمایز باشد و خوانایی بالاتر برود. همین قابلیت در نوتبوک هم وجود دارد. اگر می‌خواهید در سلول متن یک تکه کد مانند نوتبوک مرجع قرار دهید، کافی است از آیکون <> (4) استفاده کنید. اگر هم می‌خواهید از شورتکات استفاده کنید، باید از علامت “` که زیر Esc قرار دارد، استفاده کنید. بسیارخب، این تغییرات را در نوتبوک مرجع انجام دهید.

    لینک در نوتبوک

    با استفاده از گزینه شماره 5 می‌توانید روی هر کلمه‌ای لینک قرار دهید. کافی است یک کلمه را انتخاب کنید، بعد روی گزینه 5 کلیک کنید و بعد لینک مدنظر را وارد کنید. بعد از زدن دکمه لینک، کلمه مدنظر شما به شکل زیر تبدیل می‌شود و می‌توانید آدرس را در داخل پرانتز قرار دهید. می‌بینید که https را هم برای شما آماده گذاشته است.

    [text](https://)

    شورتکات لینک کمی سخت‌تر از قبلی‌هاست. باید متن را در براکت [] قرار دهید و بلافاصله، یک پرانتز () بگذارید و در این پرانتز لینک مدنظر را وارد کنید. اگر هم نمی‌خواهید هیچ متنی را لینک دار کنید و صرفا می‌خواهید یک آدرس قرار دهید، کافی است آدرس مدنظرتان را در سلول کد با http کپی کنید.

    تصویر در نوتبوک

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

    ![text](https://)

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

    Indent در نوتبوک

    Indent یا تورفتگی، یکی دیگر از امکاناتی است که در سلول متن می‌توان ایجاد کرد. گاهی می‌خواهیم بخشی از متن کمی جلوتر از بقیه باشد. دراین‌حالت، کافی است آیکون 7 را انتخاب کنید و متن مدنظرتان را تایپ کنید. شورتکات این دستور هم بسیار ساده است و باید از < استفاده کنید. به ازای هر بار زدن علامت <، به اندازه یک Tab تورفتگی ایجاد می‌شود.

    شماره گذاری در نوتبوک

    با استفاده از آیکون 8، می‌توانید orderd list یا لیست شماره‌دار بسازید. آیکون شماره 8 را بزنید و مطابق نوتبوک مرجع یک لیست شماره‌دار بسازید. البته، می‌توانید از شورتکات هم استفاده کنید؛ کافی است قبل از هر مورد در لیست، یک عدد دلخواه و نقطه مثل .1 بگذارید. آیا در هر سطر عدد را زیاد کنم؟ خیر، در هر سطر دقیقا یک عدد یکسان بنویسید (همان .1) و بقیه را به نوتبوک بسپارید. خودش به‌صورت خودکار شماره‌گذاری را انجام می‌دهید. به نوتبوک مرجع دقت کنید…

    Bullet در نوتبوک

    اگر می‌خواهید یک لیست با Bullet بسازید و نیازی به شماره‌گذاری نیست، از آیکون شماره 9 استفاده کنید. شورتکات این عمل هم قرار دادن تنها یک * در ابتدای هر سطر است.

    خط افقی در نوتبوک

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

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

    استفاده از GPU در کولب

    نمی‌خواهم وارد جزئیات کدنویسی شوم؛ به‌همین خاطر خلاصه بگویم که در کد کراس زیر، یک شبکه MLP با تعدادی لایه را برای آموزش روی یک دیتاست MNIST استفاده کرده‌ام. مدل اصلا فنی نیست و برای اهداف خاصی تعداد لایه‌ها را زیاد کرده‌ام. کد را اجرا کنید.

    # Load dataset
    mnist = tf.keras.datasets.mnist
    (x_train, y_train), (x_test, y_test) = mnist.load_data()
    x_train, x_test = x_train / 255.0, x_test / 255.0
    
    # Define model
    model = tf.keras.models.Sequential([
      tf.keras.layers.Flatten(input_shape=(28, 28)),
      tf.keras.layers.Dense(128, activation='relu'),
      tf.keras.layers.Dense(512, activation='relu'),
      tf.keras.layers.Dense(512, activation='relu'),
      tf.keras.layers.Dense(512, activation='relu'),
      tf.keras.layers.Dropout(0.2),
      tf.keras.layers.Dense(10)
    ])
    
    # Create loss function
    loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
    
    # Compile model
    model.compile(optimizer='adam',
                  loss=loss_fn,
                  metrics=['accuracy'])
    
    # Train model
    model.fit(x_train, y_train, epochs=5)
    
    # Evaluate
    model.evaluate(x_test,  y_test, verbose=2)

    زمان اجرا در خروجی نشان داده می‌شود:

    Epoch 1/5
    1875/1875 [==============================] - 17s 9ms/step - loss: 0.2304 - accuracy: 0.9309
    Epoch 2/5
    1875/1875 [==============================] - 16s 9ms/step - loss: 0.1138 - accuracy: 0.9670
    Epoch 3/5
    1875/1875 [==============================] - 16s 8ms/step - loss: 0.0864 - accuracy: 0.9747
    Epoch 4/5
    1875/1875 [==============================] - 16s 9ms/step - loss: 0.0704 - accuracy: 0.9797
    Epoch 5/5
    1875/1875 [==============================] - 16s 9ms/step - loss: 0.0595 - accuracy: 0.9829
    313/313 - 1s - loss: 0.0894 - accuracy: 0.9750
    [0.08942026644945145, 0.9750000238418579]

    هر epoch حدود 17 ثانیه زمان می‌برد.

    هیجان در آموزش گوگل کولب : حالا GPU وارد می‌شود!

    وقت آن رسیده که از GPU استفاده کنیم تا محاسبات با سرعت بیشتری انجام شود. از منوی Runtime گزینه Change runtime type را باز کنید. یک کشو می‌بینید که روی None قرار دارد. آنرا باز کنید و روی GPU بگذارید. بعد از اینکه این کار را انجام دادید و Save را زدید، بلافاصله ارتباط شما با این ماشین مجازی یا VM قطع می‌شود و بعد از مدت کوتاهی یک ماشین مجازی با GPU به شما داده می‌شود. ماشین مجازی جدید ویژگی‌های زیر را دارد:

    • دراین‌حالت شما هارد کمتری نسبت به هارد سیستم CPU دارید. حدود 40 گیگابایت کمتر…
    • ماوس را روی Connect ببرید، می‌بینید که موتور شما حالا GPU دارد.
    • میزان رَم GPU شما در بخش Connect نوشته شده است.

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

    هشدار تمامی اطلاعاتی که تاکنون از طریق دانلود و نصب در ماشین مجازی قبلی ریخته بودیم، پرید! بنابراین، حواستان باشد که تغییر Runtime باعث می‌شود تمام اطلاعات موجود در ماشین مجازی بپرد و دوباره باید همه اطلاعات را وارد کنید.

    یعنی باید از اولین سلول، دوباره تک‌ت سلول‌ها را اجرا کنیم تا به آخرین سلول برسیم؟ بله، اما راه‌های ساده‌ای هم وجود دارد. کافی است از منوی Runtime گزینه Run all را انتخاب کنید تا همه سلول‌ها به‌صورت خودکار یکی پس از دیگری اجرا شوند. دراین‌حالت دیگر نیازی به اجرای تک‌تک سلول‌ها از جانب شما نیست. شورتکات این دستور هم ctrl+f9 است. حالا وقتی که کد آموزش شبکه MLP با GPU اجرا شد، خواهید دید که در حدود 6 ثانیه هر ایپوک طول می‌کشد. حدود 1/3 حالت CPU…

    راستی مشخصات GPU موجود در کولب چیست؟

    کولب ابتدا با K80 شروع کرد، اما تا به امروز من 4 عدد GPU دیده‌ام:

    • K80 با 12 گیگابایت رم
    • Tesla T4 با 16 گیگابیت رم (از بچه‌های نیک کولب!)
    • P100 با 16 گیگابیت رم (قدرتمند مثل Tesla T4)
    • آخرین مورد را دقیق یادم نیست! فکر کنم P4 بود. 8 گیگابیت رم داشت و خیلی قوی نبود. اگر اسمش را اشتباه گفتم، لطفا به من بگویید…
    • کولب TPU (پردازنده اختصاصی گوگل) را هم ارائه می‌دهد که البته موارد بالا عملکرد بهتری نسبت به TPU دارند.

    از کجا بفهمم چه مدل GPU به من داده است؟ با استفاده از دستور nvidia-smi! می‌توانید مشخصات کاملی از GPU مانند زیر ببینید:

    Tue Sep  1 15:37:56 2020       
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 450.66       Driver Version: 418.67       CUDA Version: 10.1     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  Tesla T4            Off  | 00000000:00:04.0 Off |                    0 |
    | N/A   40C    P8     9W /  70W |     10MiB / 15079MiB |      0%      Default |
    |                               |                      |                 ERR! |
    +-------------------------------+----------------------+----------------------+
                                                                                   
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+

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

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

    رسم نمودار در گوگل کولب

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

    ys = 200 + np.random.randn(100)
    x = [x for x in range(len(ys))]
    
    plt.plot(x, ys, '-')
    plt.fill_between(x, ys, 195, where=(ys > 195), facecolor='g', alpha=0.6)
    
    plt.title("Fills and Alpha Example")
    plt.show()

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

    اشتراک گذاری:

    مطالب زیر را حتما مطالعه کنید

    LLM Research یا LLM Engineering؟ راهنمای یادگیری مدل‌های زبانی بزرگ
    در چند سال اخیر، اصطلاح LLM یا Large Language Model به یکی از پرتکرارترین واژه‌ها...
    یادگیری انتقالی
    یادگیری انتقالی یا Transfer Learning به معنای استفاده از یک مدل از پیش آموزش‌دیده در...
    شبکه VGG
    شبکه VGG یکی از معماری‌های موفق و معروف در حوزه یادگیری عمیق است که در...
    مهندسی پرامپت
    امروزه، با ظهور ChatGPT و سایر ابزارهای هوش مصنوعی، طیف گسترده‌ای از افراد، از کاربران...
    مدل nanoGPT
    در سال ۲۰۱۹، OpenAI مدل GPT-2 را معرفی کرد. OpenAI، برخلاف مدل‌های بعدی (GPT-3 و...
    شگفت‌انگیزترین ایده هوش مصنوعی از نظر Andrej Karpathy
    هوش مصنوعی به سرعت در حال پیشرفت هست. به‌گونه‌ای که باید زمان و انرژی زیادی...

    91 دیدگاه

    به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.

    • fazi گفت:
      2022/12/28 در 4:47 ب.ظ

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

      پاسخ
    • fatemeh گفت:
      2022/12/17 در 9:48 ب.ظ

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

      پاسخ
    • نهال گفت:
      2022/11/23 در 7:06 ب.ظ

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

      پاسخ
      • هوسم گفت:
        2022/11/24 در 7:20 ق.ظ

        سلام
        به نظر میرسه این مشکلات مربوط به داخل کشور هست. در دو ماه اخیر، چند دانشجوی دیگه هم این مشکل رو مطرح کردن. پیشنهاد ما این هست که با اینترنت‌های مختلف و مرورگرهای متفاوت تست کنید. همچنین، 🔓 رو هم تست کنید.

        پاسخ
    • سجاد گفت:
      2022/10/28 در 8:47 ب.ظ

      من دستور نصب کتاب خانه python-telegram-bot رو دادم ولی این ارور رو میده میشه راهنمایی کنید؟
      2 import random
      3 import requests
      —-> 4 from telegram.ext import *
      5
      6

      7 frames
      /usr/local/lib/python3.7/dist-packages/tornado/iostream.py in BaseIOStream()
      284 self._closed = False
      285
      –> 286 def fileno(self) -> Union[int, ioloop._Selectable]:
      287 “””Returns the file descriptor for this stream.”””
      288 raise NotImplementedError()

      AttributeError: module ‘tornado.ioloop’ has no attribute ‘_Selectable’

      پاسخ
    • شهلا گفت:
      2022/09/23 در 10:44 ق.ظ

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

      پاسخ
    • afsane گفت:
      2022/09/03 در 10:01 ق.ظ

      سلام .ممنون میشم من رو راهنمایی کنید.من در colab بعد از اینکه tensorflow_federated را نصب کردم .دستور import را نوشتم و با این خطا روبرو شدم .چه راه حلی برای رفع این خطا پشنهاد میکنید

      Traceback (most recent call last):

      File “/usr/local/lib/python3.7/dist-packages/IPython/core/interactiveshell.py”, line 3326, in run_code
      exec(code_obj, self.user_global_ns, self.user_ns)

      File “”, line 1, in
      import tensorflow_federated as tff

      File “/usr/local/lib/python3.7/dist-packages/tensorflow_federated/__init__.py”, line 21, in
      from tensorflow_federated.python import analytics

      File “/usr/local/lib/python3.7/dist-packages/tensorflow_federated/python/analytics/__init__.py”, line 18, in
      from tensorflow_federated.python.analytics import heavy_hitters

      File “/usr/local/lib/python3.7/dist-packages/tensorflow_federated/python/analytics/heavy_hitters/__init__.py”, line 16, in
      from tensorflow_federated.python.analytics.heavy_hitters import iblt

      File “/usr/local/lib/python3.7/dist-packages/tensorflow_federated/python/analytics/heavy_hitters/iblt/__init__.py”, line 16, in
      from tensorflow_federated.python.analytics.heavy_hitters.iblt.chunkers import CharacterEncoding

      File “”, line 1
      (max_chunk_value=)
      ^
      SyntaxError: invalid syntax

      پاسخ
      • سجاد گفت:
        2022/10/28 در 8:50 ب.ظ

        همن کد رو در vs code اجرا کنید ببین باز هم ارور میده یا نه
        فکر کنم سینتکس ارور نشانه وجود غلط املا ایه

        پاسخ
    • A گفت:
      2022/06/30 در 2:43 ب.ظ

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

      پاسخ
      • هوسم گفت:
        2022/06/30 در 3:15 ب.ظ

        سلام
        دیتاست رو در گوگل درایو آپلود کنید. بعد با توضیحاتی که در این پست داده شده، گوگل درایو رو به کولب متصل و از دیتاست استفاده کنید.

        پاسخ
    • بینازاده گفت:
      2022/06/07 در 11:47 ب.ظ

      با سلام و تشکر از مطالب مفیدی که می گذارید.
      میشه شیوه آپلود کردن یک فایل یا دیتا ست در گوگل کولب رو هم بفرمایید؟
      در پروژه ها که کدهای آماده ای دارند و کتابخانه هایی توسط طراح اولیه نوشته شده است وقتی این فایل ها رو در گوگل درایو آپلود می کنیم و بعد در کولب import می کنیم با خطای no module برخورد می کنیم.
      و دوم کار با دیتا ست های که در هارد خودمان قبلا دانلود کردیم و الان در کولب می خواهیم ازشون استفاده کنیم.
      یا از یک آدرس بخصوص می خواهیم دانلودشون کنیم یا از سایت کگل قرار هست دانلود بشه رو میشه هوسم طور برامون بگید شیر فهم بشیم.
      با تشکر از تیم خوبتون

      پاسخ
      • هوسم گفت:
        2022/06/30 در 3:19 ب.ظ

        سلام
        انشالله، این پست رو آپدیت می‌کنیم و درمورد دیتاست بیشتر توضیح میدیم.

        پاسخ
    • حسین گفت:
      2022/04/02 در 5:23 ق.ظ

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

      پاسخ
    • اسماعیل گفت:
      2022/02/28 در 11:31 ق.ظ

      سلام. نحوه خواندن و ایجاد کردن فایل csv در گوگل کولب چگونه است؟

      پاسخ
      • mahsa گفت:
        2022/03/15 در 9:14 ب.ظ

        سلام من بصورت زیر از فایل های csv تو گولب استفاده می کنم: اول دو خط زیر را اجرا کنید
        from google.colab import files
        ()updated = files.upload بعد یک گزینه choose file ظاهر میشه که اونرو انتخاب کنید و فایل موردنظرتون را انتخاب کنید بعد صبر کنید تا 100 درصد لود بشه بعد
        df=pd.read_csv(io.StringIO(uploaded[‘data.csv’].decode(‘ISO-8859-1’)))
        را اجرا کنید.

        پاسخ
    • سینا گفت:
      2022/02/06 در 7:25 ب.ظ

      سلام. خیلی متشکر از آموزش عالی تون. امکانش هست آموزش بدید چطور کولب رو روی کامپیوتر لوکال (local runtime) اجرا کنیم؟

      پاسخ
    • agha vahid گفت:
      2022/01/30 در 5:14 ب.ظ

      ImportError: cannot import name ‘BatchNormalization’ from ‘keras.layers.normalization’ (/usr/local/lib/python3.7/dist-packages/keras/layers/normalization/__init__.py)
      سلام
      من یک کدی دارم وقتی ران میکنم این خطا داده می شود ولی نمیدونم چجوری رفعش کنم
      ممنون میشم کمکم کنین

      پاسخ
      • تیم هوسم گفت:
        2022/01/31 در 11:40 ق.ظ

        سلام
        خطای شما به گوگل کولب ارتباط نداره. میخوایید BatchNormalization رو ایمپورت کنید که گویا در کراس وجود نداره.

        پاسخ
    « دیدگاه‌های کهنه
    دیدگاه‌های تازه‌تر »

    دیدگاهتان را بنویسید لغو پاسخ

    جستجو برای:
    دوره‌های جامع هوسم
    • مسابقه Kaggle: تحلیل و پیش‌بینی رفتار با داده‌های چندحسگری سری زمانی
    • پیاده‌سازی ChatGPT از صفر با پایتورچ
    • آموزش OpenCV: از پردازش تا بینایی
    • دیپ کاتالیست: دوره افزایش مهارت
    • پایتون برای هوش مصنوعی 🤖
    • یادگیری ماشین جامع: از مفاهیم تا پیاده‌سازی🔥
    • یادگیری عمیق جامع: از مفاهیم تا پیاده‌سازی
    درباره هوسم

    آکادمی هوش مصنوعی هوسم با آموزش‌های تخصصی در حوزه هوش مصنوعی در خدمت شماست. روی کمک هوسم حساب کنید…

    • گیلان- شهرستان رودسر- شهرک انصاری- کوچه لاله 9
    • 09025469248
    • howsam.mail@gmail.com
    دسترسی سریع
    • صفحه اصلی
    • وبلاگ
    • حساب کاربری
    • سبد خرید
    شبکه‌های اجتماعی

     

    logo-samandehi
    تمامی حقوق برای آکادمی هوسم محفوظ است.
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      ورود
      استفاده از موبایل
      استفاده از آدرس ایمیل
      آیا هنوز عضو نیستید؟ اکنون عضو شوید
      بازنشانی رمز عبور
      استفاده از موبایل
      استفاده از آدرس ایمیل
      عضویت
      استفاده از موبایل
      استفاده از ایمیل
      قبلا عضو شدید؟ اکنون وارد شوید

      ورود

      رمز عبور را فراموش کرده اید؟

      هنوز عضو نشده اید؟ عضویت در سایت