به راهنمای جامع ژوپیتر نوت بوک - jupyter notebook خوش آمدید. در اینجا یک راهنما کامل جمع آوری شده با رویکرد ساده و مخصوص افرادی که تازه با jupyter notebook آشنا شدند.
جوپیتر نوت بوک چیست و چرا این همه طرفدار داره؟
ژوپیتر نوت بوک یکی از مهم ترین محیط های توسعه پایتون به شمار میره. اگر که در زمینه داده کاوی یا یادگیری ماشین (یادگیری عمیق) از محبوب ترین ابزار های توسعه به شمار میادش. ژوپیتر به طور خاص مجموعه از پکیچ ها رو داره که در اینجا به بررسی jupyter notebook میپردازم. با کمک نوت بوک های ژوپیتر میتونید کدها رو در لحظه اجرا کنید و نتیجه اون رو ببینید یا اینکه خروجی html بگیرید. درکنار این موضوع مسئله ای که هست نگه داری خروجی تا زمانی که بخواهید پاکش کنید یا دوباره اون سلول اجرا بشه.مهم ترین دلیلی که خودم از ژوپیتر موقع کارهای یادگیری عمیق استفاده میکنم پویایی اون و اجرا در لحظه هست. وقتی پای اجرا در لحظه میاد هیچ کدوم از محیط های دیگه حتی متلب به نظرم به این خوبی نیستند. و همه اینها در کنار اینکه توی مرورگر اجرا میشه و اگر مثل من چند تب همیشه باز داری یعنی کمترین سربار سیستمی رو با ژوپیتر خواهی داشت.
پلی لیست یوتوب
https://www.youtube.com/playlist?list=PLvN40XeLIeJlklwkCSz7RC0FhChKwByCc
لینک پلی لیست ژوپیتر نوت بوک - Jupyter notebook
پس تا اینجا
۱. سادگی ژوپیتر
۲. اجرای سلول به سلول
به نظرم مهم ترین نقاط قوتش هستند
جدول محتوایی
- نصب ژوپیتر و راه کار هایی که داریم
- اجرای نوت بوک
- محیط ژویپتر
- خروجی گرفتن
- انواع سلولها
- شورت کات ها
- توابع جادویی
نصب ژوپیترنوت بوک jupyter notebook
برای نصب ژوپیتر نوت بوک راه حل های مختلفی هست در اینجا به صورت مختصر سه روش رو معرفی میکنم
- نصب از طریق پکیچ منجر پایتون pip
- نصب از طرق اناکدنا conda
- نصب از طریق داکر
۱. نصب ژوپیتر از طریق pip
برای نصب ژوپیتر کافیه بزنید
البته اگر که از پایتون ۳ توی لینوکس استفاده میکنید احتمالا به جای pip باید بزنید pip3 تا روی پایتون ۳ نصب بشه.
۲. نصب از طریق اناکندا conda
برای نصب ژوپیتر از طریق اناکندا کافیه بزنید
به همین راحتی البته توی سایت ژویپتر راه حل های دیگه ای برای نصبش از طریق pip و conda هم گفته
۳. نصب از طریق داکر
این مورد یکم تخصصی هست و نیاز داره که به صورت اولیه کار با داکر رو بلد باشی. ابتدا داکر هاب jupyter رو بررسی کن توی اون کلی نمونه هست.
به عنوان مثال من ایمیج tensorflow-notebook رو میخوام اجرا کنم به شیوه ساده کافیه بزنم.
این کار باعث میشه اون ایمیج رو دانلود کنه و اجرا کنه اگر میخواهید دربارش بیشتر بدونید یک سری به آموزش سریع و راحت داکر من بزنید.
اجرای ژوپیتر نوت بوک
برای اجرای ژوپیتر نوت بوک کافیه که بریم در محیط کامندمون cmd برای ویندوز و terminal برای لینوکسی ها و این رو وارد کنیم
با این کار ژوپیتر در اون محلی که ترمنیال ( محیط کامندی) هست اجرا میشه.
اگر بخواهیم ژوپیتر نوت بوک رو در محلی خاص اجرا کنیم روش های مختلفی هست ساده ترینشون اینه که ابتدا با کمک cd بریم به اون پوشه مربوطه
ترمینال لینوکس
cmd ویندوز
با اجرای این دستور ما رو میبره به اون پوشه خاص حالا وقتی میزنیم jupyter notebook دقیقا در همین پوشه اجرا میشه. مهم ترین مزیت این کار سرعت اجرای بالای ژوپیتر و دسترسی راحتر به فایل هاست.
گزینه های در دسترس برای اجرای ژوپیتر نوت بوک
jupyter notebook هم مثل کلی ابزار تحت کامند لاین (cli) بهمون اجازه میده که با یک سری تنظیمات خاصی اون رو اجرا کنیم برای گرفتن کمک این دستور رو تایپ میکنیم
و خروجی احتمالا چیزی شبیه این باشه
در اینجا یک سری گزینه رو برای ما اورده که من مهم ترین هاش رو توضیح میدم
فلگ —ip برای مواقعی استفاده میشه که میخواهیم بگیم روی کدوم ای پی های سیستم ما اجرا بشه معروف ترین حالتش هم 0.0.0.0 هست و با این کار در تمام آی پی های سیستم اجرا میشه. (در دسترس عموم توی شبکه داخلی و بیرونی قرار میگیره)
برای وقت هایی که توی سرور یا linux sub system قرار هست اجرا بشه کاربرد داره. با این کار دیگه مرورگر رو اجرا نمیکنه (در حالت عادی موقع اجرا اگر مرورگر پیشفرض باز نباشه یکی باز میکنه و ادرس مربوطه رو اجرا میکنه)
برای مواقعی که میخواهید پورت خاصی بذارید برای ژوپیترتون این روش کاربرد داره و در حالت پیش فرض 8888 هست البته اگر پورت خالی نباشه خودش یک پورت خالی رو برای ژوپتیر به صورت اتوماتیک در نظر میگیره
این گزینه وقتی هست که میخواهید پسورد بذارید روی ژوپیترتون البته در حالت عادی با یک عدد توکن اعتبار سنجی میشه و نگرانی نداره از این بابت.
چطوری ژوپتیر رو توی سرور اجرا کنیم و توی مرورگر دکستاپ/لپتاپمون بیاریمش؟
سناریو چیه؟ فرض کنید در خونه یا کیلو مترها دور تر شما یک عدد کامپیوتر دارید که میخواهید کدها پایتون رو روی اون با کمک ژوپیتر اجرا کنید خب چطوری این کار رو انجام میدی؟
روش بر اساس زیر ساخت ممکنه متفاوت باشه ولی به صورت کلی به این شکل هست
توی سیستم مقصد میزنید
و بهتون یک سری توکن همراه با ادرس لوکال هاست اون سرور رو نشون میده شبیه این
حالا کافیه توی مرورگر خودتون ایپی - دامنه اون سرور رو بزنید مثلا ایپی اون توی شبکه محلی من هست 192.168.1.42 به این صورت وارد میکنم
البته اگر از ssh استفاده میکنید میتونید با مپ کردن پورت ها دقیقا دیگه حتی نیازی نباشه ادرس اون ip خاص رو بزنی کافیه که روی همین localhost… کلیک کنید تا با همین ادرس بیاد اما چطوری؟
با این کار میگیم به سرور وصل شو و هر چیزی که توی سرور روی پورت 8888 قرار داره بیار روی پورت 8888 دستگاه من.
کلی درباره اجرای اولیه صحبت کردیم بریم سمت محیط دوست داشتنی ژوپیتر!
محیط ژوپیتر نوت بوک jupyter notebook
بعد از اینکه اجراش کردید احتمالا چیزی شبیه این ببینید
گزینه های مهم برای ما
Files
فایل های موجود در این پوشه (بدون نشان داده فایل های مخفی)
Running
وضعیت کرنل ها و نوت بوک های در حال اجرا
Upload
آپلود فایل ها به دایکتوری فعلی ژوپیتر
New
ایجاد فایل جدید. یکی از مهم ترین گزینه ها ایجاد فایل جدید هست در ژوپیتر شما تقریبا هر چیزی رو میتونید بسازید از ترمینال جدید تا فایل های معمولی اما مهمی ترین گزینه Notebook هست برای ما تا یک فایل ژوپیتر بسازیم.
بالاخره رسیدیم به بخش جذاب ماجرا یعنی یک محیط کارا از ژوپیتر شروع کنیم به کالبد شکافی بخش های مختلف از بالا
در بالاترین قسمت اطلاعات فایل مثل اسم هست که اگر روی Untitled بزنیم میتونیم اسم رو عوض کنیم و در کنارش اخرین باری که تغییرات ذخیره شده هم هست.بعد از اون منوی کلاسیک قرار داره که همه موارد توش هست.در انتها هم یک سری شورت کات هستند که برای کار با سلول ها cells خیلی کاربردی هستند.
بریم بخش مختلف منو رو بررسی کنیم:
Files
اگر گزینه ها واضح هستند فقط گزینه جذاب این جا مسئله گرفتن خروجی هست که وقتی بریم روی Download as لیستی از فایل های خروجی رو میده به نظرم بهترین نمونه اش Markdown و html هست که میتونیم مستقیم نمایشش بدیم
مثل این نمونه توی گیت هاب بخش gits
Edit
در اینجا همه گزینه های مربوط به ویرایش سلول ها اومده البته که ما قرار نیست اینطوری استفاده کنیم بلکه با استفاده از شرت کات ها کار رو سریع تر پیش میبریم
view
شاید مهم ترین استفاده ما از این گزینه منو Toggle Line Numbers باشه برای نشون دادن کدد هر خط کنارش توی سلول ها
Insert
این گزینه ها هم بعد تر توی شرت کات ها به صورت خلاصه شرت کات هاش این هستند
Insert Cell Above: controll + a Insert Cell Below: controll + b
Cell
از گزینه های مهم این بخش Run All برای اجرا همه , Cell Type برای تعیین نوع سلول (بهش خواهیم رسید) و All Output است که میشه با اون تمام خروجی ها رو پاک کرد.
Kernel
وقتی که نیاز باشه در کار وقفه ای ایجاد کنیم Interrupt رو میزنیم , گزینه Retart & Clear Output برای ریستارت کرنل فعلی و پاک کردن خروجی هاست و گزینه Restart & Run All برای ریستارت کرنل و اجرای دوباره همه سلول هاست.
در اینجا مشابه Google Colab ما گزینه Change kernel داریم که اگر چندین کرنل مختلف رو به ژوپیتر وصل میکنیم میتونیم همزمان پایتون ۲ و ۳ و زبان R رو با ژوپتیر کد بزنیم.
Help
توی این گزینه لیستی از منابع و موارد کمکی ژوپیتر اومده
نوار ابزار ژوپیتر - Jupyter Toolbar
دو گزینه مهم هست
۱. انواع سلول
ما از لحاظ دیداری ۴ نوع سلول داریم ( در واقع ۲ یا ۳ نوع سلول)
Code
کدهای معمولی پایتون که باید اجراشن رو اینجا میذاریم
Markdown
یک زبان ساختاریافته برای نوشتن داکیومنت
Raw NBConvert
نوشتن کد ها بدون اجرا
Headning
در واقع Markdown هست با یک عنوان بندی ۱
با کمک Markdown میشه متن ها رو ساختار یافته نوشت در اون میشه کلی المان به صورت پیشفرض ایجاد کرد و اینکه html رو هم میتونه رندر کنه
بهرین راه نوشتن داکیومنت توی فایل همین مارک داون markdown هست.
نمونه یک مارک داون و نوت بوک ژوپیتر که به عنوان فایل اموزشی داکر استفاده میکنم
۲. میان بر یا شورت کات ها shortcuts
به نظرم با کمک این سری شرت کات ها میشه که به صورت سریع تر کار رو پیش برد
کلید | توضیحات |
---|---|
Enter | رفتن به حالت ادیت سلول |
controll + a , controll + c , controll + v | انتخاب همه سلول ها- کپی -پیست |
controll + z , controll + y | برگشت به عقب - برگشت به جلو |
controll + s | ذخیره |
controll + enter | اجرای سلول |
shift + enter | اجرای سلول و انتخاب زیریش اگر وجود داشت |
alt + enter | اجرای سلول و ساخت سلول جدید ریزش |
Escape (Esc) | رفتن به حالت مدیریت سلول ها |
برای ادامه اگر در حالت مدیریت سلول ها هستید نیازی به کلیدEsc نیست | |
Esc + d + d | پاک کردن سلول فعلی |
shift + m | بهم چسباندن سلول های انتخابی |
Esc + y | تبدیل نوع سلول به کد |
Esc + m | تبدیل نوع سلول به markdown |
Esc + m | تبدیل نوع سلول به markdown |
Esc + r | تبدیل نوع سلول به raw |
Esc + 1 | تبدیل سلول به markdown و ساخت عنوان بندی ۱ |
Esc + n | تبدیل سلول به markdown و ساخت عنوان بندی n |
Esc + b | ساخت سلول در پایین سلول فعلی |
Esc + a | ساخت سلول در بالای سلول فعلی |
منبع این بخش و برگه تقلب ژوپیتر نوت بوک
توابع جادویی
توابع magic توی ژوپیتر یکی از چیز های مهم هست که میتونه کمک کنه به شما بدون خروج از ژوپیتر یک سری دستورات مهم کنترلی رو اجرا کنید یا ژوپیتر رو کانفیگ کنید
برای صدا زدنشون کافیه در یک سلول کد بنویسید
%magic
تا مثل غول چراغ جادو احضار بشن
با این کار یک سری توضیحات ژوپیتر میاد درباره توابع magic و نحوع استفاده در اینجا کوتاه یک سریشون رو معرفی میکنم یک منبع کلی در ادامه میذارم که بتونید استفاده کنید.
گرفتن لیست توابعی که در دسترس هست
اجرای یک سلول ۱۰۰ بار و محاسبه زمان اجرا
محاسبه زمان اجرای سلول
توابع جادویی مدیریت فایل
توضیحات بیشتر و نحوه استفاده از توابع جادویی به صورت مفصل تر
خب حالا تا اینجا درباره ژوپیتر صحبت کردیم به نظرتون چه چیز های دیگه ای میتونه باشه؟